java Jmeter后端侦听器示例结果null SamplerData
我的SampleResult.getSamplerData
呼叫得到了null
响应。我当时的印象是,我会收到可以存储在文件中的数据。我们需要这个侦听器来执行其他工作,因此Simple File Writer
是不够的
下面是我的Listener类(扩展了AbstractBackendListenerClient
)中的Listener方法:
@Override
public void handleSampleResults(List<SampleResult> list, BackendListenerContext backendListenerContext) {
try {
FileWriter fileWriter = new FileWriter("C:\\projects\\sampleResults.txt");
BufferedWriter bw = new BufferedWriter(fileWriter);
list.forEach(sampleResult -> {
try {
bw.write(sampleResult.getSamplerData());
bw.newLine();
} catch (IOException e) {
e.printStackTrace();
}
});
bw.close();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
下面是我的JMX配置:
<BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Some Listener" enabled="true">
<elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="classname">com.k.jmeter.SomeBackendListener</stringProp>
</BackendListener>
# 1 楼答案
如果SampleResult.getSamplerData()查询返回null,很可能表明采样器有问题,因为侦听器代码没有问题(除了可能的race condition)
所以,仔细看看你的采样器,它可能根本没有任何数据。你可以从一个JSR223 Listener开始,它可以让你更快地检查结果,而无需重新编译/复制/运行测试
在上面的代码中
prev
代表prevesult,有关详细信息,请参见Top 8 JMeter Java Classes You Should Be Using with Groovy