测试整理SXT-接口自动化-使用RobotFramework测试接口

简介

由Nokia Siemens Networks(诺基亚西门子)开发。
Robot Framework是一款基于python的功能自动化测试框架。可以同时测试多种类型的客户端和接口。
主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。

特点

Robot Framework框架本身并丕提供任何类型的测试,它只提供作为自动化测试框架的基本功能,如用例的批量执行、测试报告的生成等。
使用简单
可以像编写程序一样编写Robot Framework 脚本。
在这里插入图片描述
有非常丰富的库。
易于使用,采用表格式语法,统一测试用例格式。
复用性好,可利用现有关键字来组合新关键字。
支持变量,支持if语句和for循环语句。
提供标签功能,可对测试用例进行分类,并有选择的执行。
执行报告和日志采用html格式,易于阅读。

安装RootFramework

安装Robot Framework框架

需要pythonRobot Framework基于python环境
pipinstall robotframework
安装robotframework-requests库
robotframework-requests 即 RequestsLibrary
基于Robot Framework和 Requests 提供HTTP接口测试
Requests库基于Python语言,用于模拟发送HTTP请求

pipinstall --no-index --find-links=包目录-rrequirement.txt

安装RIDE库
Robotframework IDE
提供编写robotframework测试用例的图形界面。
pipinstall --no-index --find-links=包目录-rrequirement.txt

在ride中创建测试

如果是目录的话,在下面还可以创建文件,但如果是文件的话,那就只能创建用例

在Robot Framework框架中,一般将测试项目分为三层:Test Project、 Test Suit和 TestCase。
Test Project
测试项
既可以创建成目录,也可以创建成文件。
若创建成目录,则可以在它下面创建Test Suit若创建成文件,则只能在它下面创建 Test Case

Test Suit
测试套件
同样可以创建成目录,或创建成文件。
若创建成且录,则可以它下面创建子Test Suit若创建成文件,则只能在它下面创建Test Case

Test Case
测试用例
只能创建在文件中。
一般情况下,将Test Project和 Test Suit分别对应为一个测试目录和一个测试文件,Test Case就是测试文件中的一条用例。
Robot Framework脚本文件一般以.robot 或.txt为后缀名,也可以使用.tsv或.html的后缀名

创建测试

File→New Project
指定创建 File还是Directory
这里选择目录
右击新建的目录→New Test Suite
指定创建File还是Directory
这里选择文件,扩展名robot
注意
保存位置文件名正确
右击新建的Test Suite→New Test Case
为测试用例命名
在Test Sute下可以创建多个用例,这些用例都位于一个文件中

点击file新建项目
在这里插入图片描述
在这里插入图片描述
在项目上右键,添加测试套件
在这里插入图片描述
在这里插入图片描述
在测试套件上右键testcase新建测试用例,一个套件可以创建多个测试用例
在这里插入图片描述

ride中导入包

单击新建的Test Suite
单击右侧的Library,添加如下库
RequestsLibrary
即robotframework-requestsCollections
用于将参数存入字典
String
用于字符串的处理
右键项目或者套件,在其上,点击添加库,输入库名的时候,正确的为黑色,错误的是红色
在这里插入图片描述
导包可以是项目也可以是套件内,但是在套件上的话,仅该套件可用
在这里插入图片描述

测试用例的基本结构

在这里插入图片描述
关键字
不区分大小写
注释
Comment messages“”(注释文本)
快捷键:
ctrl+#
取消: ctrl+$
行尾加 #注释文字
输出日志
Log  message或变量1,变量2… level=INFO
在指定日志级别下记录message或变量值。
文本不需要加引号。
多个变量间以英文逗号间隔,多个变量结果输出在同一行中。令level 可以省略,默认 INFO。
有效的日志级别有TRACE、DEBUG、INFO、HTML、WARN。

运行测试
Run选项卡→Start√快捷键F8
设置报告存储位置
Run→Arguments
-o 路径output…xml -1路径log.html -r路径\report.htm.
Robot Framework会生成三个文件,分别为output.xml、 log.html和report.html。
output.xml是以XML格式记录测试结果,阅读起来不够直观,可以使用不同的语言读取XML文件中的测试结果,生成定制化的测试报告。

编写测试用例并执行

在测试用例上添加tag,在运行时点击仅运行有tag的用例,可实现运行指定用例
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
解决控制台响应乱码
控制台汉字乱码
修改python lib site-packages’robotidelcontrib ltestrunnerltestrunner.py 中的latinl为 mbcs
mbcs (Multi-Bytes Character Set):多字节字符集
根据系统自动显示为本国语言的字符,在中文系统下表示GB2312
重启ride

在这里插入图片描述

修改输出文件的位置

在这里插入图片描述
在这里插入图片描述

定义变量

创建列表和字典

$ {变量名}
set variable  变量值
$ 开头表示变量,不论数据是否使用[]、{}
变量不区分大小写,但不全是,最好一致

${列表名}create list值1  值2  值3
数据中不需使用[]
一个单元格一个数据,每个元素自动转字符串令循环访问时建议使用@

${字典名}create dictionary关键字1=值1  关键字2=值2  
数据中不需使用{}
一个单元格一对数据,每个元素值自动转字符串
循环访问时建议使用&

输出
使用$ {变量/列表/字典名}
结果为字符串形式
查看变量的数据类型
$ {结果变量}evaluate
type($ 变量名)
变量名不能再加{}
evaluate表示执行python表达式,并返回执行结果
$结果变量}evaluate int(S变量名)±*/等操作表达式

在这里插入图片描述
插入行
在这里插入图片描述

查看输出变量的类型

在这里插入图片描述

输出的变量类型均为str,但是可进行变量的转换在这里插入图片描述

在这里插入图片描述

创建列表和字典

在这里插入图片描述
在这里插入图片描述
输出的时候。列表元素被转换成了字符串,如果有不想要进行转换,需要在变量前面加上@
在这里插入图片描述
创建字典
在这里插入图片描述

单分支if语句

run keyword if   表达式  命令  命令的参数1  参数2…
表达式可以用
0<=${变量名}<60的形式
${变量名}  run keyword if  表达式1  set variable  值1  ELSE IF
表达式2  set variable  值2… ELSE  set variable  值n
ELSE IF需要大写,中间有空格。
语句写在一行。
在这里插入图片描述
运算后将结果存到变量中
在这里插入图片描述

多分支if结构

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

for 循环

在这里插入图片描述
在这里插入图片描述
输出结果
在这里插入图片描述
范围循环
在这里插入图片描述

自定义关键字

·假设多层循环实现乘法口诀表
无法实现,需要自定义关键字,测试用例上右键新增关键字
在这里插入图片描述
setting里面新增传入的变量名称
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

退出for循环

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果${i}==7没有退出,可以尝试加上引号’ ${i}==7’

contiue for loop

提前进入下一次循环
在这里插入图片描述

创建会话

create session
会话名
url 地址
返回session对象,无需存储结果
url地址中携带 http、域名或IP、端口号令
如http://wthrcdn.etouch.cn
如果在测试用例写关键字的时候始终没有变颜色,可能没有导包,或者导的包没有方法测试用例上
在这里插入图片描述

发送get请求直接传参

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
如果是二进制的可以转换为文本,将log里面的变量变为${res.text}

使用字典传参,发送post请求

在这里插入图片描述

post请求添加字典作为参数
在这里插入图片描述

处理响应数据

通过编码格式实现文本展示非16进制
在这里插入图片描述
上图也可直接写成${res.text}
转换为json显示
在这里插入图片描述

获取json中某项

获取json数据中的status和desc
在这里插入图片描述

获取响应cookies

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查看和处理响应头

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发送cookie参数

传递cookie的值
在这里插入图片描述
在这里插入图片描述

编写登录请求接口测试用例

使用post方式发送登录请求
在这里插入图片描述

使用正则表达式提取会话值

在这里插入图片描述
在这里插入图片描述

传递会话值参数给登录接口

在这里插入图片描述在这里插入图片描述

添加shouldBeEqual断言

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加shouldcontain断言

在这里插入图片描述
登录断言
在这里插入图片描述

使用正则表达式进行断言

在这里插入图片描述
在这里插入图片描述

参数化

使用列表参数化

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用文件数据参数化

在这里插入图片描述
在这里插入图片描述
将编写的脚本放到Python的lib文件下,导包
在这里插入图片描述

在这里插入图片描述

读取文件数据进行参数化

在这里插入图片描述
在这里插入图片描述

命令行运行测试

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值