我有一个JMeter
项目,其中包含多个GET
和POST
请求和断言。我使用Aggregate results
和View results tre
个侦听器,但这些都不能按小时存储结果。我尝试了JMeterPlugins-Standard
和JMeterPlugins-Extras
个软件包以及jp@gc - Graphs Generator
个侦听器,但所有这些都使用聚合数据而不是每小时数据。所以我想每小时获得一些成功和失败的请求/断言,也许条形图最适合这个目的。
答案 0 :(得分:1)
您可能希望使用包含--start-offset
和--end-offset
参数的Filter Results Tool,您可以" cut"你的结果文件变成"有趣的"根据您的要求制作并绘制它们。
另请注意,根据JMeter Best Practices,您应该
- 使用尽可能少的听众;如果使用上面的-l标志,则可以删除或禁用它们。
- 不要使用" 查看结果树"或"查看表格中的结果"负载测试期间的监听器,仅在脚本编写阶段使用它们来调试脚本。
您可以从.jtl结果文件中获取所需的任何信息,您可以通过-l
command-line argument指定测试结果位置
答案 1 :(得分:1)
我将建议一个非传统的设计级解决方案:用小时(或日期和小时)动态命名您的采样器,这样每个小时名称都会改变,因此它们将出现在不同的类别中,即:
此名称的代码为:
video
此类采样器将在聚合报告中以下列方式显示(此处我使用分钟/秒进行模拟,但相同的情况会发生在天/小时,只是在更大范围内):
这种方法的利弊:
简单来说,您可以在测试运行时按小时,分钟或任何其他时间片汇总任何内容,而不是在执行后进行分析。
不依赖于侦听器,几乎可以与任何侦听器或可视化器一起使用
如果您还想拥有整体统计数据,则需要总结每个子类别。所以它改变了数据,但它仍然可以相对容易地添加回原始数据。
在每个采样器之前计算${__time(dd:hh,)} the rest of sampler name
不会从性能角度完全忽略,但我认为它不会为脚本增加可见的开销。
您可以通过在执行后正确聚合JTL或CSV(无论您使用哪个)来获取相同的数据,因此它不会为您提供使用标准方法无法实现的任何内容
脚本需要改变以实现此目的。如果您有100个采样器,那将需要一段时间。如果你想改回来......
答案 2 :(得分:1)
要获得每小时的汇总结果,请添加到测试计划Generate Summary Results:
生成到目前为止测试运行的摘要到日志文件和/或标准输出
根据需要更新jmeter.properties中的间隔,1小时3600秒:
summariser.interval=3600
您将获得每小时请求的摘要。
答案 3 :(得分:1)
您可以尝试使用Jmeter backend Listener
。它与石墨和Influxdb集成。将结果存储在这些时间序列数据库中后,您可以在Grafana仪表板中显示结果。 Grafana有自己的过滤方式,每小时,每月,每天等显示结果。