K6 负载测试 - 如何同时 运行 不同场景

K6 Load Testing - How to run different scenarios at the same time

我编写了一个简单的 K6 负载测试脚本来执行成功登录。 我已经编写了一个单独的 K6 负载测试脚本来执行不成功的登录尝试

它们目前是单独的脚本,您必须 运行 自己编写。

我想知道的是如何在一次负载测试中模拟用户执行不同场景?例如有效登录、无效登录、注销、任何其他操作。

你们会把不同的场景都放在一个脚本中吗?

有两种方法“旧”和“新”(从 v0.27.0 开始)。 旧的方法是有一个默认函数,在某些条件下选择执行一个或另一个,例如,每三次 VU 迭代都不成功,其他都是成功的:

export default function() {
  if (__ITER % 3 == 2) {
    call_to_unsuccessful_login();
  } else {
    call_to_successful_login();
  }
}

在上面的例子中,你显然需要在同一个脚本中定义这两个函数或者从另一个脚本中导入它们

在 v0.27.0 和新的执行模型之后,您有多个场景使用不同的执行程序,每个执行不同的“默认”函数。 所以在这种情况下,我们可以为成功和不成功的登录配置不同的执行计划,并直接调用执行它们的函数。

export let options = {
  "scenarios": {
    "successful": {
      "executor": "constant-vus".
      "vus": 2,
      "duration": 1m,
      "exec": "call_to_successful_login"
    },
    "unsuccessful": {
      "executor": "constant-vus".
      "vus": 1,
      "duration": 1m,
      "exec": "call_to_unsuccessful_login"
    }
  }
}

在这种情况下,调用...函数也需要在主脚本中导出。

您可以在 the documentation 中阅读有关如何配置场景及其不同选项的更多信息。