在HTML图表中动态绘制JMeter测试结果

5
我希望能够运行一个数千用户的JMeter测试,并使用基于JQuery的图表库(如HighCharts)动态地绘制结果,即每个虚拟用户的响应必须实时绘制成股票行情图表,以便实时更新。我可以在非GUI模式下运行测试。
我尝试了以下操作: - 在非GUI模式下运行JMeter测试并将响应写入文件。我注意到结果以缓冲方式写入文件,这意味着即使我有程序监视文件以获取新记录,我也无法实时获得它。
我正在寻求如何实现此目标的建议 1. 是否需要编写自定义的JMeter插件?在这种情况下,它怎么工作? 2. 是否有一些监听器可以提供所需数据? 3. 可以通过后处理器完成吗?
我看到一些基于云的负载测试网站使用JMeter进行实时报告生成,因此我相信它是可以实现的,但如何实现呢?
2个回答

2

您可以在user.properties文件中添加以下内容来禁用缓冲:

  • jmeter.save.saveservice.autoflush=true

这会对低或无暂停测试的性能产生轻微影响。

如果您想要实现您想要的功能,可以使用这种类型的库:

请注意,自2023年4月起,有一个新的免费开源插件可以让您在浏览器中监控非GUI测试而无需进一步操作。
安装JMeter-Plugins管理器后:

只需将UbikLoadPack可观察性插件(添加>监听器)添加到您的测试中,您就可以在以下网址的浏览器中跟踪它:

  • http://server_where_jmeter_runs:9090/ulp-observability

请参见:


1

写入文件时会有一些缓冲,但不应超过几秒钟的数据。

我建议将日志文件读取到类似于statsD的东西中,使用类似logstash.net这样的工具,然后从那里你可能会找到一个现有的解决方案,将其推送到图表上。


谢谢您的回答。我看到您在Blazemeter工作。我查了一下,发现它基本上在测试进行时显示响应时间的动态实时显示。这是您在Blazemeter中的工作方式吗?我猜测Blazemeter服务器不同于JMeter主服务器。您如何在Blazemeter服务器上获得实时更新,以及延迟多少时间? - Avi
1
在BlazeMeter,我们使用自己的技术实时读取.jtl文件,并将其保存到数据库中。实际上,我们正在使用一个开箱即用的JMeter服务器,没有进行任何修改。 - Ophir Prusak
@OphirPrusak请问您能否帮忙回答这个问题http://goo.gl/URsAFM? - Axel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接