【发布时间】:2013-11-01 09:28:27
【问题描述】:
我有一个带有响应和持续时间断言的 HTTP 请求采样器。现在,当响应断言失败时,不允许运行下一个 HTTP 请求采样器。只有当持续时间断言失败时,才允许运行下一个 HTTP 请求采样器。
我开始使用IF Controller 并检查${JMeterThread.last_sample_ok} 进行此操作,但那是在我只有响应断言到位时。添加持续时间断言和新要求时,这不再适用。
我已尝试使用 BeanShell 后处理器在持续时间断言失败时添加某些变量。但是当持续时间断言失败时,以下代码总是给我返回空数组事件。
BeanShell 后处理器代码:
import org.apache.jmeter.assertions.AssertionResult;
AssertionResult[] results = prev.getAssertionResults();
if (results.length == 0) {
vars.put("assertions_have_zero_length", "true");
}
//debug post processor shows the above variable.
我也尝试使用 BeanShell 侦听器,这确实给了我两个断言,但是在创建(放置)某些变量时,它们没有显示在调试后处理器中。
BeanShell 监听器代码:
import org.apache.jmeter.assertions.AssertionResult;
AssertionResult[] results = sampleResult.getAssertionResults();
System.out.println("Current counter value = " + results.length);
if (results.length == 0) {
vars.put("assertions_have_zero_length", "true");
} else {
vars.put("assertions_have_zero_length", "false");
}
//no assertion_have_zero_length variable shown in debug post processor.
我是不是做错了什么,甚至有可能是我想要的吗?
提前致谢。
【问题讨论】:
标签: jmeter