首页 > 解决方案 > Jmeter 后端侦听器示例结果 null SamplerData

问题描述

我的电话收到了null回复SampleResult.getSamplerData。我的印象是我会收到可以存储在文件中的数据。我们需要这个监听器来执行其他的工作,所以这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>

标签: javajmeterlistenerbackend

解决方案


如果您的SampleResult.getSamplerData()查询返回 null 很可能它表明您的采样器有问题,因为您的侦听器代码没有任何问题(除了可能的竞争条件

在此处输入图像描述

所以仔细看看你的采样器,它可能根本没有任何数据。您可以从JSR223 侦听器开始,这将使您能够更快地检查结果,而无需重新编译/复制/运行测试

在此处输入图像描述

上面的代码prev代表上一个示例结果,有关更多详细信息,请参阅您应该在 Groovy 中使用的 8 个 JMeter Java


推荐阅读