我编写了一个简单的K6负载测试脚本,该脚本可以成功登录。 我编写了一个单独的K6负载测试脚本,该脚本执行了失败的登录尝试
它们当前是单独的脚本,您必须自己运行。
我想知道的是如何模拟一个负载测试中执行不同方案的用户?例如有效登录,无效登录,注销以及其他任何操作。
您是否将所有方案都放在一个脚本中?
答案 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中阅读有关如何配置方案及其不同选项的更多信息。