一、了解Robot Framework
Robot Framework是为“测试”而生,他的目标人群是测试工程师,它的目标和使命注定了Robot Framework必须要简单/简介/亲民/易懂,而这些Robot Framework都做到了,这使得Robot Framework推出之后,得以快速发展传播。
Robot Framework最重要特性之一是“Keyword-driven”(关键字驱动),keyword类似其他高级语言的函数,使得代码结构化和重复利用。
Robot Framework不仅适用于常规的测试模式,也适用于ATDD(acceptance test-driver development) (各个相关团队协作开发模式,比如软件团队/测试团队/项目管理团队等),所以适用十分广泛。
Robot Framework是使用Python语言开发,它也可以运行在Jython(JVM)和IronPython(.NET)上。开发者可以用Python或者Java来更改和扩展Robot Framework,其他语言则可以通过Remote interface来进行扩展。
Robot Framework最早是有Nokia开发,后来开源供其它所有人共享。目前官方代码放在Github上,采用Apache 2 license。
二、Robot Framework的架
Robot Framework是一个通用的测试框架,它的丰富的功能特性来自于library扩充,这些library一部分是Robot Framework自带的,另外还有很多是第三方开发扩充的。对于大多数程序员或软件测试工程师,只需要调用已有的library就可以编写自己的use case了,这些use case对framework而言是“Test Data”。测试程序的执行,是先从Robot Framework解析Test Data开始,然后根据library或者tools提供的Keyword与被测试系统互动。测试完成后,会产生report/log(HTML格式)和output(xml格式)。
其构成的结构模块如下图所示:
三、Robot Framework的安装
RF框架是基于python 的,所以一定要有python环境,请提前安装python和配置环境,由于RF是基于python2.x开发,所以对2.0的兼容较好,3.x的会遇到一些兼容问题需要解决。
Python3.x的建议直接用pip安装各个需要的库,以防因版本不同导致运行错误还要重新查找版本一致的。
1.wxPython 的安装
说明:它是Python语言的跨平台GUI工具包,由于RIDE基于这个库开发的,所以也需要安装。
命令:pip install wxPython
下载地址:
https://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/wxPython2.8-win64-unicode-2.8.12.1-py27.exe/download
直接双击下一步即可
2.RIDE安装
说明:RF框架测试数据的轻量级直观编辑器,一个图形界面的用于创建、组织、运行测试的软件。
命令:pip install robotframework-ride
下载地址:
https://github.com/robotframework/RIDE/releases/download/v1.5.2.1/robotframework-ride-1.5.2.1.win-amd64.exe
直接双击下一步即可
3.Robot Framework 安装
说明:RF是用于验收测试和验收测试驱动开发的通用测试自动化框架。
命令:pip install robotframework
4.安装遇到的问题
倘若你桌面没有生成RIDE快捷方式,请按以下步骤手动添加。
a.新建快捷方式,输入 C:\Python27\pythonw.exe -c "from robotide import main; main()",路径是自己安装python的路径
b.然后下一步,修改快捷方式的名称为 RIDE,点击完成 。
c.右击RIDE属性,更改图标,浏览选择
%SystemDrive%\Python27\Lib\site-packages\robotide\widgets\robot.ico
搭建参考文档:https://www.cnblogs.com/yufeihlf/p/5945102.html
四、RIDE的启动
以上安装完成之后,如何启动RIDE:
1.通过文件启动(双击[dirPath]\python\Lib\site-packages\robotide下的__init__.py文件)
2.通过命令启动(运行->ride.py回车/确认)
cd C:\Python27\Scripts\
python ride.py
3.将C:\Python27\Scripts\ride.py创建快捷键,
打开ride.py文件之后(以python方式打开),点击“运行(start)”按钮。
4.已有快捷方式的,直接双击运行。
注:路径为自己安装python的路径。
五、需要安装的Library
根据实际使用情况添加即可
pip install robotframework-selenium2library
(说明:RF版的selenium 库,RF 、appium 等测试工具都可以基于这套API进行页面的定位与操作)
下载地址:https://github.com/robotframework/Selenium2Library#readme
pip install robotframework-archivelibrary
pip install robotframework-SSHLibrary
(说明:远程连接使用,安装前需要安装 PyCrypto,否则会出现 错误“Can't find vcvarsal.bat”)下载:http://www.voidspace.org.uk/python/modules.shtml#pycrypto
pip install robotframework-ftplibrary
(说明:连接ftp,创建文件夹,上传文件到制定目录等)
六、接口使用的Library
pip install requests
(说明:用于接口的连接、发送方式等)
pip install RequestsLibrary
(说明:与requests库用于,写法不同)
pip install Collecttions
(说明:可用于断言使用)
pip install JSONLibrary
(说明:用于转化json数据格式处理)
pip install ExcelLibrary
(说明:用于导入excel文件使用)
常见库参考:https://blog.csdn.net/u013961875/article/details/78670249
七、RIDE使用
1.创建项目:File->New Project
注:选择directory原因是,在directory的项目下可以创建测试套件,如果是tpye为file,则只能创建测试用例,这不利于用例的管理。
2.创建测试套件New Suite
在新建项目右键,点击New Suite
注:选择file原因是,在file的测试套件下可以创建测试用例,如果是tpye为directory,还得重新再继续建file的测试套件,才能创建测试用例,因为测试用例只能在file类型下创建。
3.创建测试用例New Test Case
在新建的测试套件右键,选择New Test Case
各功能面板说明可参考:https://www.cnblogs.com/yufeihlf/p/5949984.html
4.导入第三方库和自己自定义的库
在测试套件下的工作区的右方,点击Library,在弹出框的name栏输入第三方库名称或者自己编写的库。
导入不成功会显示红色,黑色为导入成功,可通过F5键查询导入成功的lib和lib下的方法,看自己需要使用哪个就选应用哪个
导入不成功可通过查看log找原因,路径:Tools->View RIDE Log
导入自己编写的库,文件最好用英文命名,还需要将文件路径,例如:D:\robotframework\MyLibrary)**添加到**[PYTHON目录]\Lib\site-packages**下的后缀名为pth的文件中。然后重启ride,在测试套件的工作区的右方,点击Library,在弹出框的name栏输入“脚本名称”(例如MyLibrary.py,就输入MyLibrary),点击OK即可。自己编写的脚本中中文描述要加u,不然F5查看会乱码,函数命名有(例如:Match_Url或者MatchUrl),都会解析为Match Url。
5.测试用例编写
表格区:第一列一般写的是关键词,关键词的来源包括BuiltIn库,第三方导入库,自己编写的导入库。通过ctrl+alt+space可以自动带出相关关键字。以及相关用法,里边有对入参的说明。Ctrl+鼠标悬浮(即鼠标在某个关键字上),可以直接显示关键字的相关用法。第二三四五列,一般是入参,红色的表示必填的入参。浅灰色表示选填的入参。深灰色表示无需填写。
输入sho再同时按住ctrl+alt+space键,则可以自动带出相关关键字,以及选中关键字的用法。
6.运行测试用例
7.生成测试报告
编写接口测试用例可参考文档:https://www.cnblogs.com/klb561/p/9080417.html
8.编写用例注意事项:
a.浅灰色编辑区进行注释不能与前面有空格或者只能在已经不能使用的深灰色区域进行注释,否则执行会报错
b.Python3.x导入robotframework-excellibrary失败问题:
使用pip install robotframework-excellibrary,会报错:
execfile(join(dirname(file), ‘ExcelLibrary’, ‘version.py’)) NameError: name ‘execfile’ is not defined
建议直接下载离线包放在**[PYTHON目录]\Lib\site-packages**文件中,解压文件后修改内容,下载地址:https://files.pythonhosted.org/packages/b8/e7/8c079a814e7ad288ec2fc15671d8dc526e3d537bb00e4ab2b209a63674ed/robotframework-excellibrary-0.0.2.zip或者https://www.whitetown.com/excel-library/
修改内容如下:
1.setup.py
#execfile(join(dirname(file), ‘ExcelLibrary’, ‘version.py’))
exec(open(join(dirname(file), ‘ExcelLibrary’, ‘version.py’)).read())
2.ExcelLibrary.py
将所有的print xxx 语句修改为 print(xxx),python3.0对print的格式要求要()
#from version import VERSION
from .version import VERSION
3.init.py
#from ExcelLibrary import ExcelLibrary
#from version import VERSION
from .ExcelLibrary import ExcelLibrary
from .version import VERSION
c.Python3.x无法通过pip安装,安装方式:下载好压缩包 ->解压 -> 在解压目录的当前文件夹下,打开终端,输入 : python setup.py install。
d.导入ExcelLibrary可能会不成功,可在Tools—View RIDE Log查看问题显示,基本是因为ExcelLibrary里使用的库找不到导致,例如会报Importing test library ‘ExcelLibrary’failed:ImportError:No module named natsort等是缺少natsort模块,下载natsort模块并安装,还会提示Importing test library ‘ExcelLibrary’failed:ImportError:No module named xlutils是缺少xlutils,继续下载xlutils并安装。
ExcelLibrary语法可参考学习:
https://blog.csdn.net/weixin_38374974/article/details/82704169
e.RIDE控制台及日志中文乱码处理:
找到Python路径下的testrunnerplugin.py文件,例如:
C:\Python\Python37\Lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py
修改如下:
还不行的话,检查一下文件
Lib/site-packages/robotide/contrib/testrunner/testrunner.py
八、最后祝语
刚接手不懂可参考附件编写熟悉:[接口测试.robot](http://doc.linghit.io/server/../Public/Uploads/2020-05-15/5ebe18d3ba7a5.robot "[接口测试.robot")、[test.xls](http://doc.linghit.io/server/../Public/Uploads/2020-05-15/5ebe18cf9400e.xls "[test.xls"),通过jenkins邮件的发送另外写操作说明。