我正在对项目执行基准性能测试。 jmeter报告的平均加载时间远远高于浏览器中的实际加载时间(新鲜 - 无缓存和cookie)。 问题是什么?
答案 0 :(得分:4)
我建议检查以下内容:
加载生成器过载。使用一个用户/线程重新运行JMeter测试并与Firefox进行比较。如果结果具有可比性,那么JMeter中的响应时间可能因其过载而过度。尝试通过添加更多负载生成器来解决它。
浏览器仿真不准确。如果即使一个用户在负载测试中的响应时间较长,也可能是由于浏览器并行连接的模拟不准确造成的。要对其进行故障排除,请比较瀑布图。要从Firefox获取它,请使用Firebug。将JMeter流量路由到Fiddler,在时间轴选项卡上显示瀑布。如果瀑布不同,您可能会遇到以下问题:Web浏览器并行下载资源,而默认情况下,JMeter会按顺序重放记录的流量。要解决此问题,请添加以下设置:Simulating browsers using JMeter。
答案 1 :(得分:2)
您是否在负载测试期间使用浏览器进行检查?还是在另一个时间? 在后一种情况下,您将比较苹果和橙子。
您使用的是JMeter GUI模式吗?如果是的话,这是一个不好的做法,GUI模式用于脚本,非GUI模式用于负载测试:
您使用了多少线程?和哪个版本的Jmeter? 对于嵌入式资源测试,3.0是最现实和最佳的:
答案 2 :(得分:0)
每当您运行性能测试而不是平均响应时间时,请始终考虑第90个百分位数。在某些情况下,平均即使一个请求需要很长时间才能响应,响应时间也会出现偏差。所以请检查第90百分位。
如果您正在运行多个用户的测试,请尝试在进行负载测试时从浏览器中点击该应用程序并检查浏览器的响应时间。这将告诉您观察是否正确。
负载生成器可能无法建立足够的连接,因此您可能会看到更高的响应时间。如果您有疑问,请检查负载生成器的利用率。在某些情况下,负载生成器本身无法产生足够的负载。
运行性能测试时检查服务器利用率。这将使您了解应用程序是否无法处理负载或者是否是负载生成器的问题。
如果从UI模式运行测试,请尝试使用非UI模式运行测试。 (您能指定运行这些测试的用户数量吗?)
如果发现负载生成器出现问题,请增加JMeter内存,并关注负载生成器的CPU使用情况。
检查您使用该应用程序的负载生成器和浏览器是否在同一网络上并检查网络延迟以检查是否存在网络问题。