目录
7、jp@gc - JSON/YAML Path Assertion
一、简介
断言是实际实现接口测试中必要的组成部分之一,根据业务需求编写脚本添加断言,可验证接口的正确性。
二、主要包含
jmeter中的断言有以下几种,下面会详细介绍常用到的断言。
1、响应断言
- 响应文本:校验响应文本整体内容,比如 “returnCode”:"0000"
- 响应代码(Response Code):校验响应返回的状态码,比如'200'
- 响应信息(Response Message):校验响应代码对应的响应信息,比如'OK'
- 响应头(Response Header):校验整个响应头的内容
- 请求头(Request Header):校验整个请求头的内容
- 请求数据(Request Data):校验整个请求体的数据
- URL样本
- 文档(文本)
- 忽略状态:一般不勾选使用此选项
模式匹配规则:
【包括】【匹配】【相等】【字符串】----单选
【Not】【Or】----可多选勾选
- Contains:返回结果包括指定的内容,支持正则表达式;
- Matches:返回结果完全等于指定的内容,支持正则表达式;
- Equals:返回结果完全等于指定的内容,不支持正则表达式;
- Substring:返回结果包括指定的内容,不支持正则表达式;
- Not:右侧窗口中,可以通过点击'添加'按钮多次新增多个校验规则,默认多个规则之间是'与'的关系,即需要同时满足这些条件。
- Or:当有多个断言时,只要有一个断言成功,那么最终结果时成功的。若没有国轩,按照顺序执行,所有断言通过后,取样器结果才是成功的

2、json断言
接口返回结果是json格式时,可以使用此断言来进行校验。
操作步骤:“取样器”HTTP请求右击---->添加“JSON断言”
JsonPath语法常用规则如下:
- 断言不为null 时
expect null 判断为null
Inver assertion 判断取反
同时勾选这两个选项时,表示 非空
断言返参totalsize字段的值大于1,可使用正则表达式实现:
^+?[1-9]\d*$
- 断言返回参数ctimestamp不为“”
3、大小断言
大小断言测试每个响应中包含的字节数是否正确。您可以指定大小等于、大于、小于或不等于给定的字节数。空响应被视为0字节,而不是作为错误报告。

官网翻译后,如下图大小断言应用。例如使用场景:文件下载接口,返参是乱码情况下,可以使用大小断言。
针对完整响应、响应头、响应的消息体、响应代码、响应信息进行字节大小断言,符合即为校验成功,反之,则表示断言失败,结果树中返回断言失败内容。

4、比较断言
比较断言可用于比较其范围内的样本结果。可以比较内容或经过的时间,并且可以在比较之前过滤内容。断言比较可以在比较断言可视化工具中看到。
值得注意点:负载测试期间不得使用比较断言,因为它消耗了大量资源(内存和CPU)。仅用于功能测试或测试计划调试和验证期间。

5、断言持续时间
官网解释:持续时间断言测试每个响应是否在给定时间内收到。任何超过给定毫秒数(由用户指定)的响应都被标记为失败响应。
也就是:判断规定时间内是否受到响应数据,如果超时即校验失败,实际响应时间可参考结果树中的loadtime的值
6、BeanShell断言
BeanShell断言可以自定义断言脚本,较灵活使用,但需要简单的Java代码编写能力(实际项目应用中,业务逻辑不复杂的,都可以在网上自行参考代码编写),完整详细信息,可参阅BeanShell官网
7、jp@gc - JSON/YAML Path Assertion
此断言组件是通过插件下载安装的,使用方式类似json断言,可详细参考。
Jmeter插件下载安装使用(这篇文章中有详细讲解,可自行查阅)
三、总结
本篇介绍了较为常用到的几种断言方式,还有很多其他断言方式根据实际项目所需进行使用,详细可参考Apache JMeter官网关于断言解释与使用。最为常用到的是响应断言和json断言,需要熟练掌握