Jmeter使用教程 压力测试(2)--用户自定义的变量、HTTP信息头管理器、响应断言、BeanShell断言

本文介绍了JMeter中的用户自定义变量,如何方便地管理和引用变量,以及HTTP信息头管理器的使用,包括全局设置和特定请求设置。此外,还讲解了响应断言和BeanShell断言,用于检查测试响应是否符合预期,确保数据交互的准确性。通过设置断言条件,可以实现更复杂的断言检查,确保测试的可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接上一篇博客,想要了解线程组、HTTP请求、察看结果树的可查看:Jmeter使用教程 压力测试(1)

用户自定义的变量/User Defined Variables

可以在这里添加你所需的变量名和对应的值,然后在需要对应的地方用该格式引用${变量名}
使用自定义变量的好处在于无需在长串代码中寻找需要修改的值,也可以多地方引用该变量,个人感觉更便捷一些。
例如下图,我将ip设为变量,变量名为domain,那么我就可以在http请求中使用${domain}来引用他。
在这里插入图片描述
在这里插入图片描述

HTTP信息头管理器/HTTP Header Manager

当后端需要一些验证信息,就可以利用信息头管理器了。请求头中的数据通过键值对的形式放到HTTP信息头管理器中。需要什么值就添加什么即可,Cookie也可以使用此种方式。

  • 如果信息头管理器放到线程组下,那么线程组下所有 HTTP 请求都会共享这些 HTTP 信息头
  • 如果信息头管理器放到某一 HTTP 请求下,那么只有该请求拥有这些 HTTP 信息头
  • 存在优先级概念,如果有多个信息头管理器,名称重名的话,会按优先级高的先取

举例,名称:content-type ;传值:application/json ,这是用于告诉服务端消息主体是序列化后的 JSON 字符串。
在这里插入图片描述

响应断言/Response Assertion

检查测试中得到的响应数据等 是否符合预期,用以保证性能测试中的数据交互与预期一致。
在这里插入图片描述
Apply to:
Main sample and sub-samples: 范围包括主取样器与所有子取样器。
Main sample only : 范围仅限于主取样器。
Sub-samples only :范围仅限于所有子取样器。
JMeter Variable Name to use :范围包括使用的Jmeter变量。
测试字段:
响应文本:响应正文(常用)。
响应代码:响应状态码,比如200、304、404等。
响应信息:响应消息,比如OK、Not Modified、Not Found等。
响应头:响应请求头。
请求头:请求头。
URL样本:请求的URL。
文档(文本):从各种类型的文档中提取文本。此选项开启也会严重影响性能,谨慎使用。
忽略状态:忽略响应状态。
请求数据:请求的body内容。
模式匹配规则:
包括:如果文本包含正则表达式模式,则为true。
匹配:如果整个文本与正则表达式模式匹配,则为true。
相等: 如果整个文本等于模式字符串(区分大小写),则为true。
字符串:如果文本包含模式字符串(区分大小写),则为true。
否:对断言结果进行否定。
或者:将多个测试模式以逻辑“或”组合起来。

举例,参数需根据响应结果来设置,如响应结果中有参数"status":200表示请求成功,那么即可如下设置。如运行后断言失败,在察看结果树里HTTP请求会显示红色失败样式。
在这里插入图片描述

BeanShell断言/BeanShell Assertion

BeanShell断言可以使用beanshell脚本来执行断言检查,可以用于更复杂的个性化需求,使用更灵活,功能更强大,但是要能够熟练使用beanshell脚本。
在这里插入图片描述

**每次调用前重置bsh.Interpreter/Reset bsh.Interpreter before each call:**若选择此项,则将为每个样本创建对应的解释器。
参数/Parameters:
传递到脚本的参数,有如下两种参数传递方式:
String Parameters:作为单一的变量参数传递;
String[] bash.args:作为数组的字符串数组参数,参数之间通过空格进行分割;
脚本文件/Script file:包含 BeanShell 脚本的运行文件。将重写当前脚本 Script,其文件名存储在脚本变量名中。
**脚本/Script:**手动编写BeanShell 脚本。

举例,响应结果中有参数"code":200表示请求成功,那么即可如下设置。如运行后断言失败,在察看结果树里HTTP请求会显示红色失败样式。

if(!ResponseCode.equals("200")){
 Failure = true;
 FailureMessage="/common/home:" + ResponseCode + "\n";
 return;
}

String response = new String(ResponseData);
Failure = !(response.contains("\"code\":200"));

if (Failure) {
 Failure = true;
 FailureMessage=response;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君琴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值