命令行压测是什么
JMeter 的官方建议是把压测分为两段:GUI 只用来编辑与调试 .jmx 计划,正式压测必须在非 GUI 模式执行(jmeter -n)。命令行模式资源占用小、结果可直接生成 HTML 报告,适合放在服务器与 CI 里跑全量;在 GUI 里压测会因界面渲染开销污染结果。
基本信息
| 非 GUI 执行 | jmeter -n 关闭界面运行计划 |
|---|---|
| 计划与结果 | -t 指定 .jmx,-l 指定结果 .jtl 文件 |
| HTML 报告 | -e -o <目录> 生成报告,目录必须为空或不存在 |
| 参数覆盖 | -J 传单个属性(如并发、时长),-G 供分布式全局 |
| 分布式 | -R 指定远程执行机;-X 让远程机跑完自动退出 |
| 覆盖输出 | -f 强制清空已有结果文件与报告目录 |
最小示例
最小示例
jmeter -n -t plan.jmx -l result.jtl # 非 GUI 跑计划,结果写 jtl
jmeter -n -t plan.jmx -l r.jtl -e -o report # 跑完生成 HTML 报告目录
jmeter -n -t plan.jmx -Jthreads=200 -Jramp=60 # 用属性覆盖并发与爬坡
jmeter -n -t plan.jmx -l r.jtl -f # 输出已存在时强制覆盖典型使用场景
- CI 流水线压测:定时或按需在服务器上跑全量场景
- 参数化复用计划:-J 覆盖线程数与时长,同一 jmx 服务多环境
- 生成汇报报告:-e -o 产出带图表与分位的 HTML
- 分布式压测:多台执行机分担压力,主控统一下发
- 夜间基线:固定时段跑基准场景,为回归对比积累数据
- 生产影子流量回放:在隔离环境用小倍率重放真实流量模型
关键参数速览
| 参数 | 作用 | 注意 |
|---|---|---|
| -n | 非 GUI 模式 | 正式压测必须加 |
| -t | 计划文件 | 先在 GUI 调通再进 CLI |
| -l | 结果文件 | 大压测下文件增长快,留足磁盘 |
| -e -o | 生成 HTML 报告 | 目录非空会报错,配 -f 或换目录 |
| -J | 覆盖属性 | 区分 -J 与 -G 的生效范围 |
调整计划参数的顺序:GUI 里小规模调试正确性,CLI 上放大压力测性能;两类目标的结论不要混用。
单机压测前检查系统限制:文件句柄、端口回收、带宽都会先于被测系统成为瓶颈,压测机饱和时数字全部作废。
结果文件用工具或报告消费,别直接拿表格软件打开几百 MB 的 .jtl:内存扛不住,还看不出趋势。