0

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

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

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

您是否将不同的场景都放在一个脚本中?

4

1 回答 1

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... 函数也需要在主脚本中导出。

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

于 2020-08-06T08:03:17.400 回答