Jmeter:需要自定义Summary Report Listener

时间:2016-01-18 09:37:56

标签: jmeter jmeter-plugins

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

1 个答案:

答案 0 :(得分:2)

如果您真的需要“使用摘要报告监听器并对其进行自定义”,那么您将不得不采取艰难的方式:

  1. 首先,设置一个Java项目。例如,如果使用Maven,则这是典型的设置with one additional dependency

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

  3. 然后将您的插件构建到jar中,将其放入jmeter_dir/lib/ext,并将所有缺少的依赖项放入jmeter_dir/lib(如果使用Maven构建,则更容易创建 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(); 3}}

  4. 如果一切顺利,你会得到你想要的。

    但是,如果您不使用摘要报告进行延迟,则更容易的解决方案是将一个可编程侦听器(即zip that contains your jar and all dependenciesBSF listener)添加到您的测试计划中。它可以访问JSR223 Listener对象。因此,您可以开发一个小功能,可以将延迟保存到文件中。像这样的东西(使用BSF选择语言的“java”):

    600110710180  -- the result is 71
    600200487090  -- the result is 48
    604500820033  -- the result is 82
    

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