jmeter介绍beanshell相关之beanshell断言

beanshell断言支持的变量有一下几种:

Read/Write(读/写):

  1. Failure: 一个boolean值,用于表示断言是否失败。如果你在断言中将它设置为true,测试会被标记为失败。

  2. FailureMessage: 一个字符串,用于设置断言失败时的错误消息。

  3. SampleResult: SampleResult对象,表示关联的请求/响应的详细信息。可以通过这个对象获取请求和响应的信息,比如响应数据、响应码等。

  4. vars: 一个JMeterVariables对象,用于读写JMeter变量。可以通过该对象设置或获取用户定义的变量,这些变量可以在测试执行期间保持状态。

  5. props: 一个JMeterProperties对象,表示JMeter的全局属性。通过该对象,你可以读取和写入JMeter的全局属性。

  6. log: 用于在JMeter控制台中打印日志消息的对象。通过这个对象,你可以输出调试信息或记录特定事件。

ReadOnly(只读):

  1. Response[Data|Code|Message|Headers]: SampleResult对象的不同属性,提供了对响应数据、响应码、响应消息和响应头的只读访问。

  2. RequestHeaders: 字符串,表示请求的头部信息。

  3. SampleLabel: 字符串,表示样本的标签。这通常是请求的名称或描述。

  4. SamplerData: 字符串,表示请求的数据。例如,在HTTP请求中,这可能是POST请求的参数。

  5. ctx: JMeterContext对象,用于获取有关当前测试上下文的信息。包括线程组、用户定义的变量等。

这些变量允许你在BeanShell断言中灵活地访问和处理与测试执行相关的信息,以便更好地定制和优化测试脚本。

顺带举一个例子

断言状态码的例子,记住可千万别忘记引入

源码直接粘贴就可使用

import org.apache.jmeter.samplers.SampleResult;

String result = prev.getResponseDataAsString();
String httphead = prev.getResponseHeaders();

// 获取上一次执行的 SampleResult 对象
SampleResult prevResult = prev;

// 获取响应的状态码
String responseCodeStr = prevResult.getResponseCode();
int responseCode = Integer.parseInt(responseCodeStr);

// 期望的状态码
int expectedStatusCode = 200;

// 检查状态码是否为 200
if (responseCode == expectedStatusCode) {
    Failure = false; // 断言通过
    FailureMessage = "Response code is 200 (OK).";
} else {
    Failure = true; // 断言失败
    FailureMessage = "Response code is not 200. Actual: " + responseCode;
}
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值