Robot Framework 是一款基于 Python 的功能自动化测试框架。它具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。
在我们进行全球化测试的时候可以用此框架来编写一些脚本任务,如定时下载 daily build , 配合 Selenium 完成自动化截图等,来方便我们的测试。
Robot Framework 的安装和配置
在使用 RF(Rebot framework)的时候需要 Python 或 Jython 环境,具体可根据自己的需求来确定。本文以在有 Python 的环境的机器上安装和使用 RF 为例。
在配置过程中需要安装如下包:python 2.7、wxPython、robot framework、robot framework ride、robot framework selenium library。
安装 Python 2.7
RF 框架是基于 Python 语言的,所以一定要有 Python 环境。可以通过下面的下载页面下载对应的 Python 版本。
下载页面:https://www.python.org/downloads/。
下载完成后,选择默认项进行安装。
安装完后,需要设置环境变量:计算机—属性—高级系统设置—环境变量—系统变量—Path,写入 C:Python27 和 C:Python27Scripts(更改为您指定路径即可)。
同时我们也可以通过 DOS 环境来验证安装的 Python 信息。
安装 WxPython
下载页面: http://wxpython.org/download.php#stable。
在选择版本下载的时候要注意选择与 Python 版本对应的版本,并且选择 unicode 版本,比如版本:wxPython2.8-win32-unicode-py26.exe,否则安装完成后不能支持中文。
下载完成后,选择默认项进行安装即可。
安装 PyCrypto
下载页面:http://www.voidspace.org.uk/python/modules.shtml#pycrypto。
选择对应的 pycrypto installer 版本,进行默认安装。需要在安装库(如 SHHLibrary)之前进行安装,否则会出现 错误“Can't find vcvarsal.bat”。
安装 Robot Framwork
进入 Python 的安装路径,执行命令“pip install robotframework”或者通过下载页面 https://pypi.python.org/pypi/robotframework下载源码。
解压后,执行命令“python setup.py install”进行安装。进入 Python 的安装路径,执行命令“pip install robotframework”。
安装 robotframework-ride
进入 Python 的安装路径,执行命令“pip install robotframework-ride”。
安装需要的 Library
如 selenium2library ,archivelibrary,SSHLibrary ,ftplibrary 等。进入 Python 的安装路径,分别执行以下命令:
清单 1. 安装 Test Library
1
2
3
4
|
pip install robotframework-selenium2library pip install robotframework-archivelibrary pip install robotframework-SSHLibrary pip install robotframework-ftplibrary |
完成以上步骤后,RobotFramework 的安装工作已经完成,可以通过执行命令“pip list”查看已经安装的产品,如图 1 所示:
图 1.RobotFramework 安装产品列表
RIDE 编辑器介绍
RF 是通过 RIDE 编辑器进行工作的,安装成功后,执行命令“[PythonDir]Scripts ide.py”,就可以打开 RIDE 编辑器,如图 2 所示。打开之后就可以进行创建测试项目,创建测试用例等操作,在后面的实例讲解中有具体步骤。
图 2.RIDE 编辑器启动界面
创建测试项目
选择菜单栏 File —>New Project,输入项目名称,选择 Directory type,选择目录。
图 3. 创建测试项目
创建测试套件
右键点击刚创建的测试项目,选择 New Suit,输入 name , 选择 File type。
图 4. 创建测试套件
创建测试用例
右键点击刚创建的测试套件,选择 New TestCase,输入名称。
图 5. 创建测试用例
导入库
在实际项目中,我们需要运用 RF 框架编写基于 web 的测试用例,我们需要 Selenium 的库支持。所以,我们在使用的过程中需要加载 selenium2library 库。
图 6. 导入测试库
在“测试套件”的 Edit 标签页,点击“Library”按钮,弹出输入框,Name 输入:Selenium2Library ,点击 OK 完成。
如果导入的库显示为红色,表示导入的库不存在。如果是黑色则表示导入成功。
编写测试用例
可以通过快捷键 F5 来查询脚本的关键字。以打开浏览器为例,输入关键字“open”进行搜索,查询到一个“Open Browser”的关键字,点击这个关键字,就出现了它的用法和说明,如图 7。
图 7.Search Keywords
熟悉这个关键字用法之后,可以在 test case 里面进行尝试。“Open Browser”显示蓝色,说明它是一个合法的关键字,后面为红色说明需要输入一个参数,从其用法可知,需要输入 URL。更多关键字的用法可以熟悉 API 文件。
图 8.keywords 实例
编写测试用例的时候还可以选择添加变量。变量是 RF 的常用的功能,它能在测试数据的大多数地方使用。主要有以下几种:
标量变量:语法 ${scalar }。当在测试数据中使用标量变量时,它们将被分配的值所代替。
列表变量:语法 @{LIST}。列表变量是复合变量,可以分配多个值给它。
数字变量:变量语法可以用来创建一个全是整型和浮点型的数字:整型${80}、浮点型${3.14}。
Boolean 变量:${true/false}。
Null/None 变量:${null/None}。
空格${SPACE} 和空${EMPTY} 变量等。
图 9. 添加变量
运行测试用例
以上几步完成后,就可以在 Run 页面,进行运行,并查看结果,具体如图 10 所示:
在运行完测试之后,也可以进行查看 log 文件等操作。
图 10. 运行测试用例
简单的测试用例的编写
安装完成 RF 之后,通过 RIDE 编辑器的介绍,对 RF 的工作原理有一定了解之后,在这一部分主要给大家介绍一个简单的实例:从服务器上下载指定的文件。
首先按照上面的步骤来进行:创建项目---->创建 Test Suite---->创建 Test Case。
创建项目
菜单 File -> New Project,在弹出“New Project”对话框选择 Type 为 Directory,然后填写 Name,点击 OK 按钮。
创建 Test Suite
在已创建的项目上点击鼠标右键,选择 New Suite,在弹出“Add Suite”对话框中选择 Type 为 File,然后填写 Name,点击 OK 按钮。
添加所需的库文件,选定 Suite 然后点击右边 Library 按钮,在弹出对话框的 Name 后输入 FtpLibrary 并点击 OK 按钮,添加其他 Library 也是如此,具体如图 11 所示:
图 11. 添加 Library
添加所需的变量,选定 Suite 然后点击右边 Add Scalar 按钮,在弹出对话框的 Name 后输入变量名,注意变量的结构是${name}or @{name},在 Value 后输入变量的值。
图 12. 添加变量
创建 Test Case
在已创建的 suite 点击鼠标右键选择 New Test Case,在弹出对话框的 Name 填写 Name,点击 OK 按钮。
至此,项目已经创建好了,Suite 创建了也添加了所需要的 Library,Test Case 也创建好了,接下来就可以在 Test Case 里编写测试用例了,也就是在表格输入关键字和参数或变量。
图 13.TestCase 实例
注:在图中表格里的蓝色字体是库中的关键字,绿色字体是变量,黑色字体是系统自带关键字。
下面对 OnPremise 这个 test case 进行解释。
图 14.OnPremise--连接 FTP 服务器
目的:连接 FTP 服务器。
通过关键字 ftp connect 以及参数,包括用户名${uname_ftp_server} 和密码${pwd_ftp_sever},来连接 FTP 服务器${build_ftp_sever},并设定超时时间为 300 秒。
图 15.OnPremise--记录当前路径
目的:记录当前路径。
Cwd 关键字切换并进入所需路径${path_ftp_server},然后通过 Pwd 输出当前路径并保存到变量${output} 中。
图 16.OnPremise--创建本地文件夹
目的:创建本地文件夹,用来存放下载的文件。
由于服务器路径目录是以日期结束,将此通过 Split String From Right 关键字分离出来并保存到${currentBuildLevel},最后生成完整路径${currentDestination},并通过 Create Directory 关键字来创建目标文件夹。
图 17.OnPremise--下载所有所需的文件
目的:下载所有所需的文件。
需要下载的文件不止一个,可通过 FOR 循环在列表变量 @{targetFiles} 中分别取出目标文件名,再通过 Download File 关键字来逐一下载并保存到${currentDestination} 路径下。
总结
Robot framework 关键字自动化框架,它拥有强大而丰富的 Library,以及简单易用的关键字方式的使用,可以很好地支持全球化测试部门的测试工作,从而减少编写代码的时间同时也大大地提高了工作效率。相信通过对 Robot framework 关键字自动化框架更深的使用和了解,将不仅仅只是帮助自动下载文件,也会在更多更广的方面带来越来越多的益处。
1、首先安装python运行环境,我用的2.7版本,当然也有更高的版本,不过安装其他插件的过程中,出现版本问题,所以用了2.7。
2、安装pip(python包管理工具) https://pip.pypa.io/en/latest/index.html 进入下载get-pip.by文件,进入控制台执行easy_install pip安装pip,以下命令都是控制台执行
3、安装robot framework,执行pip install robotframework
4、安装robotframework-ride,执行pip install robotframework-ride
5、安装selenium2library,执行pip install robotframework-selenium2library
6、安装decorator-3.3.3.tar,执行pip install decorator
7、安装selenium,执行pip install selenium
8、安装PythonIDE pycharm,请自行下载安装,完成后打开后是如下界面:
9、在pycharm中配置intelliBot,见这位大神的文章:http://www.jianshu.com/p/5a97d28a596d
注意:1、在运行测试用例之前,需要为用例添加配置才能运行哦,刚开始用这个工具的人,得先找到运行入口
2、运行别人的例子时,可能会有很多包不存在,用Pip下载就可以了
3、相关的安装包链接:https://pan.baidu.com/s/1o8JTdoQ(64位试用)
4、参考文章链接:http://www.cnblogs.com/weke/articles/4555053.html, https://www.ibm.com/developerworks/cn/opensource/os-cn-robot-framework/index.html,http://www.cnblogs.com/puresoul/p/3854963.html
黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。
(一)等价类划分法
定义:等价类划分法是把所有可能输入的数据,即程序的输入域划分策划国内若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。方法是一种重要的、常用的黑盒测试用例设计方法。
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其 他值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试 结果。等价类划分有两种不同的情况:有效等价类和无效等价类。
有效等价类,是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明所规定的功能和性能。
无效等价类 指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能多个。
划分标准:
1) 完备测试、避免冗余
2) 划分等价类重要的是:集合的划分、划分为互不相交的一组子集,而子集的并是整个集合
3) 并是整个集合:备性
4) 子集互不相交:保证一种形式的无冗余性
5) 同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到“相同的执行路径”。
划分方法:
1) 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0~100;
一、安装的软件清单见下图:
二、安装步骤:
顺序 |
安装包名 |
安装方法 |
下载地址 |
备注 |
1 |
python |
exe文件,直接双击安装,安装完设置Python环境变量,将“d:Python27”和“d:Python27Scripts”添加到环境变量“PATH”项中(注意环境变量之间用“;”隔开) |
一切的基础,安装路径不能有空格 |
|
2 |
setuptools |
下载ez_setup.py文件,把文件放到python安装目录的scripts目录下,双击文件名 |
Python 的套件管理程式 |
|
3 |
pip |
1.cmd进入ez_setup.py文件目录,如: d:Python27Scripts 2.用setuptools安装:easy_install pip |
Python 的套件管理程式 |
|
4 |
升级php |
Cmd命令执行: pip install --upgrade pip |
无 |
升级pip到最新版本 |
5 |
robot framework |
Cmd命令执行:pip install robotframework |
robot framework本身 |
|
6 |
wxPython |
exe文件,直接双击安装 |
支撑Ride的运行库 |
|
7 |
robotframework-ride |
Cmd命令执行:pip install robotframework-ride |
Ride |
|
8 |
robotframework-selenium2library |
Cmd命令执行:pip install robotframework-selenium2library |
https://pypi.python.org/pypi/robotframework-selenium2library |
selenium2测试库,基于webdriver驱动 |
9 |
robotframework-databaselibrary |
Cmd命令执行:pip install robotframework-databaselibrary |
https://github.com/franz-see/Robotframework-Database-Library |
DB库 |
10 |
Pymysql |
Cmd命令执行:pip install pymysql |
https://pypi.python.org/pypi/pymssql |
Mysql第三方库 |
11 |
pywin32 |
exe文件,直接双击安装,注意py对应的版本2.7 |
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/ |
AutoItLibrary安装前提 |
12 |
AutoItV3 |
exe文件,直接双击安装 |
http://www.autoitscript.com/site/autoit-news/autoit-v3-3-10-0-released/ |
AutoItLibrary使用前提 |
13 |
AutoItLibrary |
Cmd命令执行:pip install AutoItLibrary |
http://code.google.com/p/robotframework-autoitlibrary/ |
AutoItLibrary测试库 |
14 |
Requests |
Cmd命令执行:pip install requests |
RequestsLibrary库使用前提 |
|
15 |
RequestsLibrary |
Cmd命令执行:pip install -U robotframework-requests |
http request库 |
三、安装后检查:
1. 配置ride为桌面快捷方式:
1) 新建快捷方式,在桌面右击鼠标,弹出的菜单选择 新建-快捷方式 ,然后在 请键入对象 的位置输入这一行命令,C:Python27pythonw.exe -c "from robotide import main; main()",注意“C:Python27pythonw.exe”是python安装的路径,需要换成你的Python所在目录的路径;注意双引号为英文。
2) 点击下一步,输入你要建立的快捷方式的名称,点击完成,看到图标表示已经建好。
3) 显示不爽,图标要换成机器人图标,需要快捷方式上点击右键-属性,点击“更改图标”,在浏览里找到目录F:Python27Libsite-packages obotidewidgets,里面有个robot.ico的图标(大家到自己的安装目录相同路径去找一下)选它之后,点打开,确定之后再确定就可以了,双击图标,进入ride操作页面
2. Cmd命令下执行ride.py,能成功进入ride页面说明robot framework安装成功。
3. 在ride操作页面新建一个项目,把AutoItLibrary、Selenium2Library类加载,加载中如果不显示红色说明AutoItLibrary、Selenium2Library安装成功。
4. Cmd命令下执行pip list,可以查看安装的包列表有哪些
四、特别说明:
1.安装robotframework-selenium2library 后会自动安装selenium的最新3.0版本,selenium 3.0以上版本安装后编写的自动化脚本打开firefox浏览器会失败,robotframework会报如下错误
command: pybot.bat --argumentfile c:usersadministratorappdatalocal empRIDEcatnr4.dargfile.txt --listener F:Python27libsite-packages obotidecontrib estrunnerTestRunnerAgent.py:14051:False F: estaaa
或者这个错误
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
解决办法:
1) 用pip命令卸载selenium3.0版本,命令:pip uninstall selenium
2) 下载selenium 2.53.6 版本,包名:selenium-2.53.6.tar.gz,下载地址:https://pypi.python.org/pypi/selenium/2.53.6#downloads
3) 安装selenium-2.53.6.tar.gz;解压selenium-2.53.6.tar.gz,把解压的文件拷贝到python安装目录文件夹下,如:D:Python27Libsite-packages;cmd进入selenium解压的文件夹路径,执行如下命令:python setup.py install
4) Cmd执行pip list 查看安装的selenium版本是否正确
2.python下如何安装.whl包?
答:pip install wheel;先安装wheel,然后pip install 包名字.whl 即可安装.whl包。
五、安装过程遇到的问题汇总:
问:Python有两个版本:2.X和3.X,装那个版本比较好?
答:由于windows7下,Python 对应的wxPython 版本只支持 2.x 不支持3.x,因此Python目前只能装2.x版本
问:pip安装完毕后,如何升级?
答:使用命令:pip install --upgrade pip
问:win76下安装autoitlibrary失败
答:必须先安装pywin32,并且Python的安装目录不能有空格,如果有空格会导致注册autoit的dll时出错