You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

k6中batch并行请求搭配-u 4参数的执行逻辑咨询

嘿,这个问题问到点子上了,我来给你把k6的执行逻辑讲得明明白白:

1. 总请求执行次数:确实是2×4=8次

k6里的虚拟用户(VU)是完全独立的执行单元,每个VU都会完整跑一遍你写的脚本逻辑——包括batch()里的并行请求。

你用-u 4指定4个VU,每个VU都会执行一次包含2个并行请求的batch(),所以总请求数就是2(每个batch里的请求数) × 4(VU数量)= 8次。要是你还指定了迭代次数(比如--iterations 3),那总请求数就是2×4×3=24次,因为每个VU会跑3次完整的脚本迭代。

举个直观的脚本例子:

import http from 'k6/http';
export default function () {
  // 每个VU执行到这里时,会并行发起这2个请求
  http.batch([
    ['GET', 'https://test-api.k6.io/public/crocodiles/1/'],
    ['GET', 'https://test-api.k6.io/public/crocodiles/2/'],
  ]);
}

用k6 run -u 4 script.js运行的话,最终统计里的请求总数就是8次。

2. 虚拟用户不是按顺序执行,是并行运行的

k6的VU是同时启动、并行执行的,不存在“逐个顺序跑”的情况。-u 4意味着k6会在测试开始时立刻创建4个独立的VU实例,它们各自独立地执行脚本逻辑,互相之间不会等待对方完成。

只有当你在脚本里主动加了同步逻辑(比如用k6/execution模块做VU间的协调,或者用group强制串行),才会改变这种并行行为——但默认情况下,所有VU都是同时跑的,每个VU内部的batch()请求也是并行发起的。

内容的提问来源于stack exchange,提问作者microwth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 11:42:50