我有一个带有响应和持续时间断言的HTTP请求采样器.现在,当响应断言失败时,不允许下一个HTTP请求采样器运行.仅当持续时间断言失败时,才允许下一个HTTP请求采样器运行.
我开始这样做IF Controller并检查${JMeterThread.last_sample_ok}但是,当我只有响应声明到位时.添加持续时间断言和新要求时,不再应用此要求.
我已经尝试过BeanShell Post Processors在持续时间断言失败时添加某些变量.但是当持续时间断言失败时,以下代码总是给我回来和空数组事件.
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.
Run Code Online (Sandbox Code Playgroud)
我也尝试使用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.
Run Code Online (Sandbox Code Playgroud)
我做错了什么,甚至可能是我想要的吗?
提前致谢.
我设法让它与一个BeanShell Listener.由于执行顺序,我第一次尝试使用BeanShell后处理器是不可能的.后处理器在断言之前运行.这也是为什么Debug Post Processor没有显示在BeanShell Listener中创建的变量的原因.
所以我的代码BeanShell Listener如下:
import org.apache.jmeter.assertions.AssertionResult;
AssertionResult[] results = sampleResult.getAssertionResults();
boolean skipPostAssertionConsumerService = false;
for(int i =0; i<results.length; i++) {
AssertionResult result = results[i];
boolean isResponseAssertion = result.getName().equals("Response Assertion - Is Not Authentication Failed");
boolean resultHasFailed = result.isFailure() || result.isError();
if(isResponseAssertion && resultHasFailed) {
skipPostAssertionConsumerService = true;
break;
}
}
vars.put("do_post_assertion_consumer_service_url", (!skipPostAssertionConsumerService).toString());
Run Code Online (Sandbox Code Playgroud)
在我的IF Controller设置中,我设置了以下条件:
${do_post_assertion_consumer_service_url}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3631 次 |
| 最近记录: |