Robot Framework 自动化测试框架
安装配置
简介
- 一款python编写的通用的自动化测试框架。
- 具备良好的可扩展性。
- 支持关键字驱动。
- 可以同时测试多种类型的客户端或者接口。
- 可以进行分布式测试。
- 主要用于验收测试和验收测试开发(ATDD)。
特点
- 易于使用,采用表格式语法,统一测试用例格式
- 重用性好,可以利用现有关键字来组合新关键字
- 支持变量
- 支持创建基于数据驱动的测试用例
- 结果报告和日志采用HTML格式,易于阅读
- 提供标签以分类和选择将被执行的测试用例
- 平台、应用无关
- 功能全面,支持协议级接口的测试,GUI 界面的测试,数据库的测试,移动App 的 测试,命令行测试等
- 易于扩展,提供了简单API,用户可以自定义的基于Python或Java的测试库
- 易于集成,提供了命令行接口和基于XML的输出文件
- 易于与版本管理集成(Jenkins)
基本架构
步骤一
首先配置python的环境变量
安装RobotFramework
pip install robotframework
安装Ride
pip install wxPython==4.0.7.post2
pip install robotframework-ride==1.7.4.2
步骤二
安装SeleniumLibrary库
pip install robotframework-seleniumlibrary
安装RequestsLibrary库
pip install robotframework-requests
安装DatabaseLibrary库
pip install robotframework-databaselibrary
中文支持问题!!!
针对1.7.4.X版本
修改testrunnerplugin.py文件
此文件位于…\Lib\site-packages\robotide\contrib\testrunner目录下
def _AppendText(self, textctrl, string, source="stdout", enc=True): if not self.panel or not textctrl:
return
textctrl.update_scroll_width(string)
# we need this information to decide whether to autoscroll or not new_text_start = textctrl.GetLength()
……
if PY2:
……
else:
textctrl.AppendTextRaw(bytes(string, encoding['SYSTEM'])) # DEBUG .encode('utf-8'))
# 注意修改此处的
SYSTEM为OUTPUT
启动
命令行
python [PythonDir]\Scripts\ride.py
官网信息https://robotframework.org/#libraries
Ride界面
Ride测试报告
UI自动化测试
步骤
- 创建项目
可以选择文件或目录存储。
为了管理期间建议选择目录存储。 - 创建测试套件
添加测试需要导入的库。
最好选用robot文件格式存储。
点击Library按钮,填写导入SeleniumLibrary库。
注意库导入后,名字黑色表示库导入正确,名字变色为红色表示库导入失败。 - 创建测试用例
在表格中填写代码。
依照关键字的方式编写代码。 - 保存
- 勾选要执行的测试用例
- 点击Start运行按钮
代码
接口自动化测试
步骤
- 创建项目(已经存在可以不必创建新的)
- 创建测试套件
导入RequestsLibrary库 - 创建测试用例
- 保存
- 勾选要执行的测试用例
- 点击Start运行按钮
代码
高级用法
Tags
测试用例可以标记多个Tag
可以设置按照Tag来执行或者跳过执行测试用例
Log
打印日志,相当于python中的print
Set Variable
设置变量
${SPACE} 和 ${EMPTY}
分别用来表示空格和空字符串
Catenate
连接对象拼接字符串
Create List
创建一个列表
Create Dictionary
创建一个字典
Get Time
获得系统当前时间
Sleep
休眠一段时间
Evaluate
执行python提供的方法
If条件判断
Run Keyword If
ELSE IF
ELSE
注意ELSE前的…不能丢掉
字符串、以及布尔值比较需要加引号,而数值不需要加引号。比如:’${username}’ == ‘admin’ 或‘${condition}’ == ‘${true}’
执行多语句需要使用Run Keywords 关键字1 值1 AND 关键字2 值2
For循环(1.7.4.X版本)
FOR……END定义循环
IN关键字定义一般循环
IN RANGE关键字可以指定循环范围
\用于定义循环体语句的行首关键字
自定义库
简单方式
Python安装目录下…\Lib\site-packages目录下
创建一个CalculatorLibrary.py的文件(注意文件名和类名一致,首字母大写)
class CalculatorLibrary:
def add(self, a, b):
return a + b
高级方式(1.7.4.X版本)
Python安装目录下…\Lib\site-packages目录下
创建一个XXX.pth的文件,其中写自定义库所在的项目位置
E:\Documents\work\Script\RF\project_name
在项目路径下创建文件夹CalculatorLibrary ,自定义库的名字calculator.py
创建自定义类CalculatorLibrary,其中GLOBAL的取值还有TEST CASE,TEST SUITE。
class CalculatorLibrary: ROBOT_LIBRARY_SCOPE = 'GLOBAL' ROBOT_LIBRARY_VERSION = '0.01'
def add(self, a, b):
return a + b
def sub(self, a, b):
return a - b
def multi(self, a, b):
return a * b
def div(self, a, b):
return a / b
在项目路径下的CalculatorLibrary文件夹中
创建 _init_ .py
from CalculatorLibrary.calculator import CalculatorLibrary
def sub(self, a, b):
return a - b
def multi(self, a, b):
return a * b
def div(self, a, b):
return a / b
在项目路径下的CalculatorLibrary文件夹中
创建_init_ .py
from CalculatorLibrary.calculator import CalculatorLibrary