Jmeter的元件使用介绍:(八)断言器详解

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

下面介绍几种断言器的使用

一:响应断言

该种断言器一般放到具体的取样器下,断言具体的取样器是否包含自己的预期内容。

1:测试字段

(1)响应文本:对响应的文本做断言,此选项不包含响应头信息

(2)响应代码:对响应的状态码断言

(3)响应信息:对响应的全部信息做断言,此选项包含响应所有信息

(4)响应头:对响应头做断言

(5)请求头:对请求头做断言

(6)URL样本:对取样器URL做断言

(7)文档:对响应文档内容断言,至今未使用过

(8)忽略状态:博主也没使用过,应该不怎么使用,默认即可

(9)请求数据:对请求数据做断言

2、模式匹配规则

(1)包括:延段测试字段是否包含指定的文本或者字段值,支持正则表达式

(2)匹配:断言测试字段是否与期望值完全匹配,一般需要结合正则表达式使用

(3)相等:断言测试字段是否与期望值完全相等,此处不支持正则表达式

(4)字符串:断言测试字段是否包含指定的字符串,不支持正则表达式

(5)否:不进行匹配

(6)或者:博主也没使用过,默认即可

3、自定义失败消息

对于断言不通过的时候,可以输出自定义的失败消息

实例:

对百度发起请求,断言响应信息是否包含"百度"字符串,如果包含即断言成功,不包含则断言失败,自定义失败消息"该请求断言不通过噢噢噢"

执行结果:

二:断言持续时间

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

三:Json断言器

该断言器一般添加到指定取样器下。可以使用Json表达式提取指定断言字段进行断言,断言方式支持正则表达式。

例子:对【聚合数据】提供的新闻列表API请求做断言,通过author_name字段是否包含"人民资讯"进行断言。

响应数据格式如下:

断言器设计:

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

四:Beanshell断言器

博主极力推荐使用该种断言器,功能最为强大,使用简单。

前面介绍过的Beanshell前置处理器语法在这里都可以使用上,要看Beanshell基础语法可以看前面的博客:
Jmeter全方面讲解------Jmeter的元件使用介绍:(四)前置处理器详解 - 筱筱创 - 博客园

Beanshell断言器添加了几个主要的内置对象的使用:

1、Failure:如果Failure=true;则声明断言失败

2、FailureMessage:可以自定义指定断言器的断言输出报告

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

查看代码

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

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

}

执行结果:

相关推荐
程序员的世界你不懂12 小时前
Jmeter的元件使用介绍:(七)后置处理器详解
jmeter
试着12 小时前
零基础学习性能测试第六章:性能难点-Jmeter文件上传场景压测
学习·jmeter·零基础·性能测试
是小恐龙啊1 天前
【测试报告】云枢馈赠系统(Java+Selenium+Jmeter自动化测试)
selenium·测试工具·jmeter
沉下去,苦磨练!2 天前
kafka的部署和jmeter连接kafka
分布式·jmeter·kafka
程序员的世界你不懂2 天前
Jmeter的元件使用介绍:(三)配置元件详解02
jmeter
程序员的世界你不懂2 天前
Jmeter的元件使用介绍:(三)配置元件详解01
jmeter
软件测试-阿涛3 天前
【性能测试】Jmeter+Grafana+InfluxDB+Prometheus Windows安装部署教程
测试工具·jmeter·性能优化·压力测试·grafana·prometheus
YuforiaCode4 天前
JMeter每次压测前清除全部以确保异常率准确(以黑马点评为例、详细图解)
jmeter
程序员的世界你不懂4 天前
Jmeter的元件使用介绍:(四)前置处理器详解
开发语言·python·jmeter