2

我的目标是一个 API 的 10 倍负载,这个 API 包含 6 个端点,应该在测试中,但是每个端点都有自己的吞吐量,应该乘以 10。

现在,我将所有端点放在一个脚本文件中,但是为所有端点具有相同的吞吐量没有任何意义,我想运行 k6 并且当特定组已经达到所需的吞吐量时它必须自动停止.

例子:

  • api/GetUser> 当前 1k RPM > 目标 10k RPM
  • api/GetManyUsers> 当前 500 RPM > 目标 5k RPM

主要问题是当我将每个端点放在一个单独的脚本中的一个单独的组中时,这让 k6 使用相同的虚拟用户以相同的迭代计数迭代两个组/端点,这导致两个端点达到 10 倍,这不是必需的眼下。

还有一件事,我已经尝试在单独的脚本中分离所有端点,但这很难管理,这使得监控并不容易,因为所有 6 个端点都应该并行运行。

4

1 回答 1

1

您目前需要的内容可以用__ITER和/或__VU 执行上下文变量大致近似。有一个类似这样的默认函数:

if (__ITER % 3 == 0) {
  CallGetManyUsers(); // 33% of iterations
} else {
  CallGetUser(); // 66% of iterations
}

在不久的将来,我们还计划在单个脚本中添加一种更优雅的方式来支持多场景测试:https ://github.com/loadimpact/k6/pull/1007

于 2019-12-23T12:55:03.050 回答