【问题标题】:The Average response time differs largely while load testing the Same API Endpoint with same load using Jmeter使用 Jmeter 对具有相同负载的相同 API 端点进行负载测试时,平均响应时间差异很大
【发布时间】:2017-03-01 07:51:55
【问题描述】:

我正在使用 JMeter 来测试 API 端点的性能。 应用的线程数(用户)为 100。 当我第一次执行测试时,平均响应时间为 35345 毫秒。 对于以下在同一 API 端点上使用相同数量的线程进行的所有测试,平均响应时间约为 4705 毫秒。

平均响应时间差异如此之大的原因是什么? JMeter 是否在第一次测试中缓存任何文件并在所有后续测试中使用相同的缓存文件? 如果是,我该如何避免这种情况?

我是 JMeter 的新手,在这方面的任何帮助将不胜感激。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    JMeter 在 API 测试时不缓存任何东西,它有 HTTP Cache Manager 可以代表浏览器缓存,当涉及到处理嵌入式资源,如图像、脚本和样式时,当涉及到 Web 测试时(模仿 HTTP 请求发送通过真正的浏览器),但这不是你的情况。

    所以我的期望是它在你的应用程序中被测试,即它需要“预热”它自己的缓存,并且由于第一次访问时组件的lazy initialization,前几个请求的处理时间更长。

    所以我的建议是:

    • 确保使用合理的加速期,以便负载逐渐增加,这样您就可以将响应时间、每秒点击次数等主要指标与增加的负载相关联
    • 从操作系统的角度监控您的被测应用程序的运行状况,即 CPU、RAM、Swap 消耗等。您可以使用 JMeter PerfMon Plugin 来实现这一点
    • 使用与您的应用程序相关的profiling tools 来检测“繁重”方法、长时间运行的数据库查询等。

    【讨论】:

    • 感谢 Dmitri,非常有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    相关资源
    最近更新 更多