如何计算负载测试中并发用户的数量?

11

我们在 Load Impact 经常遇到这个问题,所以我想把它添加到 Stack Overflow 社区中,以便更容易找到。

在进行负载测试时,如何计算需要模拟的并发用户数(VUs),以便使用系统将正常看到的同类流量进行压力测试,这个流量可能是每月、每周或每天的。

1个回答

22

进行负载测试需要指定在测试期间模拟多少并发用户。换句话说,同时有多少个模拟用户将活动,加载内容或与您的站点/应用程序交互。不幸的是,在查看例如 Google Analytics 时,我们只能看到网站每天或每月有多少访问量。一个站点每月可以有一百万次访问量,但仍然只会体验到最多100个并发访问者。

要将 Google Analytics 或其他分析系统中的“X 次访问”转换为用于负载测试的“并发用户”指标,您可以使用以下方法。

首先,找出两件事:

  1. 您需要短时间内站点/应用程序达到高峰流量水平的总访问数。这可以通过例如 Google Analytics 轻松找到,方法是查看一个月内单个小时的最高访问量。查看已经看到最多访问量的那一天,并深入了解那天最繁忙的小时以及在该小时内有多少访问量。记下此值。在本文中我将称此值为“高峰每小时访问量”。

  2. 您需要知道用户与您的站点/应用程序互动的平均时间。在 Google Analytics 中,这称为“平均会话持续时间”,我在本文中也将称它为“平均站点停留时间”。如果此值对您的站点/应用程序根据查看的时间段不同而变化很大,则可能要使用您发现的较大值,以确保安全。我们希望所有时间都以秒为单位,因此,例如 Google Analytics 告诉您“00:03:19”(3分钟19秒),则应将199作为平均会话持续时间记下。

当您拥有这两个值时,使用以下公式计算要在负载测试中使用的并发用户数:

concurrent_users = (peak_hourly_visits * average_session_duration) / 3600

只要负载测试中的每个模拟用户(VU)表现得真实可信(即很好地模拟了真实用户),您现在将能够使用与正常高峰流量相同类型的流量来压力测试您的站点/应用程序。


你应该运行多长时间的测试?假设平均会话持续时间为3分钟。 - Jack Marchetti
这很难在简短的评论中回答,但是如果您尝试模拟典型会话,我会建议您运行测试足够长的时间,以覆盖平均会话持续时间的多个倍数。如果您运行一个逐渐升级的测试,并且希望在逐渐升级期间获取数据,则希望逐渐升级至少为平均会话持续时间的3倍(即在此情况下为9分钟),然后您可能希望保持最大水平至少一个会话持续时间(3分钟)。但更长的测试时间总是更好的-它可以给您更好(更准确)的结果。 - Ragnar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接