4

我有一个JMeter项目,其中包含多个请求GETPOST断言。我使用Aggregate resultsView results tree 侦听器,但这些都不能按小时存储结果。我尝试了打包和JMeterPlugins-Standard监听器,但它们都使用聚合数据而不是每小时数据。所以我想每小时获得成功和失败的请求/断言的数量,也许条形图最适合这个目的。JMeterPlugins-Extrasjp@gc - Graphs Generator

4

4 回答 4

2

我将建议一个非常规的设计级解决方案:使用小时(或日期和小时)动态命名您的采样器,以便每个小时名称都会更改,因此它们将出现在不同的类别中,即:

在此处输入图像描述

此类名称的代码是:

${__time(dd:hh,)} the rest of sampler name

这样的采样器将在聚合报告中以下列方式出现(这里我用分钟/秒模拟它,但同样会在天/小时发生,只是规模更大):

在此处输入图像描述

这种方法的优缺点:

  • 很简单,您可以在测试运行时按小时、分钟或任何其他时间片聚合任何内容,而不是在执行后进行分析。

  • 不依赖于监听器,几乎可以与任何监听器或可视化器一起使用

  • 如果您还想获得整体统计数据,则需要总结每个子类别。所以它改变了数据,但它仍然可以相对容易地添加回原始数据。

  • 从性能的角度来看,在每个采样器之前进行计算__time不会完全被忽视,但我认为它不会给脚本增加可见的开销。

  • 您可以通过在执行后正确聚合 JTL 或 CSV(无论您使用哪个)来获得相同的数据,因此它不会为您提供使用标准方法无法实现的任何内容

  • 脚本需要更改才能实现。如果您有 100 多个采样器,则需要一段时间。如果你想改回来...

于 2017-10-06T22:26:21.277 回答
1

您可能想要使用具有和参数的过滤结果工具,您可以将结果文件“剪切”成“有趣”的部分并根据您的要求绘制它们。--start-offset--end-offset

您可以使用JMeter 插件管理器安装过滤结果工具

JMeter 过滤结果工具


另请注意,根据JMeter 最佳实践,您应该

  • 使用尽可能少的 Listeners;如果使用上面的 -l 标志,它们都可以被删除或禁用。
  • 不要在负载测试期间使用“查看结果树”或“在表中查看结果”侦听器,仅在脚本编写阶段使用它们来调试脚本。

您可以从 .jtl 结果文件中获取所需的任何信息,您可以通过-l命令行参数指定测试结果位置

于 2017-10-02T05:03:33.537 回答
1

要获得每小时汇总的结果,请添加到您的测试计划Generate Summary Results

在日志文件和/或标准输出中生成到目前为止的测试运行摘要

根据您的需要更新 jmeter.properties 中的间隔 1 小时 3600 秒:

 summariser.interval=3600 

您将获得每小时请求的摘要。

于 2017-10-08T05:11:18.463 回答
1

您可以尝试使用Jmeter backend Listener. 它与石墨和 Influxdb 集成。将结果存储在这些时间序列数据库中后,您可以在 Grafana 仪表板中显示结果。Grafana 有自己的过滤功能,可以按小时、按月、按天等显示结果。

于 2017-10-11T11:12:39.673 回答