我需要使用摘要报告侦听器并对其进行自定义,以便我可以添加一个额外的列来显示每个输出记录的延迟。它也可以作为自定义插件实现。我想要的是一个包含Summary Report和Latency列的所有列的监听器。
答案 0 :(得分:2)
如果您真的需要“使用摘要报告监听器并对其进行自定义”,那么您将不得不采取艰难的方式:
首先,设置一个Java项目。例如,如果使用Maven,则这是典型的设置with one additional dependency
不幸的是SummaryReport的实现方式,它不允许数据列的任何灵活性。因此,您必须复制SummaryReport并将所需内容添加到您的版本中。或者基于AbstractVisualizer(在这种情况下使用SummaryReport作为如何操作的示例),为这一延迟值实现您自己的单独“可视化器”。
然后将您的插件构建到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}}
如果一切顺利,你会得到你想要的。
但是,如果您不使用摘要报告进行延迟,则更容易的解决方案是将一个可编程侦听器(即zip that contains your jar and all dependencies或BSF listener)添加到您的测试计划中。它可以访问JSR223 Listener对象。因此,您可以开发一个小功能,可以将延迟保存到文件中。像这样的东西(使用BSF选择语言的“java”):
600110710180 -- the result is 71
600200487090 -- the result is 48
604500820033 -- the result is 82
请注意,此示例显示了最原始的实现(即每次打开文件,对于多线程不是很安全,没有错误处理)。