1. 概述

性能测试是软件开发的重要组成部分。它有助于揭示瓶颈和错误,确保我们的应用程序响应迅速。特别是对于Web应用而言,加载时间和用户交互反应时间的性能至关重要。

在这篇文章中,我们将探讨两种有助于检测和优化加载时间问题的指标: 延迟(latency)加载时间(load time)。 我们将学习这些指标的定义、它们之间的区别,以及如何使用性能工具JMeter来测量它们。

2. JMeter中的延迟和加载时间指标

在JMeter中,延迟和加载时间都是衡量往返时间的指标,即从客户端发送请求到服务器接收响应的时间。然而,两者之间存在关键区别。

延迟定义为从发送请求前到接收到响应第一部分的时间,加载时间则是从发送请求前到接收到响应最后一部分的时间。

在JMeter中,这两个指标都包含了构建请求所需的时间。延迟还包括响应第一部分构建的时间,而加载时间则包括整个响应构建的时间。构建时间不包括响应渲染或任何客户端代码执行的时间。

3. 如何在JMeter中测量延迟和加载时间

我们可以通过在JMeter中创建一个测试计划,使用 View Results Tree Listener 来测量延迟和加载时间。

首先,打开工具时,JMeter会自动创建一个测试计划,我们将其重命名为LatencyVsLoadTime

接下来,右键点击测试计划,选择添加 -> 线程(用户) -> 线程组,创建一个线程组:

然后,添加一个HTTP请求,右键点击Thread Group,选择添加 -> 样本器 -> HTTP请求

最后,我们需要一个监听器来追踪请求的结果。通过右键点击Thread Group,选择添加 -> 监听器 -> View Results Tree来实现:

现在,我们的测试计划配置齐全,接下来配置HTTP请求。

为此,我们选中HTTP Request,设置Path为我们想要测试的URL,例如https://www.google.com

保存测试计划后,点击顶部栏的磁盘图标,即可执行。选中HTTP Request,然后点击顶部栏的播放按钮:

最后,通过查看Sampler结果标签下的View Results Tree元素,我们可以查看测试结果。在示例中,请求的延迟为215毫秒,加载时间为218毫秒:

4. 总结

本文讨论了两种性能指标——延迟和加载时间,它们有助于识别并改进应用程序的加载速度,提升用户体验。

首先,我们在JMeter的上下文中定义了这些指标,并详细解释了它们的区别。接着,我们了解了如何使用JMeter创建一个包含HTTP请求的测试计划,以便测量这些指标。最后,我们学习了如何执行测试计划并查看结果。

本文所演示的JMeter测试计划已在GitHub上提供。