1、RobotFramework
RobotFramework 的架构是一个通用型的验收测试和验收测试驱动开发的自动化测试框架(ATDD)。它 具有易于使用的表格来组织测试过程和测试数据。
3.1版本文档:http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html
2、RobotFramework 特点:
l 使用简单
l 非常丰富的库
l 可以像编程一样写测试用例
l 支持开发系统关键
3、环境搭建
Python 2.7
Robot Framework-2.8.5
Robot Framework-RIDE-1.5.2.1 (测试用例的创建、运行可以在图形界面下完成)
wxPython-2.8 (Python 的一个GUI 库,支撑Ride的运行)
Selenium2library (selenium2测试库,基于webdriver驱动)
ChromeDriver (浏览器驱动,这里以谷歌浏览器为例)
1.python版本是2.7
由于Robot Framework 框架是基于Python 语言开发的,因此必须安装Python环境,目前支持python3,之所以选择Python2版本,是因为目前robotframework-ride版本最新的是1.5.2.1,还不支持python3.6.3
官网:https://www.python.org/downloads/
2.Robot framework的安装
作用:web自动化测试框架。(我装的最新的3.0.4版本)
命令安装:python2 -m pip install robotframework
3.Robot framework-ride 1.5.2.1
作用:RIDE就是一个图形界面的用于创建、组织、运行测试的软件。
robotframework-ride是基于wxPython的
python2 -m pip install robotframework-ride
4.安装wxPython 2.8.12.1
作用:Wxpython 是python 非常有名的一个GUI库,因为RIDE 是基于这个库开发的。(我装的4.0.3)
用命令安装失败python2 -m pip install wxPython;所以从官网下载安装的,直接下一步到完成。下载地址:
5.安装扩展包selenium2library
作用:selenium2library是基于Webdriver封装的RF web测试库。
RF-seleniumlibrary 可以看做RF版的selenium 库,selenium (webdriver)可以认为是一套基于web的规范(API),所 以,RF 、appium 等测试工具都可以基于这套API进行页面的定位与操作。
1)首先安装selenium-2.53.1
python2 -m pip install selenium==2.53.1
2)其次安装decorator-4.0.11
python2 -m pip install decorator-4.0.11
3)最后安装robotframework-selenium2library 3.0.0
python2 -m pip install robotframework-selenium2library 3.0.0
python2 -m pip install robotframework-selenium2library=1.8.0
我装的3.0.0
6.下载浏览器驱动
D:\python2放在该目录下,我的是chrome驱动。
最后是环境安装的以下内容:
4、遇到的问题总结:
1.Python2.7和3.6版本兼容:
1)两个版本的安装地址
Python2安装地址:D:\python2\Scripts
Python3的地址:C:\Users\12978\AppData\Local\Programs\Python\Python36-32
2)环境变量:
打开,控制面板\系统和安全\系统,选择高级系统设置,环境变量,选择Path,点击编辑,新建,分别添加D:\Python\python27和D:\Python\python27\Scripts到环境变量。
注意:python3安装时可以选择自动添加到系统环境变量,如未选择,方法和python2添加过程相同。
3)pip:
我删除了python2的pip.exe和pip2.7.exe,修改了python2.7中python.exe的名称修改为为python2.exe;python3未动;
然后运行cmd命令,输入python2即可运行python2.7.15版本,输入python即可运行python3.5.2版本。
当python2需要pip时运行:python2 -m pip install xxx;
当python3需要pip时运行:python pip install xxx;
4)查看路径
查看python路径:where python
查看pip路径:where pip 或者where pip2
2.Selenium2Library库导入时标红代表没导入失败,灰色代表成功,
1)用pip2 list命令查看版本是否兼容;
导入library库时标红,切换到1.8版本之后还是不行,又装回了3.0,重启ride后好了
2)导入库不是在文件上,而是在目录上;
3.打开ride.py文件的方法:
1)首先找到ride.py的安装目录,我的是:D:\python2\Scripts;win+R命令打开cmd命令,输入D: 切换到D盘下,输入>cd python2 回车,>cd scripts 回车,>python2 ride.py回车,启动ride;如下图:
2)从D:\python2\Scripts安装目录中找到ride.py文件,发送桌面快捷方式;然后右击属性,目标更改D:\python2\pythonw.exe -c "from robotide import main; main()"(python27的主程序名称是什么,命令里就写什么),启动ride.py;
4.报错:UnicodeDecodeError :'utf-8' codec can't decode byte 0xb2 in position 244:invalid
报错utf8编码不能在233位字节0xb2解码:无效
方法:打开D:\python2\Lib\site-packages\robotide\contrib\testrunner文件夹下的testrunner.py文件打开,修改400行把“UTF-8”换成”GBK”,然后删除testrunner.pyc文件。
5.如图:运行程序运行RIDE时,脚本默认读取的是Python36路径下的依赖库文件
1)将Python3下的RobotFramework全部卸载掉,重新运行RIDE,如果还报错就操作步骤2;
2)找到python2安装目录下D:\python2\Scripts的pybot.bat文件,将打开后显示:python -m robot.run %*修改为python2 -m robot.run %*;
6.浏览器驱动,你用的哪个浏览器驱动,后边就填写浏览器名称
7.robotframework的case跑完后,“Report”和“Log”按钮是灰色的,点击不了
解决办法1:启动任务管理器(ctrl+alt+del),IE的进程,找IEDriverServer.exe结束掉,如果是chrome,就找到chromeDriverServer.exe。
5、标准库是Robot Framework可以直接导入使用的库,包含以下几类:
Builtin:包含经常需要的关键字。自动导入无需import,因此总是可用的
Dialogs:提供了暂停测试执行和从用户的输入方式。
Collections:提供一组关键词处理Python列表和字典。
OperatingSystem:允许执行各种操作系统相关的任务。允许执行各种操作系统相关的任务,使各种操作系统相关的任务在robot framework正在运行的系统中执行。
Remote:远程库接口的一部分。没有自己的任何关键字,作为robot framework和测试库之间的代理的特殊库。实际测试库可以在不同的机器上运行,可以使用任何编程语言支持XML-RPC协议的实现。
Screenshot:提供关键字来捕获和存储桌面的截图。
String:用于处理字符串并验证它们的内容的库,用于生成、修改和验证字符串、
Telnet:支持连接到Telnet服务器上打开的连接执行命令。
XML:用于生成、修改和验证XML文件的库。
Process:系统中运行过程的库。
DateTime:日期和时间转换的库,支持创建和验证日期和时间值以及它们之间的计算
6、扩展库是Robot Framework需要下载安装后才能使用的库,如下:
- Android library:所有android自动化需要的测试库,内部使用的是Calabash Android
- iOS library:所有iOS自动化需要的测试库,内部使用Calabash iOS服务
- appiumlibrary:Android和iOS测试库,内部使用的是appium
- HTTP library (livetest):内部使用LiveTest工具的HTTP测试的库。
- HTTP library (Requests):内部使用request工具的HTTP测试的库。
- MongoDB library:使用pymongo和MongoDB交互的库。(MongoDB是一个基于分布式文件存储的数据库)
- Database Library (Java):基于Java的数据库测试库。也可使用Jython和Maven central.
- Database Library (Python):基于Python数据库测试库。支持任何Python解释器,包括Jython。
- watir-robot:使用Watir的工具的Web测试库。
- seleniumlibrary:Web测试库,内部使用比较流行的selenium工具。利用早期的selenium1.0和本身已经过时。
- selenium2library:使用selenium2的Web测试库。替换了大部分老的seleniumlibrary。
- selenium2library java:selenium2library的java接口
- Django Library:为Django的库,一个Python Web框架。
- sudslibrary:一种基于泡沫基于SOAP的Web服务的功能测试库,动态的SOAP 1.1的客户端。
- Archive library:处理.zip和.tar压缩包的库。
- Diff Library:比较两个文件的库。
- FTP library:Robot Framework上测试和使用FTP服务的库。
- SSHLibrary:通过SSH连接的在远程机器上执行命令。还支持使用SFTP进行文件传输
- rammbock:通用的网络协议测试库;提供简单的方法来指定网络数据包,并检查发送和接收数据包的结果。
- imagehorizonlibrary:跨平台、基于图像识别的GUI自动化纯Python库。
- autoitlibrary:Windows的GUI测试库,使用AutoIt的免费工具作为驱动。
- Eclipse Library:使用SWT窗口小部件测试Eclipse RCP应用程序的库。
- robotframework-faker:一个服务faker的库,faker的测试数据生成器。
- swinglibrary:用Swing GUI测试java应用程序库
- remoteswinglibrary:使用swinglibrary库测试和连接一个java进程,尤其是java web start的应用。(Java Web Start 是基于 Java 技术的应用程序的一种部署解决方案,它是连接计算机和 Internet 的便捷通道,允许用户在完全脱离 Web 的情况下运行和管理应用程序)
- MQTT library:测试MQTT brokers和应用的库。