【问题标题】:K6 Load Testing - How to run different scenarios at the same timeK6 负载测试 - 如何同时运行不同的场景
【发布时间】:2020-07-29 11:01:49
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: k6


    【解决方案1】:

    有两种方法,“旧”和“新”(从 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 中阅读有关如何配置方案及其不同选项的更多信息。

    【讨论】:

    • 非常感谢Михаил Стойков。我现在已经开始工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多