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

How to change child sample result to successful in jmeter?

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

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

}

我的 结果树 现在看起来像 this。

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

最简单的方法是使用 Response Assertion 配置如下:


如果您仍在寻找 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);
    }
}

有关在 JMeter 测试脚本中使用 Beanshell 的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component 文章。