Java 什么是getAssertionResults();返回以及如何在jmeter中的BeanShell后处理器中检查它
我是JMeter的初学者,所以,如果我不能正确解释或者这是一个愚蠢的问题,请原谅 我通过HTTP请求采样器的响应断言检查某些响应文本。ie文本响应包含:Java 什么是getAssertionResults();返回以及如何在jmeter中的BeanShell后处理器中检查它,java,methods,jmeter,assertion,beanshell,Java,Methods,Jmeter,Assertion,Beanshell,我是JMeter的初学者,所以,如果我不能正确解释或者这是一个愚蠢的问题,请原谅 我通过HTTP请求采样器的响应断言检查某些响应文本。ie文本响应包含: class=“panel panel panel mini pane fire ev header top”| id=“block-panels\u mini-fire\u ev\u header\u top”等 并且希望在BeanShell后处理器中使用prev.getAssertionResults()作为条件,即如果响应文本包含上述文本,
class=“panel panel panel mini pane fire ev header top”| id=“block-panels\u mini-fire\u ev\u header\u top”
等
并且希望在BeanShell后处理器中使用prev.getAssertionResults()
作为条件,即如果响应文本包含上述文本,则执行某些步骤会失败。但不确定getAssertionResults()
返回什么
请问我该怎么做 您引用的方法返回一个与父采样器关联的实例数组,有关所有可用的方法和字段,请参阅JavaDoc。您可以按如下方式使用它:
import org.apache.jmeter.assertions.AssertionResult;
AssertionResult[] assertionResults = prev.getAssertionResults();
for (AssertionResult assertionResult : assertionResults) {
if (assertionResult.isFailure()) {
// do what you need if assertion is not successful
} else {
//do what you need if assertion is successful
}
}
有关使用JMeter断言的更多信息,请参阅本文
注意:您可能会发现,
${JMeterThread.last_sample_ok}
的条件更易于使用请注意,在任何断言之前执行后置处理器,这样您就不能从BeeBeSE后处理器访问响应断言结果,考虑使用BeeS壳断言,谢谢您,德米特里,您的答案。当我使用上面的代码时,它在日志上给我错误消息:jmeter.util.BeanShellInterpreter:error调用bsh方法:eval源文件:内联求值:``//import org.apache.jmeter.assertions.AssertionResult;字符串代码=prev.getR…'':类型化变量声明:在命名空间中找不到类:AssertionResult不要忘记第一行:import org.apache.jmeter.assertions.AssertionResult代码>,您需要使用从第三方软件包加载类。请参阅文章了解更多详细信息。我没有足够的心灵感应能力去猜测代码中的语法问题在哪里,而没有看到它。考虑到您模棱两可的编程技能,“如果控制器”方法将是更好的解决方案i import org.apache.jmeter.assertionassertionResult,现在我收到了这个错误消息:jmeter.util.BeanShellInterpreter:调用bsh方法时出错:文件中的eval:inline求值:``import org.apache.jmeter.assertions.AssertionResult//字符串代码=prev.getR…“”在第15行第5列遇到“}”。