性能测试有时会被误解为用高吞吐量的请求锤击 服务器 ,但思考时间、节奏和延迟等概念有助于我们实现生产过程中发生的真实用户模式。 将性能测试场景设计为接近真实的用户模式 对于实现发现 应用程序中真正问题和瓶颈的结果非常重要。 在同一上下文中,在开发负载测试方案时,思考时间和起搏非常重要。 在本文中,我们将介绍思考时间、节奏和延迟,以及它们的含义、最佳实践,以及如何使用 LoadView 将这些指标设置为负载测试方案的一部分。 让我们首先了解负载 测试 中的思考时间和节奏在负载测试中意味着什么。

什么是思考时间?

在负载测试中思考时间是单个用户每个操作之间的时差。 用户在浏览应用程序时会花费一些时间(思考时间),然后再在网站上执行一些操作。 例如,在电子商务 Web 应用程序上,用户单击产品磁贴,转到其产品显示页面,然后等待在那里使用和阅读此页面上的内容,然后单击“添加到购物车”按钮。 从单击产品磁贴到单击”添加到购物车 “所花费的时间 称为思考时间。 思考时间的价值因用户而异,但在我们的测试方案中,我们可以采取平均思考时间。

通常,当您考虑负载和压力测试时,您只想 针对您的 Web 应用程序、网站或 API 提供大量并发用户,以查看它们在压力下的表现。 虽然压力测试在性能测试 中占有一席之地,但这种类型的性能测试不适合从用户的角度理解 性能,因为这并不能真正模拟实际的真实场景。 这就是思考时间的用武之地,以帮助更好地 模拟 用户旅程步骤,例如购买路径、搜索产品或登录帐户。 每个步骤都有不同的思考时间值,在负载测试时必须考虑到这些值。

什么是起搏?

在负载测试期间使用起搏,以确保我们以所需的事务/秒运行测试。 这是业务流的每个完整迭代之间的时差。 它帮助我们控制以秒发送到服务器的请求计数。 起搏与思考时间略有不同。 如上所述,认为时间是迭代或步骤中操作之间的延迟。 正如我们已经提到的,负载测试不是要在无延迟的情况下用尽可能多的请求攻击服务器,可以通过找到正确的起搏值来实现具有所需吞吐量的测试计划。 此外,起搏和思考时间也有助于更好地模拟用户的体验,并提供更逼真的负载测试。 迭代之间通常有很短的时间,因此在设置负载测试时需要考虑一个重要因素。

为什么在负载测试方案中引入延迟很重要

在完整阶段推出之前对应用程序进行负载测试,可使我们避免最终用户面临一些问题(如超时、页面响应缓慢和停机)的潜在不良体验。 为了接近现实的负载测试结果并发现问题(如果有),我们需要使测试场景尽可能现实。 在我们的测试方案设计中考虑思考时间和节奏有助于我们测试服务器的队列管理、线程利用率和内存管理在繁重负载下的行为。 例如,如果我们尝试在每个并发用户操作之间添加思考时间,则在此延迟期间,服务器倾向于从队列中选取其他挂起的任务,执行下一个任务,然后再次选择旧任务。 此步骤正是实际用户在生产中发生的情况。 添加思考时间也会增加用户在应用程序上花费的时间,从而标识与服务器的并发用户处理容量相关的问题。

如何计算应用程序的延迟

每秒(TPS)并发虚拟用户、延迟和交易的数量因每个应用程序而异。 因此,为了计算应用程序的延迟,我们可以使用下面的公式。

负载测试持续时间(以秒为单位) * (TPS + 延迟) * 并发用户计数 = 总事务

例如,我们希望生成 100,000 个事务,每个事务的响应时间为 5 秒,我们将运行测试 10 分钟(600 秒)。 假设我们有 3 秒的思考时间在延迟中,让我们计算需要多少并发用户。 使用上述公式,我们可以计算并发用户计数。 在我们的案例中,这将是100,000/(8*10*60),出来是大约21个用户。 这样,我们就可以找到负载测试所需的延迟和数字。

运行负载测试前的最佳实践

为了从性能测试中获得最佳和最准确的结果,我们应考虑回答以下问题,这些问题侧重于负载测试期间的最佳实践。

并发用户数

我们需要了解我们希望对应用程序进行基准测试的预期并发用户。

模拟真实用户测试方案

设计测试方案时牢记实际用户旅程、思考用户花费的时间以及每次测试之间的延迟。

地理分布虚拟负载

如果我们的应用程序预期接收来自全球各地的流量,则生成负载的负载喷油器应根据特定的地理位置进行分离。

设置斜坡周期

设置爬坡时间段还有助于逐步增加应用程序 的规模 ,并使我们的测试场景符合应用程序行为。

测试持续时间

测试的时间长短对于了解服务器在连续直线负载下的行为方式非常重要。

使用 LoadView 添加延迟

LoadView 包括 EveryStep Web 记录器,它通过记录我们在浏览器中执行的操作,提供创建测试方案的方便。 它模仿用户执行的确切步骤和行为,收集所有数据点,如选择器、操作和延迟。 在创建测试方案时,我们需要模拟实际用户旅程,同时考虑时间延迟。 一旦我们停止录制,它会创建一个脚本,可以与所需的并发用户重新运行。 正如您从下图中可以看到的,我们还可以根据需要修改脚本并更新单个步骤的延迟。 了解有关编辑”每步 Web 记录器”脚本的信息

向脚本添加延迟

开发与应用程序和用户旅程进行真实用户交互的脚本被认为是帮助我们在负载测试中获得准确结果的最佳方法。

用户行为配置文件

此外,您还可以选择从 LoadView 平台修改用户行为。 如下图所示,您可以选择”正常 Dela y”或选择 “自定义延迟” 来设置应用程序的特定用户行为和延迟。 了解有关调整用户行为的详细了解

调整用户行为

分手想法:负载测试:思考时间、起搏和延迟

在将应用程序发送到生产环境之前,性能测试是一个关键方面。 它只能帮助我们找到那些准确的性能相关问题,如果遵循最佳实践和测试方案,涵盖应用程序的实际用户旅程。 在本文中,我们研究了在创建测试场景设计过程中记住时间和起搏延迟如何有助于找到系统的下面问题。 它可以帮助我们在高负载下提前找到页面 超时、页面响应缓慢、响应时间和服务器错误等问题。

这些策略可以帮助我们走向响应迅速和可靠的应用程序和网站。 现在请尝试 EveryStep Web 记录 器,看看可以为应用程序创建脚本的速度有多快。

立即注册 LoadView 并接收免费的负载测试。 有关负载视图平台的问题? 联系我们的 支持团队 ,与我们的性能工程师交谈。