前言:
最近项目中用到了Python 著名的RobotFramework 框架(以下简称RF),特做一些总结如下:
RF简介
RF框架是用python语言开发的一套基于关键字操作的自动化测试框架, 适用于python2.7 , python3.X等版本。
RF适合编码基础较弱的同学进行自动化测试,完全可以在不写代码的情况下完成UI自动化测试,接口自动化测试。
安装RF
本文以python3.7 下使用RF为例 (因为python3对于ride的支持还不稳定...)
1. 安装python2.7 /python3.7(不再赘述),安装好pip命令
2. 打开CMD,命令行模式CD到python2.7/Script 目录下
安装requests库: pip install requests
安装robotframework: pip install robotframework
安装wxPython: pip install wxPython
安装pywin32: pip install pywin32
安装pygments: pip install pygments
pip install robotframework-requests
pip install robotframework-ride
做UI自动化测试需要安装如下:
1.pip install robotframework-selenium2library
2.pip install robotframework-archivelibrary
3.pip install robotframework-SSHLibrary
4.pip install robotframework-ftplibrary
安装完之后,可以生成桌面图标:
编写用例并执行就用ride就可以
注意事项:
1. 添加环境变量,路径为: C:\Python37\Scripts (python3里面你需要的库文件在site-packages 里面,所以需要添加: C:\Python37\Lib\site-packages)
2. 在ride里面,F5可以查询你所需要的库 (写的时候最疼苦是没有自动引入,哎,这也算是一个大缺陷)
RF的简单使用
1. RF常用的库总结:
2. 引用位置:
这里注意下: 如果你引入的库不存在或者路径错误,会显示成红色
2. RF 自有关键字的调用:
一、实用函数
关键字
含义
实例
备注
Click Button
点击按钮
Click Button 注销
这里“注销”的class属性,必须是Button
Click Element
点击元素
Click Element [locator]
Locator可以是resource-id,也可以是xpath;但必须是当前页面唯一存在的;一般用该关键字可以完成所有元素点击
Click Text
点击文字
Click Text 我的
“我的”需要是当前页面唯一存在的
Input Text
在指定元素中输入文本
InputText [locator] 111111
Locator可以是resource-id,也可以是xpath
Swipe
滑动屏幕
Swipe 1000 1800 100 1800
Get Text
获取某标签内容
${account} Get Text [locator]
获取内容后存储到指定变量中,从而在后续脚本中调用该内容
Select Frame
UnSelect Frame
选择一个frame进行跳转
Xpath=//* [@]
${a}
Ser variable
123
设置一个参数
:FOR
${a}
in range
10
\
log
111
RequestsLibrary.Post Request
api
/api/login
data=${a}
二、校验函数
关键字
含义
实例
备注
Element Name Should Be
检查元素的name属性
Element Name Should Be [locator] 登录
locator可以是resource-id,也可以是xpath
Element Should Be Enabled
检查元素是否可用/可见
Element Should Be Enabled [locator]
Page Should Contain Element
检查界面包含某些元素
Page Should Contain Element [locator]
Page Should Contain Text
检查界面包含某些文字信息
Page Should Contain Text 预约挂号
Page Should Not Contain Element
检查界面不包含某些元素
Page Should Not Contain Element [locator]
Page Should Not Contain Text
检查界面不包含某些文字信息
Page Should Not Contain Text 预约挂号
三、等待函数
关键字
含义
实例
备注
Wait Until Page Contains
等待直到界面中包含某些文字,才进行下一步
Wait Until Page Contains 预约挂号
默认等待时间为5s
Wait Until Page Contains Element
等待直到界面中包含某些元素,才进行下一步
Wait Until Page Contains Element [locator]
locator可以是resource-id,也可以是xpath
Wait Until Page Does Not Contain
等待直到界面中不包含某些文字,才进行下一步
Wait Until Page Does Not Contain 预约挂号
Wait Until Page Does Not Contain Element
等待直到界面中不包含某些元素,才进行下一步
Wait Until Page Does Not Contain Element [locator]
3.RF结果简介
如上图所示,RF执行的时候点Start就行,注意输出路径不支持中文,需要使用 -d C:\\log 进行修改,否则会报错
执行的时间,输出的log以及结果,在输出路径里面都有,不再赘述。
4. RF高级用法
1. 自定义第三方库
这个非常简单,自己用ide写一个py脚本, 在resource里面导入即可,调用的时候直接使用方法名即可调用。
例如写了一个 def sum(a,b):
调用的时候直接 sum a b 即可。
2. 读取Excel,text 测试数据文件
首先安装下库: pip install robotframework-ExcelLibrary
然后导入resource, ExcelLibrary库常用关键字
Open Excel 打开Excel文件
Get Row Count 获取行数
Get Column Count 获取列数
Get Row Values 获取某一行的值
Get Column Values 获取某一列的值
Read Cell Data By Coordinates 通过列行编号获取值
Read Cell Data By Name 按名称读取单元格数据
ExcelLibrary库使用注意事项:
1.只支持xls格式的Excel文档
2.Excel表格中的数值,代码读取后会显示为浮点型
如123,读取后显示为123.00,造成传参不一致
解决方案:设置单元格格式---->文本
3.读取每行或每列数据,存储到list变量中,是一个二维数组
如(A1,123)(B1,张三)
4.数组的位置编号都是从0开始的
参考资料:
原文:https://www.cnblogs.com/Ronaldo-HD/p/12167613.html