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

JMeter场景配置:1000线程单登录一次,后续请求循环执行1小时

如何在JMeter中实现“仅一次登录+循环执行后续请求”的性能测试场景

这个场景在JMeter里非常典型,我帮你梳理下具体的实现步骤,确保每个线程只登录一次,之后持续执行目标请求直到1小时结束:

1. 搭建基础测试结构

首先创建核心的组件层级,按这个结构来:

测试计划
├─ HTTP Cookie管理器
├─ (可选)CSV数据文件设置
├─ 线程组
│  ├─ 仅一次控制器(Once Only Controller)
│  │  ├─ 登录请求
│  │  └─ (可选)登录成功断言
│  └─ 循环控制器(Loop Controller)
│     ├─ 登录后请求1
│     ├─ 登录后请求2
│     └─ (可选)业务断言

2. 配置线程组

线程组是控制整体负载的核心,按你的需求设置:

  • 线程数:1000(模拟1000个并发用户)
  • Ramp-Up时间:建议设置为60秒(让1000个线程在1分钟内逐步启动,避免瞬间集中登录打垮服务器,可根据实际情况调整)
  • 持续时间(秒):3600(对应1小时运行时长)
  • 不要设置“循环次数”,让线程组靠持续时间控制结束时机

3. 用仅一次控制器实现单次登录

把你的登录请求(带账号、密码等参数)放到仅一次控制器下面:

  • 这个控制器的特性就是:每个线程在整个生命周期内,只会执行里面的请求一次,不管后续循环多少次,完美匹配“每个用户仅登录一次”的要求
  • 如果需要每个线程用不同的账号,添加CSV数据文件设置,把账号密码存成CSV文件(每行一个账号密码),配置“线程共享模式”为每个线程独立的,这样每个线程会获取唯一的账号

4. 用循环控制器实现后续请求持续执行

在仅一次控制器的同级,添加循环控制器,把所有登录后才能执行的请求放进去:

  • 不要给循环控制器设置固定的“循环次数”,留空即可
  • 这样循环控制器会一直重复执行里面的请求,直到线程组的1小时运行时长耗尽,刚好满足“登录后多次执行请求”的需求

5. 关键细节补充

  • HTTP Cookie管理器:一定要加!它会自动保存登录后的会话Cookie,让后续请求自动带上登录状态,否则登录后请求会因为未授权失败
  • 登录断言:建议给登录请求添加响应断言(比如检查返回的code为200,或者包含“登录成功”的关键字),确保每个线程都成功登录后再执行后续请求
  • 小批量验证:正式压测前可以先跑10个线程的小测试,通过“查看结果树”确认登录请求只执行一次,后续请求循环正常,再放大到1000线程

结果验证

运行测试后,通过聚合报告查看:

  • 登录请求的样本数应该等于线程数(1000),说明每个线程只执行了一次登录
  • 后续请求的样本数会远大于1000,说明一直在循环执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:38:31