有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    如果SampleResult.getSamplerData()查询返回null,很可能表明采样器有问题,因为侦听器代码没有问题(除了可能的race condition

    enter image description here

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

    enter image description here

    在上面的代码中prev代表prevesult,有关详细信息,请参见Top 8 JMeter Java Classes You Should Be Using with Groovy