0

我正在运行负载测试,最终的统计数据显示了请求的数量

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

当我用 2 次迭代执行 100 个 VU 的测试时。77requests 是应该由单个用户完成的数量,所以我认为它只显示单个 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!

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

4

1 回答 1

1

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

正如消息所说,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

于 2020-03-09T13:00:34.440 回答