Robot Framework 自动化测试框架

介绍RobotFramework自动化测试框架的安装配置及使用方法,支持多种客户端和接口测试,具备良好的可扩展性和分布式测试能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

patmos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值