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

如何无需duration参数实现多VU同时发送请求?

实现k6瞬间并发指定数量请求的方案

你可以通过结合k6/execution模块控制测试终止,让所有VU在启动后立即执行请求,完成后直接结束测试,就能实现同一时刻发送指定数量的请求,不需要依赖duration参数,也不受VU的RPS限制。

基础实现脚本

import http from 'k6/http';
import { test } from 'k6/execution';

export const options = {
  vus: 5, // 这里设置你需要的并发请求数量
};

export default function () {
  // 替换为你的实际请求(GET/POST等,可添加参数)
  http.get('https://your-target-api.com/endpoint');
  
  // 每个VU完成请求后触发测试终止,最后一个VU执行时会结束整个测试
  test.abort();
}

精准同步版(确保绝对同时触发)

如果需要更严格的同一时刻触发,可以用k6/sync模块的barrier做同步,避免因启动顺序导致的微小时间差:

import http from 'k6/http';
import { barrier } from 'k6/sync';
import { test } from 'k6/execution';

export const options = {
  vus: 5,
};

export default function () {
  // 等待所有VU都到达这个节点,再一起执行请求
  barrier('request-start').wait();
  
  http.get('https://your-target-api.com/endpoint');
  
  test.abort();
}

核心逻辑说明

  • vus:5直接指定并发的请求数量,每个VU对应一个请求
  • test.abort()会在当前VU完成请求后终止测试,当所有VU都执行完这个方法,测试立即结束,不会持续发送请求
  • 同步版的barrier能消除VU启动的微小延迟,确保所有请求在同一毫秒级时间点发出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:01:04