Jmeter全方面讲解——Jmeter的元件使用介绍:(八)断言器详解

Jmeter有许多断言器,如:响应断言、Json断言、Beanshell断言、持续时间断言、大小断言、Xpath断言、Html断言。此文主要介绍前面4种断言的使用,其他断言器使用非常少,此处不作多介绍。使用过程中需要注意作用域的问题,(1)如果在测试计划下添加断言器,那该断言器会对整个测试计划下的取样器断言(2)如果在线程组下添加断言器,那么对加了断言器的线程组断言(3)如果在取样器添加断言器,那么只对当前取样器断言。(4)如果作用域下存在多个断言器,断言器会叠加。

下面介绍几种断言器的使用
一:响应断言
该种断言器一般放到具体的取样器下,断言具体的取样器是否包含自己的预期内容。
image
1:测试字段
(1)响应文本:对响应的文本做断言,此选项不包含响应头信息
(2)响应代码:对响应的状态码断言
(3)响应信息:对响应的全部信息做断言,此选项包含响应所有信息
(4)响应头:对响应头做断言
(5)请求头:对请求头做断言
(6)URL样本:对取样器URL做断言
(7)文档:对响应文档内容断言,至今未使用过
(8)忽略状态:博主也没使用过,应该不怎么使用,默认即可
(9)请求数据:对请求数据做断言
2、模式匹配规则
(1)包括:延段测试字段是否包含指定的文本或者字段值,支持正则表达式
(2)匹配:断言测试字段是否与期望值完全匹配,一般需要结合正则表达式使用
(3)相等:断言测试字段是否与期望值完全相等,此处不支持正则表达式
(4)字符串:断言测试字段是否包含指定的字符串,不支持正则表达式
(5)否:不进行匹配
(6)或者:博主也没使用过,默认即可
3、自定义失败消息
对于断言不通过的时候,可以输出自定义的失败消息

实例:
对百度发起请求,断言响应信息是否包含“百度”字符串,如果包含即断言成功,不包含则断言失败,自定义失败消息“该请求断言不通过噢噢噢”
image
执行结果:
image

二:断言持续时间
该断言器一般添加在测试计划或者线程组下,用来断言脚本下所有取样器是否在指定时间内完成了请求和响应
image

三:Json断言器
该断言器一般添加到指定取样器下。可以使用Json表达式提取指定断言字段进行断言,断言方式支持正则表达式。
例子:对【聚合数据】提供的新闻列表API请求做断言,通过author_name字段是否包含“人民资讯”进行断言。
响应数据格式如下:
image

断言器设计:
image

执行结果:由于包含指定字符串,所以断言结果是通过的。
image

四:Beanshell断言器
博主极力推荐使用该种断言器,功能最为强大,使用简单。
前面介绍过的Beanshell前置处理器语法在这里都可以使用上,要看Beanshell基础语法可以看前面的博客:
https://www.cnblogs.com/lrc123/p/15678062.html
Beanshell断言器添加了几个主要的内置对象的使用:
1、Failure:如果Failure=true;则声明断言失败
2、FailureMessage:可以自定义指定断言器的断言输出报告

下面使用Beanshell断言器对【聚合数据】提供的新闻列表API请求做断言。
image

点击查看代码

String response = prev.getResponseDataAsString();//获取响应信息
String code=prev.getResponseCode();//获取响应的状态码

//断言状态码是否为200且响应信息是否包含字符串“人民资讯”,两者都满足才断言通过
if(response.contains("人民资讯")&&"200".equals(code)){
Failure = false;
log.info("新闻头条请求断言通过");
}else{
Failure = true;
FailureMessage="断言失败了哦";

}

执行结果:
image

posted @   筱筱创  阅读(446)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示