如何在jmeter中将子样本结果更改为成功?

nec*_*bik 4 jmeter beanshell

我在 jmeter 的帮助下完成了登录过程。在请求采样器中,我期望得到响应代码“401”。我添加了BeanShell 断言

if (ResponseCode.equals("401") == true) { 
    SampleResult.setResponseOK();  
    SampleResult.setSuccessful(true);

}
Run Code Online (Sandbox Code Playgroud)

我的结果树现在看起来像这样

我的问题是 - 我需要向BeanShell添加什么才能使第二个样本的子级(通过)以及它的父级样本变为绿色?

Dmi*_*i T 6

最简单的方法是使用配置如下的响应断言

响应断言


如果您仍在寻找 Beanshell 解决方案 - 您需要处理所有子结果以及主要结果,因此您应该修改您的代码,例如:

import org.apache.jmeter.samplers.SampleResult;

//process main sample
if (SampleResult.getResponseCode().equals("401")) {
    SampleResult.setResponseCodeOK();
    SampleResult.setSuccessful(true);
}

//process all subsamples
for (SampleResult subResult : SampleResult.getSubResults()){
    if (subResult.getResponseCode().equals("401")){
        subResult.setResponseCodeOK();
        subResult.setSuccessful(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

有关在 JMeter 测试脚本中使用 Beanshell 的更多信息,请参阅如何使用 BeanShell:JMeter 最喜欢的内置组件文章。