【问题标题】:JMeter to record results on hourly basisJMeter 每小时记录结果
【发布时间】:2017-10-01 05:31:38
【问题描述】:

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

【问题讨论】:

标签: charts jmeter bar-chart jmeter-plugins jmeter-3.2


【解决方案1】:

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

这个名字的代码是:

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

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

这种方法的优缺点:

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

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

  • 如果您还想拥有整体统计数据,则需要汇总每个子类别。因此它会更改数据,但仍然可以相对容易地将其添加回原始数据。

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

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

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

【讨论】:

    【解决方案2】:

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

    您可以使用JMeter Plugins Manager 安装过滤结果工具


    还要注意,根据JMeter Best Practices,您应该

    • 使用尽可能少的侦听器;如果使用上面的 -l 标志,它们都可以被删除或禁用。
    • 不要在负载测试期间使用“View Results Tree”或“View Results in Table”侦听器,仅在脚本编写阶段使用它们来调试您的脚本。

    您可以从 .jtl 结果文件中获取所需的任何信息,您可以通过-l command-line argument 指定测试结果位置

    【讨论】:

    • 我不明白,我如何以及在哪里可以使用Filter Results Tool。我在Add 下找不到它。
    【解决方案3】:

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

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

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

     summariser.interval=3600 
    

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 我目前正在寻找基于 Windows 的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      相关资源
      最近更新 更多