2016-01-18 75 views
2

我需要使用汇总报告监听器并对其进行自定义,以便我可以添加附加列以显示输出的每个记录的延迟时间。它也可以作为自定义插件来实现。我想要的是一个收听总结报告加上延时栏的所有栏目的听众。Jmeter:需要自定义汇总报告监听器

回答

1

如果你真的要“走总结报告监听器和自定义”,那么你将不得不艰难地:

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

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

  3. 然后你建立你的插件到罐子,把它扔到jmeter_dir/lib/ext,及其所有缺少的依赖关系落入jmeter_dir/lib(如果使用Maven构建,它更容易创建zip that contains your jar and all dependencies

,如果一切很好,你会得到你想要的东西

但是,如果可以接受不使用总结报告的延迟,更简单的解决方案是将一个可编程监听器(即BSF listenerJSR223 Listener)添加到您的测试计划中它可以访问sampleResult对象。所以你可以开发一个小功能,将延迟保存到文件中。这样的事情(使用BSF以“Java”的选择语言):

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(); 

注意,这个例子显示了最原始的执行(即它打开每一次文件,多线程并不是真正的安全,没有错误处理)。

+0

这可能是一个有点有用的提示,但我正在寻找的是一种创建自定义侦听器插件的方式,我可以在Summary Report + Latency中获取所有数据。 – TESTasy