23
07

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可查看已经安装库:


C:\Tools\Python2.7.12\Scripts>pip list
certifi (2017.7.27.1)
chardet (3.0.4)
decorator (4.1.1)
idna (2.5)
pip (8.1.1)
requests (2.18.3)
robotframework (3.0.2)
robotframework-requests (0.4.7)
robotframework-ride (1.5.2.1)
robotframework-selenium2library (1.8.0)
selenium (2.53.6)
setuptools (20.10.1)
urllib3 (1.22)


 

6. 启动RF主界面


切换到目录:“C:\Tools\Python2.7.12\Scripts”下并运行命令“python ride.py”,即可打开RF的主界面,如下图所示


20180118_151144_304.png 

 

Ride的主界面相对简单,事实上,这只是一个方便我们操作RF而已,即使不使用Ride的GUI界面,直接写关键字驱动的测试脚本,同样也没有问题。就像我们写Java代码一样,即使不使用IDE集成开发环境,使用记事本写代码,一样可以运行,只是效率上和对于初学阶段的门槛相对要高一些而已。

 

7. 完成第一个测试脚本


启动Ride后,现在我们来完成一个简单的测试脚本,以确保整个过程运行通过,没有明显的问题。请按照如下步骤完成:


(1) 在“File”菜单下点击“New Project”新建一个测试项目,此处我们命名为“RFDemo”。并指定默认文件类型,如下图所示。


20180118_151154_867.png 

 

(2) 选中“RFDemo”,在右边主窗口中,点击“Library”,在打开的对话框中输入“Selenium2Library”,并点击确定,如果“Selenium2Library”已经正常安装,那么将会在主窗口中正常显示。否则,会以红色显示错误。


20180118_151207_650.png 

 

导入Selenium库成功后的界面。


20180118_151216_185.png 

 

(3) 在“RFDemo”上点击右键“New Test Case”新建一个测试用例,此处命名为“AgileoneLogin”。

(4) 在右边窗口手工输入下面的关键字和参数,完成第一个RF测试脚本:


20180118_151225_266.png 


(5) 最终,我们可以在测试用例的“Text Edit”视图下看到的脚本如下图所示。该测试脚本保存在我们最开始创建项目时指定的文件目录下,且后缀名为:“.robot”。


*** Settings ***
Library           Selenium2Library
 
*** Test Cases ***
AgileonLogin
    [Documentation]    这是专门用于测试Agileone系统的登录功能的脚本。
    [Tags]    Agileone    # Agileone
    Open Browser    http://localhost/agileone    firefox
    Wait Until Element Is Enabled    id=username
    Input Text    id=username    admin
    Input Text    id=password    admin
    Click Button    id=login
    Sleep    3s    等待页面加载完成
    ${value}    Get Text    id=myproject
    Should Contain    ${value}    Agileone
 
*** Keywords ***


 

8. 执行测试脚本


当我们点击“Tools”菜单下的“Run Tests”,便可以正常运行该脚本。此处需要注意的是,由于Firefox版本的原因,目前Selenium 2.53.6的版本只能支持到Firefox 47及以下版本。如果我们需要测试的是更新版本的Firefox,与Selenium WebDriver一样,需要安装GeckDriver才可以,但是Selenium3.X目前的兼容性也有待提高,所以建议先使用2.x版本,待后续功能层面稳定后再进行移植即可,这一点我们在使用WebDriver时已经感受到了其新版本的不稳定。执行后的结果窗口如下图所示。


20180118_151234_787.png 


在结果窗口中,我们可以看到关于成功或失败的日志信息。同时,我们也可以看到保存当前测试报告的文件路径,我们可以复制上述的HTML日志文件路径并在浏览器中打开,路径格式大致为“c:\users\denny\appdata\local\temp\RIDElsbtb6.d\log.html”,可以看到如下的结果:


20180118_151242_799.png 


如果我们的脚本运行有错误,该测试报告中也会以红色显示出错的代码行。

 

9. 查看关键字及用法


此时大家一定在思考一个问题,我怎么知道RF中到底有哪些关键字呢?它们的具体用法和参数又是怎样的呢?事实上,RF有内置库和扩展库。在同一个测试用例脚本中,我们可以随时使用内置库的关键字,如果要使用扩展库,则必须在创建的测试项目中先导入该库,导入后方可使用库中所带的关键字。


当我们在书写测试用例关键字时,当我们不清楚关键字列表及功能时,可以随时按快捷键“F5”打开关键字搜索窗口,搜索或浏览当前加载的库中所有的关键字。


20180118_151250_877.png 

 

通过搜索,并查找到相应的关键字后,我们便可以正常使用并且传递对应的参数了。好在这些关键字都是标准的见文识义,我们很容易通过其关键字名称来获得其作用。同时,在关键字的下方的说明中也提供了很详细的介绍,并且很多关键字也为我们提供了样例供使用时参数,非常的方便。而且很多操作跟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界面。其过程也非常简单,我们只需要运行如下命令即可:


20180118_151301_228.png 

 

 思考练习



(1) 请利用RF来完成对Agileone的需求提案的测试功能。

(2) 请自学RF的其它高级用法,比如变量,比如条件控制等。




为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。


20181009_153045_341.jpg


版权所有,转载本站文章请注明出处:蜗牛学苑, https://www.woniuxy.cn/article/64