JMeter 线程组

张开发
2026/5/31 6:23:16 15 分钟阅读
JMeter 线程组
一、先搞懂JMeter 线程组到底是什么1. 通俗大白话解释JMeter 是纯多线程性能测试工具我们可以把1 个线程 1 个真实用户虚拟用户 VU线程组 一组统一管理、统一配置、统一执行的虚拟用户集合你在线程组里添加的 HTTP 请求、接口用例、断言、提取器都会被线程组里的每一个线程虚拟用户独立执行。简单说线程组就是你模拟的「并发用户池」所有接口性能测试、压力测试、并发测试全部都在线程组里配置、发起、执行。2. 对应你截图里的结构关系测试计划test_plan └── 线程组你模拟的并发用户池 ├── HTTP请求默认值全局配置 ├── 商品列表接口要压测的业务接口 ├── 查看结果树查看每个请求详情 └── 聚合报告统计整体性能指标线程组是整个 JMeter 脚本的根执行容器没有线程组你的接口请求根本不会运行。3. 线程组在性能测试里的核心作用模拟真实用户并发访问系统模拟多用户同时点接口控制并发用户数量、用户启动速度、持续压测时长控制接口循环调用次数、报错后的处理策略统一管理下属所有测试元件接口、断言、监听器、前置后置处理器二、线程组每一个参数含义1. 在取样器错误后要执行的动作取样器 你的接口请求这个选项是接口报错后这个虚拟用户要干嘛企业里 90% 场景都选第一个「继续」表格选项含义企业使用场景继续当前接口报错忽略错误继续执行这个线程后面的接口【最常用】正常性能压测单个接口报错不影响整体压测启动下一进程循环当前接口报错停止当前循环直接开启下一轮循环很少用停止线程报错的这个虚拟用户直接销毁退出不再执行稳定性测试、异常容错测试停止测试整个压测立刻全部停止所有线程全部退出禁止日常压测使用容易中断测试立即停止测试强制立刻终止所有线程不等待执行完成应急终止使用企业规范常规并发 / 压力压测一律选【继续】2. 线程数最核心参数线程数 同时并发访问系统的虚拟用户数量 VU你截图里填的100代表 JMeter 会创建100 个独立的虚拟用户同时对你的「商品列表接口」发起请求。每个线程完全独立各自维护 cookie、各自请求接口、各自统计响应时间互不干扰。⚠️ 重要误区很多新手以为线程数 每秒请求数 (QPS)完全不是线程数是并发用户数QPS 是接口每秒处理的请求量二者关系线程数平均响应时间秒举例100 线程接口平均响应时间 1 秒理论 QPS≈100如果接口响应变慢到 2 秒QPS 就会降到 50。3. Ramp-Up 时间秒线程启动时长递增并发企业必懂Ramp-Up 时间 把所有线程虚拟用户全部逐步启动完成总共需要的时间你截图里填的5秒结合 100 线程JMeter 会在5 秒内匀速创建完 100 个并发用户每秒启动线程数 总线程数 ÷ Ramp-Up 时间 100÷5 20 个 / 秒也就是第 1 秒启动 20 个用户并发访问接口第 2 秒再启动 20 个累计 40 并发第 3 秒累计 60 并发第 4 秒累计 80 并发第 5 秒累计 100 并发达到满并发压力企业为什么绝对不能把 Ramp-Up 填 0Ramp-Up0 代表0 秒瞬间启动 100 个线程100 个用户同时瞬间打满接口这叫「瞬时并发冲击」完全不符合真实用户行为真实用户是慢慢进入页面、逐步访问不是一瞬间 100 人同时点击。填 0 压出来的结果全是无效数据服务器会被瞬间打崩面试 / 工作里这么写直接被领导批评。企业规范 Ramp-Up 配置原则常规接口压测Ramp-Up时间 ≥ 线程数最少不低于线程数的 1/2比如 100 线程建议 Ramp-Up 填 60 秒 / 30 秒绝对不要填 5 秒你截图里 5 秒启动 100 线程启动太快属于强冲击压测4. 循环次数每个线程执行接口的次数你截图里填的1次且没勾选「永远」代表每 1 个虚拟用户只执行 1 次商品列表接口请求执行完就结束退出完整执行逻辑你当前配置5 秒内逐步启动 100 个用户 → 每个用户只请求 1 次商品列表接口 → 全部请求完成压测自动结束补充选项勾选「永远」线程会无限循环执行接口持续压测直到你手动点击停止按钮Same user on each iteration每次循环使用同一个用户保持 cookie 会话企业登录接口必勾选延迟创建线程直到需要按需懒加载线程节省压测机内存高并发压测建议勾选5. 调度器长时间持续压测专用勾选调度器后可以设置持续时间压测全程运行多长时间比如持续压测 30 分钟、1 小时稳定性测试启动延迟压测延迟多久再开始执行企业场景接口稳定性测试、长时间压力测试必须开调度器设置持续压测时长。三、线程组企业真实工作使用场景 实战案例下面全部是互联网公司测试岗日常工作的真实用法对应你手里的「商品列表接口」脚本逐个举例说明。场景 1常规接口并发性能测试最常用对应你的脚本业务需求验证商品列表接口在100 个用户同时访问时性能是否达标性能验收标准响应时间 500ms、错误率 0%、吞吐量满足要求企业标准配置线程数100模拟 100 个并发用户同时浏览商品列表Ramp-Up 时间60 秒60 秒匀速启动 100 用户每秒启动 1~2 个模拟真实用户逐步进入循环次数1 次每个用户只访问 1 次列表接口报错策略继续执行完成后看聚合报告响应时间、吞吐量、错误率是否满足需求你原来的 5 秒 Ramp-Up适合做极限冲击测试不适合常规性能验收测试。场景 2接口压力测试找到系统极限瓶颈业务需求找到商品列表接口最大能抗多少并发测出系统性能拐点企业做法逐步递增线程数50→100→200→300→400 线程依次压测观察聚合报告当并发提升后响应时间突然暴涨、错误率开始上升、吞吐量不再增长这个并发数就是系统极限瓶颈反馈给开发优化。场景 3接口长时间稳定性压测疲劳强度测试业务需求验证接口长时间高压运行是否会内存泄漏、接口越来越慢、报错企业标准配置线程数80日常线上 80% 峰值并发不要打满极限Ramp-Up 时间30 秒勾选「永远」循环开启调度器持续压测24 小时观察全天运行错误率是否为 0、响应时间是否平稳、服务器内存 CPU 是否稳定场景 4单用户多轮调用测试接口逻辑回归业务需求验证单个用户连续多次刷新商品列表接口是否正常、会话是否保持配置线程数1只模拟 1 个用户Ramp-Up 时间1 秒循环次数100 次这个用户连续刷新 100 次列表勾选 Same user on each iteration保持登录会话不变场景 5多业务接口混合并发压测真实线上业务场景线上用户不是只访问商品列表而是浏览列表→查看详情→加入购物车一套完整流程线程组配置线程数200 并发用户Ramp-Up120 秒线程组下依次添加商品列表接口→商品详情接口→加入购物车接口每个虚拟用户会按顺序完整执行一整套业务流程最贴合真实线上用户行为。四、企业线程组配置规范 常见踩坑避坑指南⚠️1. 新手 90% 都会踩的坑Ramp-Up 时间填 0瞬间打满并发结果无效面试直接扣分线程数开太大比如单机开 1000 线程压测机自己 CPU100% 卡死不是服务器性能差是你压测机崩了企业规范JMeter 单机线程数建议不超过 500高并发分布式压测循环次数永远 高线程数忘记停止压测把线上服务器打挂生产环境绝对禁止压测必须在测试环境混淆「并发线程数」和「每秒请求 QPS」对着聚合报告吞吐量乱分析2. 互联网公司通用线程组配置标准表格测试类型线程数Ramp-Up 时间循环 / 持续时间单接口功能验证11 秒1 次常规并发验收测试线上峰值并发 70%~80%≥线程数单次循环极限压力测试逐步递增加压≥线程数 / 2单次循环24 小时稳定性测试线上峰值 50%~60%30~60 秒持续 24 小时五、总结线程组 JMeter 虚拟用户池1 线程 1 真实用户所有接口都在线程组下执行线程数 并发用户数Ramp-Up 用户启动速度循环次数 每个用户调用接口次数企业日常工作用平缓 Ramp-Up 模拟真实用户逐步并发不用 0 秒瞬时冲击不同测试场景并发验收、压力测试、稳定性测试对应完全不同的线程组配置压测严禁在生产环境执行必须在独立测试环境操作

更多文章