Robot Framework->安装配置与基础使用
Robot Framework是目前比较流行的自动化测试框架,其核心特点是“关键字驱动”,即不需要测试人员自己开发测试代码,而是像Selenium IDE一样,根据关键字进行操作即可实现相应的测试。包括对协议级接口的测试,GUI界面的测试,数据库的测试,移动App的测试,命令行测试等,功能非常强大。本节实验主要为大家讲解Robot Framework的安装与配置,确保能够正常运行起来。
实验简介
Robot Framework是目前比较流行的自动化测试框架,其核心特点是“关键字驱动”,即不需要测试人员自己开发测试代码,而是像Selenium IDE一样,根据关键字进行操作即可实现相应的测试。包括对协议级接口的测试,GUI界面的测试,数据库的测试,移动App的测试,命令行测试等,功能非常强大。本节实验主要为大家讲解Robot Framework的安装与配置,确保能够正常运行起来。
实验目的
(1) 掌握Python的安装与pip命令的使用。
(2) 熟练运用pip安装RF框架常用的库文件。
(3) 利用RF完成对Agileone的登录和退出操作。
实验流程
1. 安装Python 2.7版本
去Python的官方网站https://www.python.org/downloads/ 下载Python 2.7.X的版本。目前Python的最新版本是3.6.X,但是由于Robot Framework及对应的GUI库文件WxPython都无法很好地支持新版本,所以我们仍然使用2.7.X的版本。
安装好对应的32位或64位的版本后(建议下载 32位操作系统版本),正常进行安装即可,假定我们安装在下述目录中:“C:\Tools\Python2.7.12”,便于后面的统一讲解。
2. 为Python设置环境变量
打开“我的电脑”的“属性”窗口,并选择“高级设置”,将Python的安装目录“C:\Tools\Python2.7.12”设置到环境变量“PATH”中。便于后续的各类操作和路径识别处理。
3. 安装WxPython的GUI库文件
https://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/wxPython2.8-win32-unicode-2.8.12.1-py27.exe/download下载相应的版本,下载完成后直接双击保持默认安装即可。
4. 下载安装RF相关库文件
我们可以直接访问RF的官方网站 http://robotframework.org/#libraries 并获取所有的可用库,并对应上相应的名字和版本号即可安装。打开Windows命令行切换到C:\Tools\Python2.7.12目录,使用命令:“cd C:\Tools\Python2.7.12\Scripts”回车即可,然后使用Python的安装命令pip完成下列库文件的安装。
(1) Robot Framework核心库文件:pip –install robotframework。
(2) Ride界面操作库文件:pip install robotframework-ride,安装后结合WxPython库可以实现RF测试脚本的可视化编写,更加方便。
原则上来说,以上两个核心库安装完成后,就可以正常使用RF,通过其默认的内置库也可以完成一些测试脚本的开发。但是如果我们需要进行专项的测试,比如HTTP协议接口或者基于Selenium的GUI测试等,则需要专门安装对应的扩展库:
(1) Selenium 2.X版本库文件:pip install selenium==2.53.6,由于最新的Selenium版本是3.X的,所以我们必须强制指定要安装的版本。
(2) 安装Selenium2Library库文件:pip install robotframework-selenium2library。主要用于实现基于Selenium的Web应用系统的测试。
(3) 用于处理HTTP请求的库文件:pip install robotframework-requests。
以下模块可以作为附加库进行安装:
(1) 用于操作数据库的库文件:pip install robotframework-databaselibrary。
(2) 用于操作Excel的库文件:pip install robotframework-excellibrar。
以上的库文件的安装大家可以根据自己的需要选择,或者需要更多的库可以去官方网站上查找即可。另外,如果我们不小心将库安装错了,可以使用命令:“pip uninstall PackageName”卸载该库,由于我们在安装一些库文件的时候,Python会自动帮我们安装附加的库,所以卸载时我们也可以同步卸载这些库文件,当然,即使安装错了,不卸载也不会有什么影响。
5. 检查已安装的库文件及版本
在命令行中,切换到目录C:\Tools\Python2.7.12\Scripts下,运行命令pip list可查看已经安装库:
|
6. 启动RF主界面
切换到目录:“C:\Tools\Python2.7.12\Scripts”下并运行命令“python ride.py”,即可打开RF的主界面,如下图所示:
Ride的主界面相对简单,事实上,这只是一个方便我们操作RF而已,即使不使用Ride的GUI界面,直接写关键字驱动的测试脚本,同样也没有问题。就像我们写Java代码一样,即使不使用IDE集成开发环境,使用记事本写代码,一样可以运行,只是效率上和对于初学阶段的门槛相对要高一些而已。
7. 完成第一个测试脚本
启动Ride后,现在我们来完成一个简单的测试脚本,以确保整个过程运行通过,没有明显的问题。请按照如下步骤完成:
(1) 在“File”菜单下点击“New Project”新建一个测试项目,此处我们命名为“RFDemo”。并指定默认文件类型,如下图所示。
(2) 选中“RFDemo”,在右边主窗口中,点击“Library”,在打开的对话框中输入“Selenium2Library”,并点击确定,如果“Selenium2Library”已经正常安装,那么将会在主窗口中正常显示。否则,会以红色显示错误。
导入Selenium库成功后的界面。
(3) 在“RFDemo”上点击右键“New Test Case”新建一个测试用例,此处命名为“AgileoneLogin”。
(4) 在右边窗口手工输入下面的关键字和参数,完成第一个RF测试脚本:
(5) 最终,我们可以在测试用例的“Text Edit”视图下看到的脚本如下图所示。该测试脚本保存在我们最开始创建项目时指定的文件目录下,且后缀名为:“.robot”。
|
8. 执行测试脚本
当我们点击“Tools”菜单下的“Run Tests”,便可以正常运行该脚本。此处需要注意的是,由于Firefox版本的原因,目前Selenium 2.53.6的版本只能支持到Firefox 47及以下版本。如果我们需要测试的是更新版本的Firefox,与Selenium WebDriver一样,需要安装GeckDriver才可以,但是Selenium3.X目前的兼容性也有待提高,所以建议先使用2.x版本,待后续功能层面稳定后再进行移植即可,这一点我们在使用WebDriver时已经感受到了其新版本的不稳定。执行后的结果窗口如下图所示。
在结果窗口中,我们可以看到关于成功或失败的日志信息。同时,我们也可以看到保存当前测试报告的文件路径,我们可以复制上述的HTML日志文件路径并在浏览器中打开,路径格式大致为“c:\users\denny\appdata\local\temp\RIDElsbtb6.d\log.html”,可以看到如下的结果:
如果我们的脚本运行有错误,该测试报告中也会以红色显示出错的代码行。
9. 查看关键字及用法
此时大家一定在思考一个问题,我怎么知道RF中到底有哪些关键字呢?它们的具体用法和参数又是怎样的呢?事实上,RF有内置库和扩展库。在同一个测试用例脚本中,我们可以随时使用内置库的关键字,如果要使用扩展库,则必须在创建的测试项目中先导入该库,导入后方可使用库中所带的关键字。
当我们在书写测试用例关键字时,当我们不清楚关键字列表及功能时,可以随时按快捷键“F5”打开关键字搜索窗口,搜索或浏览当前加载的库中所有的关键字。
通过搜索,并查找到相应的关键字后,我们便可以正常使用并且传递对应的参数了。好在这些关键字都是标准的见文识义,我们很容易通过其关键字名称来获得其作用。同时,在关键字的下方的说明中也提供了很详细的介绍,并且很多关键字也为我们提供了样例供使用时参数,非常的方便。而且很多操作跟Selenium IDE也很类似,所以相信大家并不会陌生。由于本书的重点并不在这些关键字的详细讲解上,所以此处不再赘述,给大家说明使用方法即可。
10. 使RF脚本在IE上运行
就像在WebDriver中我们可以通过加载不同的驱动程序来让Selenium的测试脚本运行于不同的浏览器上一样,在RF的Selenium关键字库中,也同样支持其测试脚本运行于不同的浏览器之上。在这里我们只需要做两步操作即可:
(1) 将IEDriverServer.exe驱动程序复制到系统的默认PATH路径中,此处我们可以直接复制到Python的安装目录中,因为本身这个目录就位于环境变量PATH中。
(2) 将上述测试脚本的第一行,修改为“Open Browser http://localhost/agileone ie”即可。关于RF默认所支持的浏览器类别及关键字写法,大家可以参考关键字“Open Browser”的用法说明。
11. 直接运行.robot文件
到目前为止,我们所有的运行均通过Ride完成,操作当然是很方便的。但是如果我们要更好进行持续集成的话,或者通过其它程序来自动运行RF脚本的情况下,我们其实更希望能够直接通过命令行来完成运行,而不是通过Ride界面。其过程也非常简单,我们只需要运行如下命令即可:
思考练习
(1) 请利用RF来完成对Agileone的需求提案的测试功能。
(2) 请自学RF的其它高级用法,比如变量,比如条件控制等。