Jmeter:需要自定义摘要报告侦听器

Jmeter:需要自定义摘要报告侦听器,jmeter,jmeter-plugins,Jmeter,Jmeter Plugins,我需要使用Summary Report Listener并对其进行自定义,以便添加一个额外的列来显示输出的每条记录的延迟。它也可以作为自定义插件实现。我想要的是一个包含所有摘要报告列和延迟列的侦听器。如果你真的必须“使用摘要报告侦听器并自定义它”,那么你必须付出艰苦的努力: 首先,设置一个Java项目。例如,如果使用Maven,这是您的典型设置 不幸的是,这种实现方式不允许在数据列方面有任何灵活性。因此,您必须复制SummaryReport并将所需内容添加到您的版本中。或者基于AbstractV

我需要使用Summary Report Listener并对其进行自定义,以便添加一个额外的列来显示输出的每条记录的延迟。它也可以作为自定义插件实现。我想要的是一个包含所有摘要报告列和延迟列的侦听器。

如果你真的必须“使用摘要报告侦听器并自定义它”,那么你必须付出艰苦的努力:

  • 首先,设置一个Java项目。例如,如果使用Maven,这是您的典型设置

  • 不幸的是,这种实现方式不允许在数据列方面有任何灵活性。因此,您必须复制SummaryReport并将所需内容添加到您的版本中。或者基于AbstractVisualizer(在这种情况下,使用SummaryReport作为如何实现的示例)为该延迟值单独实现“visualizer”

  • 然后将插件构建到jar中,将其放入
    jmeter_dir/lib/ext
    ,并将所有缺少的依赖项放入
    jmeter_dir/lib
    (如果使用Maven构建,则更容易创建)

  • 如果一切顺利,你会得到你想要的

    但是,如果您可以接受不使用延迟摘要报告,一个更简单的解决方案是将一个可编程侦听器(即or)添加到您的测试计划中。它可以访问对象。因此您可以开发一个小函数,将延迟保存到文件中。类似于这样(使用BSF,选择“java”作为语言):


    请注意,此示例显示了最原始的实现(即,它每次都打开文件,对于多线程来说并不安全,也没有错误处理)。

    这可能是一个有用的提示,但我要寻找的是一种创建自定义侦听器插件的方法,在该插件中,我可以获得Summary Report+Latency中的所有数据。
     String filename = "/tmp/latency_report";
     FileOutputStream f = new FileOutputStream(filename, true);
     PrintStream p = new PrintStream(f); 
     this.interpreter.setOut(p); 
     print(prev.getEndTime() + "," + prev.getLatency());
     f.close();