了解似曾相识指标和统计数据

understanding vu metrics and statistics

我正在 运行 进行负载测试,最终统计显示请求数

http_reqs..................: 77

当我用 2 次迭代对 100 个 VU 执行测试时。 77 请求是应该由单个用户完成的数量,所以我认为它只显示单个 VU 统计信息。

然后我切换到 1000 个 VU 和 100 次迭代这个结果

http_reqs..................: 3803

对于 1000 个虚拟用户和 100 次迭代,这感觉有点小,并且我认为它显示每个虚拟用户的请求数的想法无效。

当运行测试时,它会将记录添加到数据库中。所以我预计至少有 1000 条新记录。但是每个运行.

只加100

它还提供了

的信息
All iterations (100 in this test run) are shared between all VUs, so some of the 1000 VUs will not execute even a single iteration!

所以我认为有些东西不起作用?

测试结束时的所有统计数据都是针对整个测试持续时间。

正如消息所说,iterations 在 VU 之间共享......或者换句话说,iterations 是整个测试将进行多少次迭代,而不是每个单独的 VU。 VU 只是执行迭代。

所以在你的情况下,当你有 77 个请求时,它们实际上是从 2 次迭代中生成的,而当你有 3803 个请求时,它们是从 100 次迭代中生成的。有多少 VU 被用来制作这些,并不真正相关。

我猜(因为 77 * 50 != 3803)您有一些逻辑会在每次迭代时发出或不发出请求,以便它们发出不同数量的请求?

正如我之前提到的,迭代是针对整个测试的,所以如果您希望 100 个 VU 进行 2 次迭代,您需要实际说您想要 200 次迭代。这也不能保证,因为 VU 会尽可能快地进行迭代。因此,在这个示例中,您很有可能会得到 1 个完成 3 次迭代的 VU 和 1 个完成 1 次迭代的 VU,或其他一些变体。总的来说,这不是问题,但一两个月后(希望如此)就会解决这个问题 :D