Visual Studio 负载测试。有没有一种方法可以指定您希望测试 运行 一分钟多少次以及多少分钟?

Visual Studio Load Testing. Is there a way to specify both how many times a minute you want a test to run and how many minutes?

我正在尝试在工作中进行一些负载测试,他们希望我使用 Visual Studio 的负载测试。要求的测试是每分钟登录 100 次,持续 30 分钟。

我看到了一种设置 1 分钟持续时间测试的方法,我可以让 100 个虚拟用户登录。我还可以设置一个测试让 100 个虚拟用户登录并进行测试 运行 30次。

所以我的问题是:有没有办法同时满足这两个要求?

在真正回答这个问题之前你需要问一些其他的问题,比如:

  • 用户登录后做什么?
  • 我们可以只进行登录吗?被测系统 (SUT) 会介意有数百(或数千)个用户已登录但未注销吗?

创建了一个可能包含思考时间的测试脚本,计算出在低负载下平均需要多长时间;让它成为 T 秒。算出一个虚拟用户(VU)在30分钟内可以进行多少次测试,即30*60/T.

测试规范是"to have 100 logins occur per minute for 30 minutes"。这意味着总共需要 100*30 次登录。我们知道一个VU能做多少次登录,所以把这两个数相除就可以算出需要多少个VU。该值为 (100*30)/(30*60/T)。重新排列和简化得到 T*5/3.

例子。假设一个测试需要 45 秒,那么 T == 45。因此我们需要 45*5/3 == 75 个 VU。如果我们使用恒定负载模式,这将在第一分钟提供 150 次登录,但在第二分钟只有 75 次,第三分钟大约有 150 次,第四分钟大约有 45 次,依此类推。总数平均为每分钟 100 个,思考时间和执行时间的正常变化意味着负载会随着时间的推移而分散。最好使用计算得出的阶梯式负载模式,以便在第一分钟开始进行 100 次测试。给定(假设的)45 秒文本执行时间,如果 75 个 VU 在 45 秒内启动,那么这些 VU 中的 25 个将在第一分钟内完成测试并可以开始另一个测试,从而给出 75+25 个测试在第一个开始分钟。因此,45 秒内 75 个 VU 与 15 秒内 25 个 VU 相同,与 3 秒内 5 个 VU 相同。因此,我们可以使用从 5 个 VU 开始的阶梯式负载模式,每 3 秒增加 5 个 VU,最大为 75 个 VU。

例子。假设一个测试需要 6 秒,所以 T == 6。因此我们需要 6*5/3 == 10 个 VU。如果我们使用恒定负载模式,这将在每分钟内提供大约 100 次登录,但至少在最初,这 10 个用户将保持同步,直到思考时间和执行时间的正常变化意味着负载随时间分散。同样,使用阶梯式负载模式可能会更好。我能看到的最简单的是从 1 VU 开始,每(一)秒增加 1 VU,最多 10 VU。