固定 VU
使用 constant-vus
执行器,固定数量的 VU 在指定时间内尽可能多地执行迭代。
作为此执行器的快捷方式,请使用 VUs 和 duration 选项。
选项
除了通用配置选项外,此执行器还有以下选项
选项 | 类型 | 描述 | 默认值 |
---|---|---|---|
duration(必填) | 字符串 | 场景总持续时间(不包含 gracefulStop )。 | - |
vus | 整数 | 并发运行的 VU 数量。 | 1 |
何时使用
如果您需要特定数量的 VU 在一定时间内运行,请使用此执行器。
示例
此示例安排 10 个 VU 持续运行 30 秒。
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
discardResponseBodies: true,
scenarios: {
contacts: {
executor: 'constant-vus',
vus: 10,
duration: '30s',
},
},
};
export default function () {
http.get('https://test.k6.io/contacts.php');
// Injecting sleep
// Total iteration time is sleep + time to finish request.
sleep(0.5);
}
观察
以下图表展示了示例脚本的性能
根据我们的测试场景输入和结果
- VU 数量固定为 10 个,并在测试开始前初始化;
- 测试总持续时间固定为配置的 30 秒;
default
函数的每次迭代预计大约需要 515 毫秒,即约 2 次/秒;- 因此,最大吞吐量(最高效率)预计约为 20 次迭代/秒,即 2 次迭代/秒 * 10 个 VU;
- 我们看到在测试的大部分时间内达到了并保持了最大吞吐量;
- 因此,总共执行了大约 600 次迭代,即 30 秒 * 20 次迭代/秒。