使用Jmeter以相同负载负载测试相同API端点时,平均响应时间差别很大

时间:2017-03-01 07:51:55

标签: jmeter

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

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

我是JMeter的新手,对此方面的任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

当涉及到API测试时,JMeter不会缓存任何内容,它具有HTTP Cache Manager,当涉及到Web测试(模仿HTTP)时处理图像,脚本和样式等嵌入式资源时,它可以代表浏览器缓存请求由真实浏览器发送)但不是你的情况。

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

所以我的推荐是:

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