Jmeter运行结果之间有Jmeter响应时间差,手动捕获响应时间

时间:2017-04-04 18:40:38

标签: jmeter

Jmeter运行结果之间存在Jmeter响应时间差异,并使用Web应用程序上的秒表手动捕获本地系统的响应时间。

  1. 从本地Windows系统浏览网络应用程序,并使用秒表查看加载页面的响应时间。
  2. 以非gui / gui模式运行Jmeter并观察响应时间(使用Listeners仅调试,运行脚本时没有添加监听器)
  3. 可以看出两者都有差异。请建议如何知道Jmeter是否捕获了正确的响应时间。

2 个答案:

答案 0 :(得分:2)

如果您正确配置JMeter,您应该获得相同或相似的响应时间。 "适当"配置代表:

  1. 你应该configure JMeter to retrieve embedded resources并使用~5个线程的并行线程池来实现这个

    JMeter embedded resources

    这个选项"告诉" JMeter用于获取主HTML页面中引用的图像,样式和脚本,并像真实浏览器一样并行执行

  2. 添加HTTP Cache Manager to your Test Plan。真正的浏览器下载嵌入式资源但只执行一次,在后续请求中从磁盘缓存返回资源,没有实际请求。 HTTP缓存管理器支持缓存模拟和缓存控制头处理。
  3. 添加HTTP Cookie Manager代表Cookie /会话并处理基于Cookie的身份验证
  4. HTTP Header Manager添加到测试计划中以表示浏览器标头。这可能很重要,因为缺少Accept-Encoding标头可能会禁用服务器端压缩,因此客户端将接收更多数据,这将花费更多时间。
  5. 假设"好" JMeter配置你应该看到或多或少相同的行为

    JMeter Response Time versus Real Browser

    如果仍有差异 - 使用Wireshark之类的嗅探工具捕获JMeter和浏览器发送的请求,并修改JMeter配置以消除差异

答案 1 :(得分:1)

JMeter根据请求捕获了三个基本测量值:

  • 经过时间(从刚刚开始发送请求到收到最后一位的时间点的总时间跨度)

  • 延迟(从同一时间点开始,在服务器开始响应时结束)

  • 连接时间(包含在延迟中,基本上是与服务器握手的时间,包括SSL / TLS协商)

因此,如果您在侦听器中设置数据编写器(例如SimpleDataWriter,尽管AggregateReport和SummaryReport也可以这样做),您将在数据文件中看到这些指标(而标准侦听器/可视化器/聚合器已经过时)时间)。

但请注意,这些指标不包括响应呈现,尤其是浏览器要执行的任何代码。

JMeter根本就没有这样做:显然,它只测量Server + Network的综合性能,跳过客户端的所有内容(除了必需品,如协议协商)。

这可能解释了您所经历的差异。

除了记录的服务器处理时间和&之间的差异。 JMeter测量的响应时间:服务器不计算网络带来的内容。

PS你不必坐下来用你的浏览器点击秒表:现代的有一个开发工具能够显示精确的时间分为几个阶段。例如,只需在Chrome中调用Ctrl + Shift + I,切换到网络选项卡&当你提出要求时,请看那里的时间。