- 今天完成接口测试中最重要的一环,断言。
- 开始打卡断言组件之前,想咨询大家一个问题,在日常工作中是怎么进行断言的?对于接口测试来说,断言又要怎么进行?
- 通俗的理解是断言是判断实际结果是否符合预期结果的一个过程。但是,怎么确定自己的预期结果是对的?有个小故事:
- 1.有三个人首次访问苏格兰,透过火车窗户他们看到一只黑色的羊。第一个人惊呼:看,苏格兰的羊都是黑的。
- 2.第二个人说:不对,你只能说苏格兰的羊至少有一只是黑的。
- 3.第三个人说:不对,你们只能说苏格兰至少有一只羊的一边是黑的。
- 那么,针对于上面的场景,谁的话是对的?
接口信息说明:
用户管理模块
登录接口
api:post
method:post
request data:
{
"loginName":"IDO",
"passwd":"123"//base编码
}
退出接口:
api:get
method:get
添加用户接口:
api:post
method:post
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"login_name":"IDO",
"phone":"13100000000",
"real_name":"老徐",
"token":""
}
删除用户接口
api:put
method:put
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"login_name":"IDO",
"phone":"13100000000",
"real_name":"老徐",
"token":""
}
博文管理模块:
添加博文接口:
api:post
method:post
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"blog_name":"21天打卡",
"bolg_title":"Jmeter打卡之Day16",
"blog_details":"21天打卡",
"token":""
}
删除博文接口:
api:delete
method:delete
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"blog_name":"21天打卡",
"bolg_title":"Jmeter打卡之Day16",
"blog_details":"21天打卡",
"token":""
}
[toc]
1. 断言组件说明
JMeter为我们提供了各式各样的断言,今天的打卡,列举常用的几个断言,以及使用场合。
断言组件
断言的使用范围,可以应用于主取样器、子取样器或两者。如下所示:
使用范围
1.1 响应断言
响应断言的适用于返回的是HTML文本,或者是XML文本等格式,控制面板中允许添加要与请求或响应的各个字段进行比较的模式字符串。
组件示例
- 整体的运行规则:
实际结果-->匹配规则-->预期结果
回忆一下刚开始进行简单的断言操作:
百度一下
- 实际意思为:实际结果中的响应文本有字符串百度一下,如果是百度二下呢?断言结果当然是失败了。(乱码除外)
1.2 JSON断言
JSON断言组件适用于返回数据是JSON格式的,对JSON 文档执行验证。首先,它将解析 JSON,如果数据不是 JSON,它将失败。
- JSON断言有两种匹配规则:
- a. 使用JsonPath的语法搜索指定的路径。如果未找到路径,它将失败。
-
b.如果在文档中找到 JSON 路径,并且请求对预期值进行验证,它将执行验证。对于null值,GUI 中有一个特殊的复选框
-
组件示例
1.3 大小断言
大小断言这个组件比较鸡肋,根据响应数据的字节大小来进行断言。
- 大小断言测试每个响应中包含正确的字节数。可以指定大小等于、大于、小于或不等于给定的字节数。
- 控制面板也比较简单,运行顺序是
完整响应-->比较类型-->字节大小
大小断言
2.作业场景
- Jmeter的打卡也到了尾声,这个阶段大家了解了前置处理器,后置处理器,JDBC连接数据库xxx
- 接口详情中提供了几个接口,针对于这几个接口,设计接口测试用例,并用jmeter进行接口测试(用户管理模块用JSON断言,博文管理模块用响应结果断言),并查看察看结果树和断言结果。
3.示例脚本
3.1 图片示例
图片示例
3.2 脚本示例
百度网盘示例
链接:https://pan.baidu.com/s/18uExfEicKcwbPdpQwqxfZg
提取码:3bo0
GitHub示例
Day20.常用断言使用JSON断言响应结果断言