K6负载测试-如何同时运行不同的方案

时间:2020-07-29 11:01:49

标签: k6

我编写了一个简单的K6负载测试脚本,该脚本可以成功登录。 我编写了一个单独的K6负载测试脚本,该脚本执行了失败的登录尝试

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

我想知道的是如何模拟一个负载测试中执行不同方案的用户?例如有效登录,无效登录,注销以及其他任何操作。

您是否将所有方案都放在一个脚本中?

1 个答案:

答案 0 :(得分:3)

从“旧”到“新”(从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"
    }
  }
}

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

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