首页/开发/软件测试速查/JMeter 分布式压测

JMeter 分布式压测

JMeter 分布式压测:一台控制机协调多台负载机(jmeter-server)共同施压,用于突破单机瓶颈;前提是版本、脚本与数据文件统一,并核对各负载机时钟。

软件测试速查开发更新于 2026-10-13

JMeter 分布式是什么

JMeter 分布式(remote)模式由一台控制机(controller)指挥多台执行机(worker 或叫 slave)同时施压,突破单机端口与 CPU 上限。控制机负责下发测试计划与汇总结果,执行机各自产生负载。部署要点是版本一致、时间同步、网络互通;测试数据要分片,否则各执行机发同样的数据,等于把单机流量复制多份。

基本信息

角色划分控制机调度与聚合,执行机施压与回传
启动方式执行机运行 jmeter-server,控制机用 -r 远程启动全部节点
配置项remote_hosts 列出执行机地址,RMI 端口需放通
一致性要求JMeter 版本、JDK 版本、时间与测试计划文件完全一致
数据分片用 CSV 分片或多个数据文件,让各执行机数据不重叠
结果回传默认实时回传,量大时先用执行机本地结果文件再统一合并

常用命令

常用命令
# 执行机启动(每台执行机各跑一遍)
jmeter-server -Djava.rmi.server.hostname=10.0.0.11

# 控制机非 GUI 模式远程执行:-r 启动全部远程节点
jmeter -n -t plan.jmx -r -l result.jtl -e -o report/

# 只跑指定执行机:-R
jmeter -n -t plan.jmx -R 10.0.0.11,10.0.0.12 -l result.jtl
# 结果文件在控制机合并后生成 HTML 报告

典型使用场景

  • 高并发目标:单机端口与线程受限时,多机合计达到目标并发。
  • 带宽饱和场景:单机网卡打满,分布式分摊出压流量。
  • 跨区域验证:从不同地域发起,观察就近接入与调度效果。
  • 稳定性长跑:多机分担长时间压测,单机资源不成为瓶颈。
  • 对照实验:固定并发下调整执行机数量,验证压力机线性度。
先验证压力机能力:单机跑满的正常表现与报错要心中有数,否则执行机自身瓶颈会伪装成被测系统问题。
网络质量影响回传:跨机房部署时,结果实时回传会引入延迟,必要时改为本地落盘。
参数化收尾:结束前确认各执行机数据消费量,避免一边跑完一边还在发。

易错点

  • 执行机数据重复:每台都从第一行读 CSV,等价于同一批请求打多份。
  • 版本与时区不一致:计划解析差异或时间戳错乱,结果无法汇总。
  • RMI 与防火墙问题:端口未放通,控制机连不上执行机却难定位。
  • 控制机成为瓶颈:结果实时回传把控制机压垮,测试提前中止。
  • 忽略压力机校准:执行机自身打满,结论误判为被测系统容量上限。

数据来源与参考

  • JMeter 官方文档:Remote Testing(jmeter.apache.org)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌