我已经使用带有XMPP插件的Jmeter和openfire(作为我的服务器)建立了一个测试计划。当我对每个测试运行(使用Jmeter GUI)时:XMPP收集数据包样本我得到的响应数据与接收到的数据包数量以及数据包本身一样,我需要获取subSample结果。
我有BeanShell采样器
import org.apache.jmeter.samplers.SampleResult;
System.out.println( "myData-->"+SampleResult subResult :
SampleResult.getSubResults());
我不断收到此错误:
Typed variable declaration : Cannot reach instance method: getSubResults() from static context: org.apache.jmeter.samplers.SampleResult
在GUI中,当我单击collectPackage采样器本身的消息时,我看到:
<message id='Q93Ww-102' to='user0@n-dev-xyz' from='user0@n-dev-xyz/jmeter'><body>Hello, it's user1</body></message>
答案 0 :(得分:0)
您不能从Beanshell Sampler本身执行此操作,以便能够使用XMPP Sampler子结果,您需要:
将Beanshell后处理器添加为XMPP采样器的子代。您将可以使用prev
的简写形式访问父采样器结果,例如:
SampleResult [] subResults = prev.getSubResults();
如果您仍要使用Beanshell采样器,则需要将其放置在XMPP采样器的之后,并使用ctx
的简写形式访问以前的采样器结果,例如:
SampleResult [] subResults = ctx.getPreviousResult().getSubResults();
请注意,starting from JMeter 3.1 it is strongly recommended to use JSR223 Test Elements and Groovy language适用于任何形式的脚本,主要是因为Groovy performance is much better comparing to Beanshell,所以我建议在下一个可用机会时迁移到JSR223 Post-Processor和Groovy。