(web UI 自动化)RobotFramework + RIDE + selenium2library
链接:
https://www.ibm.com/developerworks/cn/opensource/os-cn-robot-framework/index.html
http://www.cnblogs.com/fnng/p/3871712.html
1. 安装Python 3.7
下载地址: https://www.python.org/downloads/
并配置变量到 PATH中, C:\Program Files (x86)\Python37;C:\Program Files (x86)\Python37\Scripts;
2. 安装相关
#安装 robotframe 相关组件 pip install robotframework==3.1.2 # 指定版本安装,高版本在使用 selenium2library 时,没有 Open browser pip install wxPython pip install robotframework-ride pip install robotframework-selenium2library
安装完成后在 python scripts 路径下,输入“ride.py”,即可打开 RIDE 界面
3. 运行测试
1)创建测试项目
选择菜单栏file----->new Project
Name 输入项目名称。
Type 选择Directory。
2)创建测试套件
右键点击“测试项目”选择new Suite 选项
Name 输入项目名称。
Type 选择File。
3)创建测试用例
右键点击“测试项目”选择new Test Case
用例只需要输入用例name ,点击OK即可。
4)导入selenium2library库
因为RF框架编写基于web 的测试用例,所以,我们需要selenium 的库支持。所以,我们在使用的过程中需要加载 Selenium2Library 库。
在“测试套件”的Edit标签页,点击“Library”按钮,弹出输入框,Name输入:Selenium2Library ,点击OK 完。
如果导入的库显示为红色,表示导入的库不存在。如果是黑色则表示导入成功。
5)编写用例
下面就可以开始写我们的用例了,可是怎么写呢?我们可以通过按F5 快捷键来查询脚本的关键字。如果你接触过QTP 或 selenium IDE 等自动化工具的话,应该会有一些思路。
如上图,自动化脚本从打开浏览器开发,如上图,我想打开一个浏览器,想的是“open”为关键字进行搜索,结果找到了一个“Open Browser”的关键字,点击这个关键字,想显示它的用法和说明。
根据说明,我们来尝试创建这个打开浏览器的操作吧:
“Open Browser”变蓝了,说明它是一个合法的关键字,后面有一个方框是红色的,表示这个参数不能缺省的。通过说明信息中,我发现它需要一个url 地址是必填的,当然还需要指定browser (默认不填为 friefox)
更多关键的使用,请参考相关API 文档。这里不过多介绍。按照上面的方法。创建百度搜索用例如下:
6)运行测试用例
勾选当前需要运行的测试用例,点击工具栏运行按钮,如果只运行单个用例的话,也可以切换到用例的Run标签页,点击“start” 或 "debug" 按钮。
运行信息:
运行信息显示会生成三个文件:Output.xml、Log.html、Report.html
我们重点查看Log.html和Report.html ,Log.html更关注脚本的执行过程的记录,Report.html更关注脚本的执行结果的展示。
赶快打开你的测试报告看看效果吧!
7)修改输出路径
Arguments 定义输出路径: --timestampoutputs --outputdir E:\TestData\output
4. 遇到的问题
1)加载 Selenium2Library 库出错
经过一段时间的使用,包含安装其他 lib 及自定义 Lib,导致出现 RF 在加载 Selenium2Library 库时,出现如下错误
20211110 16:19:13.912 ERROR Error in file 'E:\TestData\RIDE_Lesson\System_Keyword.txt': Importing test library 'Selenium2Library' failed: ImportError: cannot import name '__version__' from 'robot' (unknown location) Traceback (most recent call last): File "D:\Program Files (x86)\Python37\lib\site-packages\Selenium2Library\__init__.py", line 19, in <module> from SeleniumLibrary import SeleniumLibrary File "D:\Program Files (x86)\Python37\lib\site-packages\SeleniumLibrary\__init__.py", line 27, in <module> from robotlibcore import DynamicCore File "D:\Program Files (x86)\Python37\lib\site-packages\robotlibcore.py", line 34, in <module> from robot import __version__ as robot_version PYTHONPATH: E:\TestData\RIDE_Lesson D:\Program Files (x86)\Python37\python37.zip D:\Program Files (x86)\Python37\DLLs D:\Program Files (x86)\Python37\lib D:\Program Files (x86)\Python37 D:\Program Files (x86)\Python37\lib\site-packages D:\Program Files (x86)\Python37\lib\site-packages\livetest-0.5-py3.7.egg E:\Data\DataInterface_free_Windows\bin\x64 D:\Program Files (x86)\Python37\lib\site-packages\win32 D:\Program Files (x86)\Python37\lib\site-packages\win32\lib D:\Program Files (x86)\Python37\lib\site-packages\Pythonwin D:\Program Files (x86)\Python37\lib\site-packages\robotide\contrib\testrunner\../../lib
解决办法:
- pip uninstall robotframework
- pip install robotframework==3.1.2