K6测试执行疑问:控制台显示01/10 VUs是否代表顺序执行?
k6测试执行逻辑疑问解答
你看到的控制台显示不代表K6按顺序执行测试,这个显示和迭代执行顺序没有关联,具体说明如下:
- 首先解释控制台进度条字段含义:你看到的
[======================================] 01/10 VUs中,第一个数字是当前已激活的虚拟用户(VU)数量,第二个数字是当前运行阶段配置的目标VU数量,展示的是VU的扩容进度,不是迭代的执行计数。 - 你配置的stage属于k6的ramping VU执行器,
{ target: 10, duration: '30s'}的规则含义是:在30秒的时间窗口内,均匀地将VU数量从初始值(未额外配置时默认为1)逐步提升到10个。你看到1/10的状态,只是测试刚开始的阶段,此时仅完成了1个VU的启动,剩余9个VU会在剩下的时间里按时间节奏陆续启动,到30秒时刚好达到10个激活VU的目标。 - VU的执行逻辑:不同VU之间是完全独立的并行执行单元,新VU的启动只和你配置的阶段时间规则有关,完全不需要等待其他VU的迭代完成。只有单个VU内部的迭代是串行的,即同一个VU必须等前一次测试逻辑执行完毕,才会启动自己的下一次迭代。
- 如果你想要测试启动时就直接用10个VU全量并行,可以把配置修改为如下形式:
export const options = { vus: 10, duration: '30s' }
这个配置下测试启动就会直接初始化10个VU同时运行,控制台进度条会直接显示10/10 VUs。
内容的提问来源于stack exchange,提问作者Taras Fityo
相关产品推荐
相关产品推荐

