Jmeter运行结果和手动捕获的响应时间之间存在Jmeter响应时间差异

Jmeter运行结果和手动捕获的响应时间之间存在Jmeter响应时间差异,jmeter,Jmeter,Jmeter运行结果与使用web应用程序上的秒表从本地系统手动捕获的响应时间之间存在Jmeter响应时间差 从本地windows系统浏览web应用程序,并使用秒表查看加载页面的响应时间 在非gui/gui模式下运行Jmeter并观察响应时间(仅在运行脚本时使用侦听器进行调试,未添加侦听器) 可以看出两者之间有区别。请建议如何知道Jmeter是否捕获了正确的响应时间 JMeter有三个基本测量值,它可以根据每个请求捕获: 已用时间(从刚开始发送请求到接收到的最后一位的时间跨度) 延迟(从同一时间

Jmeter运行结果与使用web应用程序上的秒表从本地系统手动捕获的响应时间之间存在Jmeter响应时间差

  • 从本地windows系统浏览web应用程序,并使用秒表查看加载页面的响应时间
  • 在非gui/gui模式下运行Jmeter并观察响应时间(仅在运行脚本时使用侦听器进行调试,未添加侦听器)
  • 可以看出两者之间有区别。请建议如何知道Jmeter是否捕获了正确的响应时间

  • JMeter有三个基本测量值,它可以根据每个请求捕获:

    • 已用时间(从刚开始发送请求到接收到的最后一位的时间跨度)

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

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

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

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

    JMeter根本不这样做:显然,它只测量服务器+网络的综合性能,跳过了客户端的所有内容(除了基本的必要条件,如协议协商)

    这也许可以解释你所经历的不同

    以及记录的服务器处理时间和JMeter:server测量的响应时间之间的差异,只是不计算网络带来了什么


    另外,你不必坐在那里,用浏览器点击秒表:现代的秒表有一个开发工具,可以显示分阶段的精确计时。例如,只需在Chrome中调用Ctrl+Shift+I,切换到网络选项卡,即可在执行请求时查看计时。

    JMeter有三个基本测量值,它可以捕获每个请求:

    • 已用时间(从刚开始发送请求到接收到的最后一位的时间跨度)

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

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

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

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

    JMeter根本不这样做:显然,它只测量服务器+网络的综合性能,跳过了客户端的所有内容(除了基本的必要条件,如协议协商)

    这也许可以解释你所经历的不同

    以及记录的服务器处理时间和JMeter:server测量的响应时间之间的差异,只是不计算网络带来了什么


    另外,你不必坐在那里,用浏览器点击秒表:现代的秒表有一个开发工具,可以显示分阶段的精确计时。例如,只需在Chrome中调用Ctrl+Shift+I,切换到网络选项卡,即可在执行请求时查看计时。

    如果您正确配置JMeter,则对于相同的请求,您应该获得相同或类似的响应时间。“正确”配置代表:

  • 为此,您应该创建并使用~5个线程的并行线程池

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

  • 加上。真正的浏览器下载嵌入式资源,但只下载一次,在后续请求中,资源将从磁盘缓存返回,而不会发出实际请求。HTTP缓存管理器支持缓存模拟和缓存控制头处理
  • 添加以表示cookie/会话并处理基于cookie的身份验证
  • 添加到测试计划以表示浏览器标题。这可能很重要,因为缺少标头可能会禁用服务器端压缩,因此客户端将接收更多数据,这将花费更多时间
  • 假设JMeter配置“良好”,您应该会看到或多或少相同的行为

    如果仍然存在差异-使用嗅探器工具(如)捕获JMeter和浏览器发送的请求,并修改JMeter配置以消除差异


  • 如果您正确配置JMeter,那么对于相同的请求,您应该获得相同或相似的响应时间。“正确”配置代表:

  • 为此,您应该创建并使用~5个线程的并行线程池

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

  • 加上。真正的浏览器下载嵌入式资源,但只下载一次,在后续请求中,资源将从磁盘缓存返回,而不会发出实际请求。HTTP缓存管理器支持缓存模拟和缓存控制头处理
  • 添加以表示cookie/会话并处理基于cookie的身份验证
  • 添加到测试计划以表示浏览器标题。这可能很重要,因为缺少标头可能会禁用服务器端压缩,因此客户端将收到更多的数据