----公告:本章内容仅适用于Python2.7 + RobotFramework3.0.2 + Ride1.5.2.1 + wxPython2.8.12.1版本。适用于Python3的RF环境搭建请移步查看作者的另一篇文章。
当初开的目的是总结RF自动化测试的学习和分享,网上有很多教程,虽然有好几个程序要安装,其实还是很简单的,所以没分享过程,为了学习顺序现在还是补上吧。
本文讲Windwos系统安装RF方法,初学者按照步骤正常安装,基本不会有多大问题。如果不是新手,只是需要安装包,文末单独提供下载链接,请直接跳到底部,请自行按需选择64位或32位程序,否则会出现环境无法正常启动的问题。
第一部分、在Windows下安装Robot Framework
1.1RF框架介绍
Robot Framework框架是一个通用的测试框架,一直是由诺西网络(Nokia Siemens Networks Oyj)的人员维护。在诺基亚卖掉手机业务后,更名为诺基亚解决方案网络(Nokia Solutions and Networks)。
官方地址:RF官网
官方介绍:The framework was initially developed at Nokia Networks and itis nowadays sponsored by Robot Framework Foundation
官方指南:RF官方指南
API documentation:官方API文档
RF的特性:
易于使用,采用表格式语法,统一测试用例格式;
可以使用关键字驱动(keyword-driven)、数据驱动(data-driven)和行为驱动开发(BDD)完成;
重用性好,可以利用现有关键字来组合新关键字;
结果报告和日志采用HTML格式,易于阅读;
平台和应用无关联性;
模块结构支持使用不同的接口来测试你的应用;
易于扩展,提供了简单API,用户可以自定义的基于Python或者Java的测试库;
易于集成,提供了命令行接口和基于XML的输出文件;
功能全面,支持WEB测试(Selenium)、Java GUI测试,启动线程、Telnet、SSH等;
RemoteLibrary接口可以支持分布测试和使用其他编程语言实现测试库;
提供tag标签来分类和选择你的案例执行;
内置支持变量variables,支持不同的环境进行测试;
Robot Framework作为框架平台,上面可以加载各种Library,通过测试套件、资源文件集成起来,然后可以针对被测系统进行不同角度的测试,图中只列了三种Library,实际上还有很多种不同方向的Library。
1.2安装篇
Python:robot framework是基于python开发的。(必装)
Setuptools和Pip:使用pip命令在线自动安装库,非常方便(推荐)。
Robot framework:要想使用该框架(必装)。
wxPython:提供图形图形界面支持,使用ride则必装。
Robot framework-ride:可以看作Robot Framework框架的标准编辑器。各人的习惯不同,也可用PyCharm、Red或者Sublime等编辑器写RF脚本。
注意:按照操作系统是64位或32位选择软件,本文默认64位。
1.2.1、首先安装Python
下载地址:Python2.7.14
注意事项:
1、虽然RF3.0.2版本已经支持python3,由于编辑器Ride只支持python2,选择安装Python2.7.14;
2、在path环境变量中添加“D:\Python27;D:\Python27\Scripts;”
3、建议不要安装在C盘,可能日志越来越多,占用C盘空间会越来越大
4、安装路径不能有空格或中文字符。
1.2.2、安装setuptools和pip
首先简单说下这两个包的作用。
Setuptools能使程序员更方便的创建和发布Python包,特别是那些对其他包具有依赖性的状况。使用setuptools里的easy_install命令安装第三方Python包。
Pip是一个安装和管理Python包的工具,通过pip去安装Python包变得十分简单,pip依赖于setuptools,因此有安装顺序,先安装Setuptools,再安装Pip。
Setuptools下载地址:Setuptools
Pip下载地址:Pip
(Python2.7.14自带pip,安装python就能使用pip)
在E:\package\setuptools或pip的目录下执行命令:python setup.py install
注意事项:
1、如果在安装setuptools遇到xx包导入错误,没有发现xx包,可以自行去下载安装。下载地址:https://pypi.python.org/pypi,然后搜索自己缺少的包,例如six/packaging/appdirs,可以通过pip安装(命令pip install package),也可以通过下载源码,用命令安装python setup.py install。
2、如果提示pip不是内部命令,检查环境变量是否配置正确。
1.2.2、安装Robot Framework
下载地址:RF 3.0.2
提供了exe的文件和tar.gz文件,前者可以直接双击安装,后者则需像安装Python包一样用Python setup.py install,或者通过pip命令:pip install robotframwork
写这个文章时RF最新版本是3.0.2,请注意最近更新情况。
1.2.4、安装wxPython
下载地址:wxPython2.8.12.1
wxPython是Python非常有名的GUI库,RIDE基于这个库开发,所以必须安装。
1.2.5、安装RIDE
下载地址:Ride
写本文时版本是:robotframework-ride 1.5.2.1
RIDE是Robot Framework的图形编辑器,使用它写脚本方便快捷。
安装完成后你可能发现电脑桌面没有RIDE机器人图标,可以手动创建:
1、在桌面上右键新建快捷方式
2、在“请键入对象”的位置上输入命令:
D:\Python27\pythonw.exe -c “from robotide import main;main()”
(D:\为Python的安装路径)
3、机器人图标,快捷方式上右键→属性→更改图标,在“浏览”中输入路径“D:\Python27\Lib\site-packages\robotide\widgets”,找到机器人的图标点击确定。
到此Robot Framework安装完毕,你可以开始机器人的梦幻之旅了!
1.3下面再介绍一下标准库和接口测试库
标准库是Robot Framework可以直接导入使用的库,包含以下几类:
Builtin:包含经常需要的关键字。自动导入无需import,因此总是可用的
Dialogs:提供了暂停测试执行和从用户的输入方式。
Collections:提供一组关键词处理Python列表和字典。
OperatingSystem:允许执行各种操作系统相关的任务。允许执行各种操作系统相关的任务,使各种操作系统相关的任务在robot framework正在运行的系统中执行。
Remote:远程库接口的一部分。没有自己的任何关键字,作为robot framework和测试库之间的代理的特殊库。实际测试库可以在不同的机器上运行,可以使用任何编程语言支持XML-RPC协议的实现。
Screenshot:提供关键字来捕获和存储桌面的截图。
String:用于处理字符串并验证它们内容的库,用于生成、修改和验证字符串。
Telnet:支持连接到Telnet服务器,执行命令。
XML:用于生成、修改和验证XML文件的库。
Process:系统中运行过程的库。
DateTime:日期和时间转换的库,支持创建和验证日期和时间值以及它们之间的计算。
SudsLibrary:用于Web Service服务端接口测试的库,可处理Soap请求
Requests,RequestsLibrary:基于Restful http接口测试库,大名鼎鼎常用的get post等
第二部分、Requests接口自动化测试介绍
主要介绍几种常见的接口如何进行自动化测试,重点是get request和post request。这部分测试案例可以在这里找到:https://github.com/qitaos/rf-demos/tree/master/RequestsDemo。不过,强烈建议大家查看官方的验收测试用例!
1.接口测试接口测试通常是系统之间交互的接口,或者某个系统对外提供的一些接口服务。现在大家也越来越多的关注接口测试了,因为有时候可能界面上的功能还没有实现,我们可以先一步对接口进行验证,提早发现一些和预期不一致的错误。这方面的工具还有Postman、SoapUI、Jmeter等等,基于RF的接口测试库我们首推requests和requestsLibrary。
2.requestsLibrary、requests安装可以通过pip安装,或者手动安装,下载地址如下,如果是下载安装,先要安装requests,再安装requestsLibrary。
requests的官方下载地址: https://pypi.python.org/pypi/requests
requestsLibrary
的官方下载地址:https://pypi.python.org/pypi/robotframework-requests/
3. requestsLibrary关键字
requestsLibrary的关键字不多,我常用的就几个。
Create Session:
创建一个session,连接某个服务器
Create Ntlm Session:
也是创建一个session,只不过加上了域、用户名、密码用于NTLM认证。
Get Request:
通过GET方式发起请求。
Post Request:
通过POST方式发起请求。
Head Request:
发送一个HEAD请求。
TO Json:
将文本转换成json对象。
以上
Python:www.python.org/downloads/release/python-2714/
Setuptools:https://pypi.python.org/pypi/setuptools
RobotFramework:https://pypi.python.org/pypi/robotframework/3.0.2
wxPython:sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1
Ride:https://pypi.python.org/pypi/robotframework-ride (版本1.5.2.1)