Apache Jmeter 对网页的响应时间太长

Posted

技术标签:

【中文标题】Apache Jmeter 对网页的响应时间太长【英文标题】:Apache Jmeter response time too high for web pages 【发布时间】:2017-01-08 17:13:47 【问题描述】:

我们正在使用 Apache JMeter 进行 Web 应用程序的性能测试。与加载期间在浏览器中加载页面相比,响应时间显然太长了。当我们在加载过程中打开页面时,它会在 2 秒内打开,但是 JMeter 报告 70 秒。我知道浏览器内存缓存和磁盘缓存在浏览器中使用,但是 JMeter 缓存管理器不一样。如何断言它,比较响应头是一种选择。对此的任何想法将不胜感激。

【问题讨论】:

【参考方案1】:

可能是脚本中的配置错误。 Web浏览器和Jmeter响应时间不会有太大区别(Jm​​eter中忽略了浏览器渲染时间,不是很大的因素但必须考虑)

如果您对网页使用单个 Http Sampler 并检索该页面中的所有资源,则在 Http sampler 高级部分中将“并行下载”选项选择为“6”。因此,您正在模拟并行下载 .js、.css、图像等资源的浏览器行为。

如果您使用测试脚本记录器记录脚本,则该页面的每个资源请求都会有一个 Http 采样器,该请求将按顺序发送,因此会增加响应时间。您可能在这种情况下,到目前为止,还没有并行发送 http 采样器的功能/选项。所以我建议使用添加一个采样器的方法,在 Http Sampler 高级部分使用并行下载资源选项。

此外,缓存是决定响应时间的重要因素。添加 Http Cache manager 可以解决 jmeter 中的问题。这模拟了浏览器的缓存行为。我不认为黑白浏览器和 jmeter 在实现缓存方面会有很大差异,尽管可能并不完美。

【讨论】:

【参考方案2】:

原因可能是 JMeter 机器上的资源不足或 JMeter 未正确配置以产生高负载。 JMeter 默认配置有利于负载测试开发和调试,您可以运行负载测试到一定数量的虚拟用户,但是如果您需要进行非常高的负载 - 您需要执行一些配置更改。

首先,使用jvisualvm 和您的操作系统监控工具仔细检查我的猜测(PerfMon JMeter Plugin 可用于监控被测应用程序和 JMeter 负载生成器端的不同指标)。如果是这种情况 - 采取后续步骤以获得 JMeter 安装的最佳性能:

    增加JVM Heap Size, NewSize, switch to ConcurrentMarkSweep Garbage Collector。 在non-GUI mode 中运行您的测试。 在测试期间禁用所有listeners。 遵循9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure 文章中的其他建议。

【讨论】:

以上是关于Apache Jmeter 对网页的响应时间太长的主要内容,如果未能解决你的问题,请参考以下文章

在 Apache JMeter 中配置响应超时

JMeter 检查点之响应断言(Response Assertion)

Jmeter源码之响应断言分析

在原生 iOS 应用程序中集成响应式 html 网页并使用 Apache Cordova 进行通信

Jmeter响应数据显示乱码问题

JMeter 在 GET 方法上遵循 POST 重定向