JMeter如何使用SampleResult.getFirstAssertionFailureMessage()

时间:2019-01-09 08:23:27

标签: jmeter beanshell

在BeanShell断言中,我想检查当前的HTTP Sampler是否失败,如果失败,则收集失败信息。
SampleResult.isSuccessful()用于首先检查整个采样器的状态。
如果未返回true,则调用SampleResult.getFirstAssertionFailureMessage()。

但是,错误消息指出HTTPSampleResult没有此方法。

ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``//PostProcessors are executed before any assertions import org.apache.jmeter.sam . . . '' : Typed variable declaration : Error in method invocation: Method getFirstAssertionFailureMessage() not found in class'org.apache.jmeter.protocol.http.sampler.HTTPSampleResult'

HTTPSamperResult API:http://jmeter.apache.org/api/org/apache/jmeter/protocol/http/sampler/HTTPSampleResult.html
SamperResult API:https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html

在我的脚本中,方法isSuccessful(),getSampleLabel(true),getSamplerData(),getResponseDataAsString()可以正常工作,但getFirstAssertionFailureMessage()不能正常工作。

这真的让我感到困惑,这是否意味着HTTPSampleResult只能从SampleResult调用部分方法?
如果是,我们如何识别方法列表?

1 个答案:

答案 0 :(得分:1)

鉴于您使用此JavaDoc实际的JMeter版本,它应该可以正常工作。如果您正在浏览网站-您应该运行JMeter Downloads页上的最新版本。

例如,它在JMeter 5.0

中可以正常工作

enter image description here

另外请注意,according to JMeter Best Practices you should be using JSR223 test elements and Groovy language for scripting请考虑迁移到JSR223 Assertion