在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调用部分方法?
如果是,我们如何识别方法列表?
答案 0 :(得分:1)
鉴于您使用此JavaDoc实际的JMeter版本,它应该可以正常工作。如果您正在浏览网站-您应该运行JMeter Downloads页上的最新版本。
例如,它在JMeter 5.0
中可以正常工作另外请注意,according to JMeter Best Practices you should be using JSR223 test elements and Groovy language for scripting请考虑迁移到JSR223 Assertion。