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

时间:2016-11-04 09:43:11

标签: jmeter beanshell

我已经在jmeter的帮助下进行了登录过程。在请求采样器中,我期望获得响应代码" 401"。我已经添加了 BeanShell Assertion

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

}

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

我的问题是 - 我需要添加到 BeanShell 以使第二个样本的子项为绿色(已通过)以及它的父样本?

1 个答案:

答案 0 :(得分:1)

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

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文章。