首页 > 解决方案 > 尽管请求成功,但 JMeter 错误率太高

问题描述

更新 - 删除聚合报告并重新运行测试现在给出的错误率为 0。为什么需要这样做?

我正在使用 JMeter 4.0 通过发送带有 JSON 正文的 POST 请求来访问具有 20 个线程组的 REST Web 服务。所有 20 个请求都成功并给出正确的响应(200 个带有正确的 JSON 正文)。为什么错误率在 99% 以上?(见下图)。此外,即使“查看结果树”选项卡显示 20 个 HTTP 请求(每个请求的错误计数为 0),为什么报告中没有样本为 10063。

在此处输入图像描述

标签: jmeterperformance-testing

解决方案


如果您运行 JMeter 测试,假设有 20 个 HTTP 请求并在侦听器中看到 > 10 000 - 很可能您在侦听器中打开了不正确的 .jtl 结果文件。

  1. 仔细检查“文件名”输入字段是否为空

    在此处输入图像描述

  2. 在运行新测试之前,请确保通过Run -> Clear All从 JMeter 的主菜单中选择来清理“内存中”结果(或单击 Control+E)

    JMeter 清除所有


请注意,使用侦听器是某种形式的性能反模式,它们不会增加任何价值,但会消耗宝贵的系统资源,这些资源可以用于其他用途或保持原样以保存树木。所以:

  1. 从测试计划中删除所有侦听器
  2. 在命令行非 GUI 模式下运行测试,例如:

    jmeter -n -t test.jmx -l result.jtl
    
  3. 测试完成后,打开 JMeter GUI 并result.jtl使用您选择的侦听器检查文件(您可以使用上述“文件名”选项卡加载它)
  4. 或者从文件中生成一个HTML 报告仪表板result.jtl——它将包含概述测试结果的统计信息、表格和图表。

推荐阅读