执行器 (Executors)
执行器 (Executors) 控制 k6 如何调度 VUs(虚拟用户)和迭代。您选择哪个执行器取决于您的测试目标以及您想模拟的流量类型。
在场景对象的 executor
键中定义执行器。其值是用连字符分隔的执行器名称。
export const options = {
scenarios: {
arbitrary_scenario_name: {
//Name of executor
executor: 'ramping-vus',
// more configuration here
},
},
};
所有执行器
下表列出了所有 k6 执行器及其文档链接。
名称 | 值 | 描述 |
---|---|---|
共享迭代 | shared-iterations | 一定数量的迭代在多个 VU 之间共享。 在一定数量的 VU 之间共享。 |
每个 VU 迭代 | per-vu-iterations | 每个 VU 执行固定数量的迭代。 |
固定 VU | constant-vus | 固定数量的 VU 在指定时间内尽可能多地执行迭代。 固定数量的 VU 在指定时间内尽可能多地执行迭代。 |
渐变 VU | ramping-vus | 可变数量的 VU 在指定时间内尽可能多地执行迭代。 固定数量的 VU 在指定时间内尽可能多地执行迭代。 |
固定到达率 | constant-arrival-rate | 在指定时间段内执行固定数量的迭代。 在指定时间段内执行固定数量的迭代。 |
渐变到达率 | ramping-arrival-rate | 在指定时间段内执行可变数量的迭代。 在指定时间段内执行可变数量的迭代。 |
外部控制 | externally-controlled | 通过 k6 的 REST API 或 CLI 在运行时控制和扩展执行。 通过 k6 的 REST API 或 CLI 在运行时控制和扩展执行。 |
注意
对于任何给定的场景,您无法保证特定的 VU 可以运行特定的迭代。
通过
SharedArray
和 执行上下文变量,您可以将特定的 VU 映射到测试数据中的特定值。因此,第十个 VU 可以使用数组中的第十项(或第六次迭代使用第六项)。但是,您无法可靠地将(例如)第十个 VU 映射到第十次迭代。