为什么在K6测试中迭代次数不应该小于vus ?以及这个性质的意义



我是测试K6的新手。我已经看了K6的文件,但我不清楚"vus"one_answers";iterations"。我理解vus =访问声明的URL的人数,但我不确定"迭代"。

  • 有人能帮我解释清楚吗?下面是我的代码。我的目标是测试一个Restful API,试着在5分钟内找出大约100个用户连续使用这个API的性能。
  • 我的代码正确吗?因为我明白,我们只需要"我们"。和";duration"可以达到我提到的测试目标(100个用户在5分钟内连续使用这个API)(. 那么为什么需要添加"迭代"呢?
  • 如果我将迭代更改为100,1000或删除它,会有什么不同?
import http from 'k6/http';

export let options = {
vus: 100,
iterations: 20,
duration: '300s'
};
export default function () {
http.get('https://test.k6.io/contacts.php');
}

如文档所示,iterations是定义共享迭代执行器的快捷方式,而指定duration是定义常量vu执行器的快捷方式。这两者是相互冲突的,所以你基本上只需要使用其中一个。

您应该能够注释掉iterations选项。完成迭代的次数(即执行导出的默认函数的次数)将完全基于vu在指定的duration中能够实现的数量。

您可能还对不同的执行器感兴趣:如果您知道请求速率,例如每秒10个请求,则可以使用恒定到达速率执行器:

import http from 'k6/http';

export let options = {
scenarios: {
default: {
executor: 'constant-arrival-rate',
duration: '5m',
rate: 10, timeUnit: '1s', // 10 per second
preAllocatedVUs: 8
}
}
};
export default function () {
http.get('https://test.k6.io/contacts.php');
}

最新更新