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

如何用k6逐步增加虚拟用户并限制每个用户仅执行一次迭代?

解决k6中虚拟用户逐步增加且每个仅执行一次迭代的问题

原脚本使用ramping-vus执行器无法限制每个虚拟用户仅执行一次迭代,因为该执行器默认会让每个VU持续循环执行迭代逻辑。要实现需求,推荐使用per-vu-iterations执行器,它可以精准控制每个VU的迭代次数,同时支持通过阶段配置逐步增加VU数量。

修改后的脚本

import { sleep } from 'k6';
import http from 'k6/http';

export let options = {
  scenarios: {
    single_iter_per_vu: {
      executor: 'per-vu-iterations',
      vus: 0, // 初始虚拟用户数为0
      stages: [
        { duration: '1m', target: 50 }, // 1分钟内逐步将VU数量提升至50
      ],
      iterations: 1, // 每个VU仅执行1次迭代
      maxDuration: '2m', // 设置最大运行时长,确保所有VU完成后脚本终止
    },
  },
};

export default function () {
  // 这里替换为你的实际业务逻辑,比如发送HTTP请求
  // http.get('https://your-api-endpoint.com');
  sleep(3);
}

关键配置说明

  • per-vu-iterations执行器:专门用于控制每个虚拟用户执行固定次数的迭代,iterations: 1直接实现了每个VU仅运行一次的要求。
  • stages阶段配置:通过初始vus:0和目标阶段的target:50,实现1分钟内虚拟用户数量逐步增加的效果。
  • maxDuration:设置合理的最大运行时长,避免脚本在所有VU完成迭代后仍持续等待,可根据你的业务逻辑耗时调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:53:13