首页/开发/软件测试速查/JMeter 命令行执行

JMeter 命令行执行

JMeter 命令行执行:jmeter -n -t plan.jmx -l result.jtl -e -o report/;-l 记录原始结果、-e 与 -o 生成 HTML 报告;CI 中应统一使用非 GUI 模式。

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

命令行压测是什么

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:内存扛不住,还看不出趋势。

易错点

  • 在 GUI 里跑大规模压测:界面开销干扰结果,本机资源被自己吃满,结论不可信
  • 给 -o 指向已有非空目录:JMeter 直接报错中断,配 -f 或先清理
  • 混淆 -J 与 -G:分布式下参数没有下发到执行机,并发数没生效
  • 压测机与被测服务同机部署:资源争抢让指标失真,至少把压测机独立出来

数据来源与参考

  • JMeter 官方文档:Non-GUI Mode(jmeter.apache.org)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌