??xml version="1.0" encoding="utf-8" standalone="yes"?>
自从搞了bi数据很写代码了,q次到新公司要从头开始搭建测试团队,又要开启新的自动化试之旅Q?/span>python已经?/span>3.X版本了,也支持了Robot framework的ride库,现把安装文档整理如下Q便于后l新人安装,走弯\?/p> 参考资料: https://blog.csdn.net/thefg/article/details/128601410 https://blog.csdn.net/qq_45894553/article/details/119893181 特别说明Q?span lang="EN-US">
安装环境选择的版本:Windows10+python3.7Q大?.7版本安装Robot framework的ride库不能正怋用?/span>
一、安装的软g清单见下图:
二、安装步骤:
序 | 安装包名 | 安装Ҏ | 下蝲地址 | 备注 |
1 | python | 具体见:https://blog.csdn.net/thefg/article/details/128601410 | 切记目前最高有效版本只能安?.7.9 | |
2 | setuptools | 不需要安装,python3.7.9安装后自带安?/span> | ?/span> | Python 的套件管理程?/span> |
3 | pip | 不需要安装,python3.7.9安装后自带安?/span> | ?/p> | Python 的套件管理程?/span> |
4 | 升pip | Cmd命o执行Qpip install --upgrade pip | ?/span> | 升pip到最新版?/span> |
5 | robot framework | Cmd命o执行Qpip install robotframework | robot framework本n | |
6 | robotframework-ride | Cmd命o执行Qpip install robotframework-ride | Ride | |
7 | wxPython | 不需要安装,安装robotframework-ride自动安装 | ?/span> | 支撑Ride的运行库 |
8 | wheel | Cmd 命o执行Q?/span>pip install wheel | ?/span> | q行安装.whl?/span> |
9 | robotframework-selenium2library | Cmd命o执行Qpip install robotframework-selenium2library | https://pypi.python.org/pypi/robotframework-selenium2library | selenium2试库,Zwebdriver驱动 |
10 | robotframework-databaselibrary | Cmd命o执行Qpip install robotframework-databaselibrary | https://github.com/franz-see/Robotframework-Database-Library | DB?/span> |
11 | Pymysql | Cmd命o执行Qpip install pymysql | https://pypi.python.org/pypi/pymssql | MysqlW三方库 |
12 | pywin32 | 不需要安装,安装robotframework-ride自动安装 | ?/span> | |
13 | AutoItV3 | exe文gQ直接双d?/span> | http://www.autoitscript.com/site/autoit-news/autoit-v3-3-10-0-released/ | AutoItLibrary使用前提 |
14 | Requests | Cmd命o执行Qpip install requests | RequestsLibrary库用前?/span> | |
15 | RequestsLibrary | Cmd命o执行Qpip install -U robotframework-requests | http request?/span> | |
16 | robotframework-autoitlibrary | Cmd命o执行Qpip install robotframework-autoitlibrary | ?/p> |
|
17 | autoitlibrary3 | Cmd命o执行Q?/span>pip install autoitlibrary3 | http://code.google.com/p/robotframework-autoitlibrary/ | AutoItLibrary试?/span> |
18 | robotframework-appiumlibrary | Cmd命o执行Q?/span>pip install robotframework-appiumlibrary | ?/p> |
|
19 | robotframework-httplibrary | Cmd命o执行Q?/span>pip install robotframework-httplibrary | ?/p> | 安装完后会出?/span>ride加蝲httplibrary库标U失败,解决办法手动安装livetestQ具体见下面说明 |
三、安装后查:
1. Cmd命o下执行ride.pyQ能成功q入ride面说明robot framework安装成功?/span>
2. 配置ride为桌面快h式:?/span>RIDE的操作界面,点击Tools下的 Create RIDE Desktop Shortcut 在桌面上创徏 RIDE 快捷方式卛_Q具体见下图
3. 在ride操作面新徏一个项目,把AutoItLibrary、Selenium2Librarycd载,加蝲中如果不昄U色说明AutoItLibrary、Selenium2Library安装成功?/span>
4. Cmd命o下执行pip listQ可以查看安装的包列表有哪些
四、特别说明:
问题Qpython 解决 robotframework RIDE 中导入HttpLibrary库ؓU色
解决办法Q?/strong>
1. 查相兛_是否以及安装
jsonpathQjsonpointer 可以直接pip install q行安装Qlivetest 需要离U安装,步骤如下Q?/p>
2. 下蝲livetest包,地址Qhttps://pypi.org/project/livetest/#files
3. 解压q修改相x?/strong>
修改 /livetest-0.5/livetest/init.py文g
修改import httplib ?import http.client as httplib
修改import urlparse ?import urllib.parse
修改from Cookie import BaseCookie, CookieError ?import http.cookiejar
修改所?except XXXError, e ?except XXXError as e
修改/livetest-0.5/test/test_select.py文g
修改文g中所有except XXXError, e ?except XXXError as e
修改 /livetest-0.5/setup.py文g
修改long_description=file(‘README.rst’).read() ?long_description=open(‘README.rst’).read()
修改version=livetest.version ?version=‘0.5’
修改author_email=livetest.author ?author_email=‘storborg@mit.edu’
4. 手动安装livetest
?/span>cmd中切换\径到\livetest-0.5Q执?/span> python setup.py installQ安装成功?/span>
5. 修改HttpLibrary相关配置
修改__init__.py (文g路径QC:\Python37\Lib\site-packages\HttpLibrary)
修改from urlparse import urlparse 为from urllib.parse import urlparse
修改except ValueErrorQ?e?except ValueError as e (׃?
6. 重启rideQ导入正?/strong>
五、验证工h否能正常使用
1.安装Firefox览?/p>
2.打开ride工具Q加载相关类库,输入如下代码q行Q运行成功说明安装成功可?/p>
~写背景Q?/span>
q记得自q一ơ安?/span>appiumӞ?/span>baidu?/span>google上找了很多资料,按照找来的文档,没有一个文档是能完整的从头到尾一ơ安装成功的Q遇C不少坑,q些坑都是怎么解决的在q里ȝQؓ方便以后自己回头看看?/span>
安装的环境是Q?/span>windows7pȝ
问题一Q在U安?/span>appiumQ?/span>cmd执行命oQ?/span>npm install –g appium出现如下错误信息Q?/span>
30658 error Windows_NT 6.1.7601
30659 error argv "D:\\Program Files\\nodejs\\node.exe" "D:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "appium-chromedriver"
30660 error node v7.1.0
30661 error npm v3.10.9
30662 error code ELIFECYCLE
30663 error appium-chromedriver@2.9.2 install: `node install-npm.js`
30663 error Exit status 1
30664 error Failed at the appium-chromedriver@2.9.2 install script 'node install-npm.js'.
30664 error Make sure you have the latest version of node.js and npm installed.
364 error If you do, this is most likely a problem with the appium-chromedriver package,
30664 error not with npm itself.
30664 error Tell the author that this fails on your system:
30664 error node install-npm.js
30664 error You can get information on how to open an issue for this project with:
30664 error npm bugs appium-chromedriver
30664 error Or if that isn't available, you can get their info via:
30664 error npm owner ls appium-chromedriver
30664 error There is likely additional logging output above.
30665 verbose exit [ 1, true ]
解决办法Q?/span>
安装能访?/span>www.google.com|站?/span>VPN软gQ然后再重新安装appium的低版本Q执行命令:npm install –g appium@1.5
问题二:在线安装appiumQ?/span>cmd执行命oQ?/span>npm install –g appium出现错误提示Q?/span>
MSBUILD : error MSB3428: 未能加蝲 Visual C++ lg“VCBuild.exe”。要解决此问题, 1) 安装 .NET Framework 2.0 SDKQ?) 安装 Microsoft Visual Studio 2005Q或 3) 如果该lg安装C 其他位置Q请其位置d到系l?路径中?/span>
解决办法Q?/span>
下蝲.NET Framework 4.5?/span>Microsoft Visual C++ 2015 Redistributable (x64)q行安装
问题三:在线安装appiumQ?/span>cmd执行命oQ?/span>npm install –g appiumQ当appium版本高于1.6.1以上Q会安装sqlite3Q这时会出现错误提示Q?/span>
node-pre-gyp install --fallback-to-build
解决办法一Q执?/span>npm install –g grunt-node-inspector 安装后,l箋安装?/span>
解决办法二:降版本安装Q执行安装命令:npm install –g appium@1.5Q?/span>appium1.5版本的安装是不包?/span>sqlite3?/span>
问题四:在线安装appiumQ?/span>cmd执行命oQ?/span>npm install –g appium@1.5 Q当安装?/span>appium-selendroid-driverlg后会报错?/span>
npm ERR! appium-selendroid-driver@1.3.4 install: node ./bin/install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the appium-selendroid-driver@1.3.4 install script 'node ./bin
/install.js'.
npm ERR! This is most likely a problem with the appium-selendroid-driver package
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node ./bin/install.js
npm ERR! You can get their info via:
npm ERR! npm owner ls appium-selendroid-driver
npm ERR! There is likely additional logging output above.
解决办法Q通常是网l问题,需?/span>安装能访?/span>www.google.com|站?/span>VPN软gQ然后再重新安装?/span>
最后提醒:安装appium一定要有耐心、一定要有耐心、一定要有耐心Q因问国外网站在U安装是需要花旉的;要想安装软g又不影响工作Q就要申请一台机器单独弄会省时省力?/span>
上面的几个坑Q都是在折腾?/span>N?/span>appium的版本安装?/span>N?/span>node的版本安装后得出的经验?/span>
~写背景Q?/span>
部门内部开始?/span>robotframework自动化框架进行网站和手机自动化测试的试运行有3个月了,今天抽空把安装文档整理整理,׃nl需要的同行和新手学习,让大家在安装的过E中碰到我遇到的坑?/span>
目标Q在windows7安装手机自动化工?/span>appium和手机模拟器q行手机软g自动化测?/span>
安装准备Q?/span>需要准备如下YӞ可以自己在网上下载:
1.工具Q?/span>LoCo加速器Q注意:一定要能访问国外网站,不然在线安装会失?/span>
2.java?/span>JDKQ版本:jdk-6u45-windows-x64
3. Android SDKQ版本:android-studio-bundle-143.2739321-windows
4.nodejsQ版本:node-v6.8.1-x64
5.Microsoft Visual C++ 2015 Redistributable (x64)
6.Microsoft .NET Framework 4.5
7.手机模拟器:夜神模拟?/span>
一?/span>安装软g
1. LoCo加速器Q?/span>LoCo加速器下蝲后,直接点击exe可执行文件安装即可,安装后用邮箱注册Q注册后15元购?/span>1个月的服务;然后dQ登录后q行链接操作。链接成功后Q访问网站:www.google.com能正显Cƈ搜烦出内容,说明成功?/span>
2. JDK安装Q下?/span>java?/span>jdk后,点击exe可执行文件安装即可,安装后进行如下配|:
1Q添加系l环境变量:JAVA_HOMEQ|Jdk的安装\径,如:D:\Java\jdk1.6.0_45
2Q添加系l环境变量:CLASSPATHQ|
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
3Q修改系l环境变?/span>path|加上Q?/span>%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
?/span>JAVA环境是否配置好,q入CMD命o行,输入java?/span>javacQ可以看到好多的命o提示Q说明成功?/span>
3. Android SDK安装Q直接点?/span>Android Studio?/span>exe可执行文件安装即可,安装后进行如下配|:
1Q?nbsp;新增pȝ环境变量 ANDROID_HOMEQgؓ Android SDK 路径Q如Q?/span>D:\Android\sdk
2Q?nbsp;修改pȝ环境变量Path|加上Q?/span>
;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
4. Nodejs安装Q直接点?/span>exe可执行文件安装即可,安装后在cmd命o下输入:node –vQ能看到版本信息说明安装OKQ配|?/span>npm安装文g路径Q?/span>cmd命o下输入:
npm config set prefix="D:\\Program Files\\nodejs\\node_global"
npm config set cache="D:\\Program Files\\nodejs\\node_cache"
npm config set init-module="D:\\Program Files\\.npm-init.js"
npm config set tmp="D:\\Program Files\\Temp"
npm config set userconfig="D:\\Program Files\\.npmrc"
配置后,通过如下命o可以查看配置信息Q?/span>
npm config list
npm config ls -l
5. Microsoftlg安装Q直接点?/span>Visual C++ 2015 Redistributable (x64)?/span>.NET Framework 4.5?/span>exe安装文gQ直接安装即可?/span>
6. Appium安装Q?/span>cmd命o下输入如下命令:
1Q?nbsp;npm install –g appium-doctor
保国外|站google能正常访问情况下Q在U安?/span>appium-doctor软g包,安装成功后,?/span>cmd命o下输入:appium-doctorQ查?/span>appium安装配置环境是否okQ都OK说明配置正常
2Q?nbsp;appium-doctor安装正常后,输入命oQ?/span>npm install -g appium@1.5
下蝲的文件内Ҏ较多Q一定要保|络正常Q安装时间会比较长,一定要耐心{待?/span>
3Q?nbsp;Appium安装成功后,cmd命oH口输入Q?/span>appium在界面会昄版本信息
7. 夜神模拟器安装:直接点击exe文gq行安装卛_
二?/span>开始?/span>
1. 打开模拟?/span>
2. Cmd命oH口输入Q?/span>adb connect 127.0.0.1:62001 链接成功后会昄如下信息
3. Cmd命oH口输入Q?/span>appium 启动appium服务
4. 打开rideQ加?/span>AppiumLibrarycdQ编写手动化脚本Q编写完毕后Q点击运行即?/span>
到此Q?/span>appium1.5的安装和使用介绍完毕Q预大家有个愉快的手机自动化之旅!
2q没有更新博客了Q自从有娃后旉变得来少Q深M会了当妈的不ҎQ整理这个文章是Z让部门的Ch学习q个工具能轻杄入门W一养I安装Q同时希望能帮助到其它同行?/span>
参考资料:
http://www.cnblogs.com/puresoul/p/3854963.html
http://www.itest.pro/howto-install-robot-framework-autoit-windows-x64/
一、安装的软g清单见下图:
二、安装步骤:
序 | 安装包名 | 安装Ҏ | 下蝲地址 | 备注 |
1 | python | exe文gQ直接双d装,安装完设|?/span>Python环境变量,?#8220;d:\Python27”?#8220;d:\Python27\Scripts”d到环境变?#8220;PATH”中(注意环境变量之间?#8220;;”隔开) | 一切的基础Q安装\径不能有I格 | |
2 | setuptools | 下蝲ez_setup.py文gQ把文g攑ֈpython安装目录?/span>scripts目录下,双击文g?/span> | Python 的套件管理程?/span> | |
3 | pip | 1.cmdq入ez_setup.py文g目录Q如Q?/span> d:\Python27\Scripts 2.?/span>setuptools安装Q?/span>easy_install pip | Python 的套件管理程?/span> | |
4 | 升php | Cmd命o执行Q?/span> pip install --upgrade pip | ?/span> | 升pip到最新版?/span> |
5 | robot framework | Cmd命o执行Q?/span>pip install robotframework | robot framework本n | |
6 | wxPython | exe文gQ直接双d?/span> | 支撑Ride的运行库 | |
7 | robotframework-ride | Cmd命o执行Q?/span>pip install robotframework-ride | Ride | |
8 | robotframework-selenium2library | Cmd命o执行Q?/span>pip install robotframework-selenium2library | https://pypi.python.org/pypi/robotframework-selenium2library | selenium2试库,Zwebdriver驱动 |
9 | robotframework-databaselibrary | Cmd命o执行Q?/span>pip install robotframework-databaselibrary | https://github.com/franz-see/Robotframework-Database-Library | DB?/span> |
10 | Pymysql | Cmd命o执行Q?/span>pip install pymysql | https://pypi.python.org/pypi/pymssql | MysqlW三方库 |
11 | pywin32 | exe文gQ直接双d装,注意py对应的版?/span>2.7 | https://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/ | AutoItLibrary安装前提 |
12 | AutoItV3 | exe文gQ直接双d?/span> | http://www.autoitscript.com/site/autoit-news/autoit-v3-3-10-0-released/ | AutoItLibrary使用前提 |
13 | AutoItLibrary | Cmd命o执行Q?/span>pip install AutoItLibrary | http://code.google.com/p/robotframework-autoitlibrary/ | AutoItLibrary试?/span> |
14 | Requests | Cmd命o执行Q?/span>pip install requests | RequestsLibrary库用前?/span> | |
15 | RequestsLibrary | Cmd命o执行Q?/span>pip install -U robotframework-requests | http request?/span> |
三、安装后查:
1. 配置ride为桌面快h式:
1) 新徏快捷方式Q在桌面叛_鼠标Q弹出的菜单选择 新徏-快捷方式 Q然后在 请键入对?/span> 的位|输入这一行命令,C:\Python27\pythonw.exe -c "from robotide import main; main()"Q注?#8220;C:\Python27\pythonw.exe”?/span>python安装的\径,需要换成你?/span>Python所在目录的路径Q注意双引号文?/span>
2) 点击下一步,输入你要建立的快h式的名称Q点d成,看到图标表示已经建好?/span>
3) 昄不爽Q图标要换成机器人图标,需要快h式上点击右键-属性,点击“更改图标”Q在览里找到目?/span>F:\Python27\Lib\site-packages\robotide\widgetsQ里面有?/span>robot.ico的图标(大家到自q安装目录相同路径L一下)选它之后Q点打开Q确定之后再定可以了Q双d标,q入ride操作面
2. Cmd命o下执?/span>ride.pyQ能成功q入ride面说明robot framework安装成功?/span>
3. ?/span>ride操作面新徏一个项目,?/span>AutoItLibrary?/span>Selenium2Librarycd载,加蝲中如果不昄U色说明AutoItLibrary?/span>Selenium2Library安装成功?/span>
4. Cmd命o下执?/span>pip listQ可以查看安装的包列表有哪些
四、特别说明:
1.安装robotframework-selenium2library 后会自动安装selenium的最?/span>3.0版本Q?/span>selenium 3.0以上版本安装后编写的自动化脚本打开firefox览器会p|Q?/span>robotframework会报如下错误
command: pybot.bat --argumentfile c:\users\administrator\appdata\local\temp\RIDEcatnr4.d\argfile.txt --listener F:\Python27\lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py:14051:False F:\test\aaa
或者这个错?/span>
WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line
解决办法Q?/span>
1) ?/span>pip命o卸蝲selenium3.0版本,命oQ?/span>pip uninstall selenium
2) 下蝲selenium 2.53.6 版本Q包名:selenium-2.53.6.tar.gzQ下载地址Q?/span>https://pypi.python.org/pypi/selenium/2.53.6#downloads
3) 安装selenium-2.53.6.tar.gzQ解?/span>selenium-2.53.6.tar.gzQ把解压的文件拷贝到python安装目录文g夹下Q如Q?/span>D:\Python27\Lib\site-packagesQ?/span>cmdq入selenium解压的文件夹路径Q执行如下命令:python setup.py install
4) Cmd执行pip list 查看安装?/span>selenium版本是否正确
2.python下如何安?/span>.whl包?
{:pip install wheelQ先安装wheelQ然?/span>pip install 包名?/span>.whl 卛_安装.whl包?/span>
五、安装过E遇到的问题汇总:
问:Python有两个版本:2.X?/span>3.XQ装那个版本比较好?
{:׃windows7下,Python 对应?/span>wxPython 版本只支?/span> 2.x 不支?/span>3.xQ因?/span>Python目前只能?/span>2.x版本
问:pip安装完毕后,如何升Q?/span>
{:使用命oQ?/span>pip install --upgrade pip
问:win76下安?/span>autoitlibraryp|
{:必须先安?/span>pywin32Qƈ?/span>Python的安装目录不能有I格Q如果有I格会导致注?/span>autoit?/span>dll时出?/span>
到此Q安装完毕,可以?/span>ride~写自己的自动化试脚本Q开始自动化试之旅Q!Q?/span>^_^?/span>
本文资料来源Q?a >http://zh.wikipedia.org/wiki/Ruby_on_Rails
?/strong>
Ruby on Rails 是一个可以你开发,部vQ维?web 应用E序变得单的框架?br /> Ruby on RailsQ简URailsQ是一个用Ruby语言写的开源Web应用框架Q它是严格按照MVCl构开发的。它努力使自w保持简单,来实际的应用开发时的代码更,使用最的配置?br /> Ruby on Rails是一U结合Ruby语言与Railsq_的一U网늼E语aQRuby语言以自然、简z、快速著Uͼ全面支持面向对象E序设计Q而Rails则是Rubyq泛应用方式之一Q在Railsq_上设计出一套独特的MVC开发架构,采取模型QModelQ、外观(ViewQ、控制器QControllerQ分ȝ开发方式,不但减少了开发中的问题,更简化了许多J复的动作?br /> Rails的设计原则包?#8220;不做重复的事”QDon't Repeat YourselfQ和“惯例优于讄”QConvention Over ConfigurationQ?br />来历
Ruby的作者于1993q??4日开始编写RubyQ直?995q?2月才正式公开发布于fjQ新ȝQ。之所以称为RubyQ是因ؓPerl的发音与6月的诞生石pearlQ珍珠)相同Q因此Ruby?月的诞生石rubyQ红宝石Q命名?br /> 2004q?月,Rails的创始h大卫•L梅尔•韩森?7signals公司的项目管理工具Basecamp里面分离出Ruby on RailsQƈ且以开源方式发布?br /> Rails在发布以后的短短的时间内p速获得很多开发h员欢q,大卫认ؓq归功于Rails设计为opinionated software。Rails当中有很多规矩从一开始就按照David的意见制定好了,所以在Rails上开发应用程序时Q开发h员可以专注于应用E序?w的设计Q省却那些花在了解及配置基础框架上面的时间。这也正是Rails很重要的_“U定优于配置”Q开发h员遵照Rails本n的惯例便可以省却配置l态档的时_此外QRails虽然惯例的重要及便利性,但针对不同的需求,Rails也提供修改的I间让开发h员可以进行自定义的组态?br />q作模式
Rails框架是以固定的命名习惯来自动判断整个架构Q默认下会将|址分析?a href="http://domain-name/ControllerName">http://domain-name/ControllerName /ActionName/Attribute/ 然后q行目标Controller中的ActionQƈ取出指定的ViewQ视图)回传l浏览器昄。面Ҏ据库则以ModelQ模块)的Ş式,借由Active Record作ؓ与数据库之间的传输接口?br />Rails的MVC架构
Ruby on Rails的模?视图-控制器架构由以下各部分组成:
模型
模型包含着应用的状态,状态可能是临时的也可能是长久性保存在数据库中的。需要注意的是模型不仅包含数据,而且包含数据代表的逻辑。在Rails中,模型通常是由一些代表关pL据库中RDBMS表的cȝ成的?br /> 在RoR中,模型cL通过Active Record模式q行处理的。一般来_E序员要做的是承ActiveRecordc,同时E序会自动计出要用哪个RDBMS表,q个表有哪些列。表与表之间的关p通过单的命o来指明?br /> 控制?/strong>
控制器将用户界面和数据模型关联v来,q充当协调运作的角色。它接收各种用户操作Q更新数据模型,q用合适的view展示l果l用戗像他的名字一P可以说应用的主要控制中心是各个控制器?br /> 视图
View负责ҎModel中的数据昄用户界面。作为web应用QRails里的View通常是生成整个或者部分网c当然可以是XML或者甚xJavaScript代码。表Cؓ使用内嵌Ruby的HTMLQXMLQJavaScript模板?/p>Rails的组成模?/strong>
Rails使用如下Gems
actionmailer (1.3.2)
Service layer for easy email delivery and testing.
actionpack (1.13.2)
Web-flow and rendering framework putting the VC in MVC.
actionwebservice (1.2.2)
Web service support for Action Pack.
activerecord (1.15.2)
Implements the ActiveRecord pattern for ORM.
activesupport (1.4.1)
Support and utility classes used by the Rails framework.
rails (1.2.2)
Web-application framework with template engine, control-flow layer, and ORM.
模型QActive Record
ActiveRecord实现了Rails的对象关pL?br />控制器和视图QActionPack
ActionController是Rails中的控制器,提供各种Ҏ供用h作用?br />ActionView是Rails中的视图Q负责展现用L面?br />常用实用工具QActiveSupport
ActiveSupport包提供一些工具和支持代码?br />处理邮gQActionMailer
ActionMailer用来发送和接收email?br />Web服务QActionWebService
ActionWebService来提供SOAP和XML-RPC支持。需要注意的是,Rails向使用更加单明了的REST方式web服务而不再提倡SOAP格式的web服务。ActionWebServices在未来的版本里面会逐步淡出?br />|络资源QActionResource
用REST对Web服务提供了优U的支持。这U风格的Web服务使用指定的资源?br />Rails中的AJAX
AJAXQ异步JavaScript与XMLQ是一U异步传输接口,可以借由览器用JavaScript和XML来处理传输请求,而将Web服务器作为后台来处理Q这h蝲入额外的|页。Rails自带有Prototype?来实现这个技术。Ajax已经和Ruby on Railsl合在了一hZ一个新的系l叫?#8220;Ajax on Rails”。Rails提供一些助手工h更方便地实现AJAX应用?Rails提供了一些HelperQ可以在服务器一端用URuby语言生成l浏览器用的JavaScript代码Q从而让Rails的开发者不需掌握 JavaScript可以简单方便的开发出AJAX的应用?br />Rails和Web服务
E早的版本的Rails中提供了ActionWebService作ؓ开发XML-RPC和SOAP的web服务的基。但是最q的Rails 1.2更加們于是用REST方式的web服务Q而ActionWebService在Rails 2.0中作为plugin而不再是rails核心的一部分?br />Web服务器支?/strong>
对于开发和试来说Q一个很轻量的WEBrick|页服务器已l被包含在了Ruby中,常被用来作ؓ应用服务器。而对于生产应用,常推荐用带FastCGI的Apache或者LighttpdQ但M支持CGI或者FastCGI的网|务器都可以用。在Apache上,mod_ruby也可以考虑用来提高性能?br />数据库支?/strong>
使用Rails的架构开发网l应用一般都使用数据库,所以推荐用一个关pL据库pȝ来进行数据存储,若不能运行一个关pL据库服务器,Rails也支持SQLite库。很多关pL据库pȝ都支持,包括MySQL、PostgreSQL、SQLite、IBM DB2、Oracle和SQL Server?br />pȝ要求
• Ruby语言
• Web服务器,如Apache、lighttpd{?br />• FastCGIQ或者MongrelZ提高效率
• 数据库和驱动E序
集成开发环?/strong>
开发用的IDE有:Eclipse , IntelliJ, Aptana?br />cM的框?/strong>
• CakePHP
• Django
• TurboGears
• CodeIgniter
试l团队经q?/span>1q多的实战,试工作程及规范大安已经明白q能很好的完成每个月的测试Q务;下半q要向工作质量和工作效率q上一个台Ӟ需要发挥大家的力量Q自动化试脚本~写q几个月在测试Q务中让大家感受了一把;大家都认识到Q要惌q些自动化测试脚本能高效的维护、用,让新人和老h更容易的明白q些代码Q我们需要一个自动化试脚本~写的规范?/span>
l过大家的努力,得出了这么个初稿Q放在这里和大家交流交流Q希望有l验的同行能l些?br />
1. 原则上不使用单词的省略词?/span>
2. 对于作用域小的@环变量,?/span>i, j, kq样的名字顺序用?/span>
3. 对于作用域小的变量名Q可以用类名的省略语?/span> (?/span>: eo = ExampleObject.new)
cM及模块名、各单词的每头一个字母大写,不要使用“_”下划U等分隔W。但是,?/span>HTTPq样的通用~略语,全都照样大写。名U最好?#8220;名词”或?#8220;形容?/span>+名词”
正例Q?/span>
OtherClass
HTTPClient
?/span>例:
Other_Class
OTHERCLASS
HttpClient
HTTPclient
HTTP_Client
Ҏ名全都小写、各个单词之间用“_”分隔。方法名中?#8220;动词”或?#8220;动词+名词”
正例:
add_something
误例:
addsSomething
Add_Something
q回真假值的Ҏ的命名,在动词或形容词后q加“?”Q对形容词,不用d“is_”?/span>
正例:
visible?
误例:
is_visible
is_visible?
另外Q在使用h破坏性和非破坏性的Ҏ时候,要在破坏性的Ҏ名后q加“!”?/span>
?/span>:
split
split! # h破坏性的split
cd模块名以外的常数名,全都用大写,单词之间?#8220;_”来分隔?/span>
?/span>:
EXAMPLE_CONSTANT
对于变量名,全都用小写,单词之间?#8220;_”来分隔。全局变量?/span>$开_实例变量?/span>@开_cd量以2?/span>@开头?/span>
?/span>:
tmp
local_variable
@instance_variable
$global_variable
@@class_variable
变量名称要能清晰表达该变量的含义Q如order_stateQ记录订单的状?/span>
文g名全都用小写字母,单词之间?#8220;_”来分隔。另外,可以把文件中的已l变换的主要cd作ؓ文g名来使用?/span>
?/span>:
foo.rb # 定义?/span>c?/span>Foo
foo_bar.rb # 定义?/span>c?/span>FooBar
注释的位|应与被描述的代码相邻,可以攑֜代码的上ҎxQ不要放在代码的下方Q注释内容应明确表达被注释代码的含义?/span>
例:
# Return a Watir::IE object for an existing IE window. Window can be
# referenced by url, title, or window handle.
# Second argument can be either a string or a regular expression in the
# case of of :url or :title.
# IE.attach(:url, 'http://www.google.com')
# IE.attach(:title, 'Google')
# IE.attach(:hwnd, 528140)
# This method will not work when
# Watir/Ruby is run under a service (instead of a user).
defself.attach(how, what)
ie = new true # don't create window
ie._attach_init(how, what)
ie
end
正例Q?/span>
a+b
a + b
误例:
a+ b
a +b
Z增加E序的可L而进行的适当的羃q,~进的幅度以2个字Wؓ宜。另外,~进的时候,只可使用I格Q不可?/span>TABQ编E工具不同的时候,看v来会不一P
?/span>:
if x > 0
if y > 0
puts "x > 0 && y > 0"
end
end
同一函数内,不同含义的代码段之间IZ行;不同函数和不同类之间IZ?/span>
输出查点采用“---输出语句---”格式Q输句应z清晰的表达意思?br />
代码CZ如下?br />
有半q多没有?/span>Ruby+Waitr的自动化试脚本了,今天开始封|测试机器会被关闭,赶着q段国庆I闲旉Q好好整整开源的自动化测试工P争取淮v战役打完后,l织试l的帅哥女们开始写些自动化试代码Qؓ明年的测试工作效率提升打基础?/span>
好久没装Q今天费了一上午l于l装上了Q这ơ要好好整理出文档才行,便于下次使用时可查阅Q同时共享给对这斚w感兴的试同行?/span>
一、工具介l:
Ruby Ruby是面向对象的~程语言Q它q求的是“便快L面向对象~程”?/span>Ruby是解释型语言Q因此不需~译卛_快捷地编E。同?/span>RubyhcMPerl的强大的文本处理功能Q它可ƈ不只是个玩具Q您可以用它来进行实用的~程。此外,您还可以很方便地使用C语言来扩?/span>Ruby的功能,因此可以把她当作各种库的前端来用?/span>
Watir Watir( Web Application Testing in Ruby) 是一个优U的开源工P用于开发基?/span>Web 应用的自动化试E序。它使用Ruby 脚本语言Q提供了轻量U的自动化测试程序框架和丰富的开发库Q有效地加速了自动化测试程序开发?/span>
Watir 的主要特性以及?/strong> Watir
开发自动化E序的优?/strong>Watir是一个轻量的用于开发基?/span>Web应用的自动化试框架Q它ZRuby语言Q提供了丰富的开发库Q简化了自动化测试程序开发。下面我们ȝ?/span>Watir的主要一些优良特性:
l Watir Z Ruby 语言?/span> Ruby 是面向对象语aQ功能强大,单易用。程序解释执行不用编译;
l Watir 支持多种操作pȝq_Q包?/span> Windows, Mac, Linux Q同时支持多U主浏览器Q如 IE, Firefox, Chrome
l Watir 提供了丰富的开发库Q封装了包括览器窗?/span> windowsQ?/span>button, link, dialog, image, table, div {绝大多?/span> HTML 对象cdQ方便测试h员快速构动化试E序?/span>
l Ruby 提供了强大的交互命o工具 IRBQ?/span>Interactive Ruby ShellQ?/span>, ?/span> Watir E序开发中Q我们?/span> IRB 调试代码。别于传l调试方法,试人员可以单独一条命令或者一D늨序进行调试,从而能够快速定位错误,节省调试旉?/span>
l Ruby 提供?/span> Test::Unit 单元试框架Q通过l承该框Ӟ我们可以Ҏ试用例,试用例?/span> (Test Suites) q行灉|方便地组合和调用Qƈ且可利用断言 (Assertion) 来验证测试结果?/span>
l 其他脚本语言?/span> Perl, Python, Shell {也可以很好地集成到 Watir E序中?/span>
l Watir E序在运行时Q允许测试h员在该测试机器上讉K其他|页或者进行其他操作而不会媄响到对象识别的结果?/span>
二、开源自动化试工具l合Q?/span>Ruby+Watir安装
安装准备Q?/span>
1. 工具安装包准备:
Ruby官方下蝲地址Q?/span>http://www.ruby-lang.org/zh_cn/downloads/Q稳定版?/span>Ruby 1.8.6
Watir下蝲地址Q?/span>http://rubyforge.org/frs/?group_id=104&release_id=28016Q徏议装watir 1.5.2
Firefox下蝲地址Q?/span>http://www.hacker.cn/Get/gjrj/06102608545293311.shtmlQ徏议装2.0
Gem下蝲地址Q?/span>http://rubyforge.org/frs/?group_id=104&release_id=28016Q?/span>
装:rubygems-update-1.3.4.gem
Firefox插gjssh?/span>firebug?/span>firewatir下蝲
Jssh下蝲地址Q用Google搜烦Q之前找的忘记是那了Q徏议装jssh-WINNT-2[1].x.xpi
Firebug下蝲地址Q用google搜烦Q之前找的忘记是那了Q徏议装firebug-1.05
Firewatir下蝲地址Q?/span>http://code.google.com/p/firewatir/downloads/listQ徏议装firewatir-1.1
2. 安装步骤Q?/span>
Ø 安装环境Q?/span>Windows xp
Ø 安装rubyQ直接点?/span>ruby?/span>exe安装文g卛_
Ø 安装firefoxQ直接点?/span>exe安装文g卛_
Ø 安装firefox插gQ安装方法:打开firefox览器,点击“文g”/“打开”Q选择插g文g名,安装卛_Q?strong>提醒
Q需要安装插件有Q?/span>jssh?/span>firebug?/span>Ø 安装firewatirQ安装方法:点击“开?#8221;/“q行”Q在面输入命oQ?/span>cmdQ进?/span>DOS命o操作界面Q进?/span>ruby安装的目录,输入命oQ?/span>gem install firewatir-1.1.gem
Ø 安装watir
1) 点击“开?#8221;/“q行”Q在面输入命oQ?/span>cmdQ进?/span>DOS命o操作界面Q?/span>
2) q入ruby安装的目录,?/span>?/span>ruby –vQ查?/span>ruby版本Q显C:Ruby 1.8.6
3) 输入gem –vQ查?/span>gem版本Q显C?/span>0.94
4) 升gemQ把gem包拷贝到ruby安装目录Q在dos界面输入命oQ?/span>gem install rubygems-update-1.3.4.gemQ?/span>gem包名Q?br />
提醒Q安装完后进入ruby目录Q?font style="background-color: #c7edcc">lib\ruby\gems\1.8\gems\rubygems-update-1.3.4Q点击这个文件夹中的文gQ?font style="background-color: #c7edcc">setup.rbQ升Ugem卛_
5) 安装watir包,?/span>watir包拷贝到ruby安装目录Q在dos界面输入命oQ?/span>gem install watir-1.5.2.gem
3. 安装完毕?/span>
?/span>dos界面Q?/span>q入firewatir安装路径下(一般在Q?/span>"ruby"lib"ruby"gems"1.8"gems"firewatir-1.1Q,q入unittests文g夹,输入命oQ?/strong>ruby mozilla_all_tests.rbQ如果可以正执行程序,说明安装正确没有问题Q到此可以开始自动化试开发的旅程了?/span>^_^?br />