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

JMeter性能测试:每分钟使用动态user_id的场景模拟求助

解决方案

问题根源

当前配置大概率是Loop Controller仅执行了一轮,或是Cache Manager未正确实现不同user_id组的循环加载,导致仅触发600次请求就停止。

配置步骤

1. 数据源准备与加载

  • 将10000个user_id保存为CSV文件,每行一个ID。
  • 添加CSV Data Set Config组件,配置:
    • 文件名:填写你的CSV文件路径
    • 变量名:例如user_id
    • 循环模式:选择All rows
    • 线程结束时重置:设为False
    • 共享模式:选择All threads,确保所有线程共享同一数据源指针

2. 控制每分钟请求量

  • 选择以下任一方式精准控制每分钟600次请求:
    • 方式一:添加Constant Timer,设置延迟时间为 ${__javaScript(Math.floor(60000/600),)},平均每100ms发送一次请求。
    • 方式二:添加Precise Throughput Timer,设置目标吞吐量为600,时间单位选Minute,直接管控每分钟请求数。

3. 实现分批次切换user_id

放弃Loop Controller+Cache Manager的组合,改用以下组件搭配:

  • 线程组设置:线程数设为600,循环次数选Forever。
  • 添加Runtime Controller,设置运行时间为1800秒(即30分钟),将请求、CSV配置等核心逻辑包裹在内。
  • 添加Counter组件:变量名设为batch_counter,起始值0,递增步长1,最大值设为16(10000/600≈16组,足够覆盖30分钟测试)。
  • 修改CSV Data Set Config:设置Start index为${__javaScript(${batch_counter}*600,)},End index为${__javaScript((${batch_counter}+1)*600-1,)},实现每组600个连续ID的加载。
  • 添加Cron Timer,表达式设为0 * * * * ?,每分钟触发一次batch_counter递增,自动切换到下一组user_id。

4. 验证请求计数

  • 添加Summary Report和View Results Tree组件,实时监控请求量是否符合预期。
  • 若AWS Cloud指标与JMeter本地统计仍有差异,检查:
    • 线程组循环次数是否为Forever
    • Runtime Controller的时长是否正确设为1800秒
    • CSV Data Set Config的共享模式是否为All threads

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:52:03