0%

使用命令行执行

JMeter 命令行执行全指南:非 GUI 模式参数与实践

JMeter 的命令行模式(非 GUI 模式)是性能测试的常用方式,尤其适合在服务器上运行大型测试或集成到自动化流程中。相比 GUI 模式,它更节省资源、运行更稳定,且支持通过参数灵活配置测试。本文将详细介绍命令行参数及实操案例。

核心命令行参数解析

JMeter 命令行的基本格式为:

1
jmeter [选项] -t [测试计划文件]

常用核心参数如下:

参数 含义与用法
-h 查看帮助信息,列出所有可用参数并退出。
-n 以非 GUI 模式运行(必选,命令行执行的核心参数)。
-t 指定测试计划文件(.jmx)的路径(必选,如 -t ./testplan.jmx)。
-l 指定结果日志文件(如 .csv.jtl),用于后续分析(如 -l ./result.jtl)。
-r 远程执行,启动所有在 jmeter.properties 中配置的远程服务器。
-R 指定远程服务器列表(覆盖配置文件),如 -R server1:1099,server2:1099
-e 测试结束后生成 HTML 报告。
-o 指定 HTML 报告的输出目录(需与 -e 配合,目录必须为空或不存在)。
-H 设置代理主机(如 -H proxy.example.com)。
-P 设置代理端口(如 -P 8080)。
-J 定义全局属性(覆盖 jmeter.properties),如 -Juser.properties=my.properties
-G 定义远程服务器属性,如 -Gthread_count=100
-L 设置日志级别(如 -LDEBUG-LINFO)。

基础命令行执行案例

1. 简单运行测试计划并保存结果

1
2
3
4
5
# Windows 系统
jmeter -n -t D:\testplans\HTTP请求.jmx -l D:\results\result.csv

# Linux/Mac 系统
./jmeter -n -t /home/jmeter/testplans/HTTP请求.jmx -l /home/jmeter/results/result.csv
  • 说明:-n 启用非 GUI 模式,-t 指定测试计划,-l 将结果写入 result.csv

2. 运行测试并生成 HTML 报告

1
2
# 生成 HTML 报告(需确保 output 目录不存在或为空)
./jmeter -n -t ./testplan.jmx -l ./result.jtl -e -o ./html_report
  • 执行完成后,html_report 目录中会生成可直接打开的 HTML 报告,包含响应时间、吞吐量等可视化图表。

3. 远程执行测试(多服务器分布式压测)

1
2
3
4
5
# 启动配置文件中定义的所有远程服务器
./jmeter -n -t ./testplan.jmx -r -l ./distributed_result.jtl

# 指定特定远程服务器执行
./jmeter -n -t ./testplan.jmx -R 192.168.1.100:1099,192.168.1.101:1099 -l ./result.jtl
  • 前提:远程服务器需启动 JMeter 服务(jmeter-server),并在本地 jmeter.properties 中配置远程主机。

4. 自定义属性与日志级别

1
2
# 定义线程数为 200,日志级别为 INFO
./jmeter -n -t ./testplan.jmx -Jthreads=200 -LINFO -l ./result.jtl
  • 测试计划中可通过 ${__P(threads,100)} 引用 threads 属性,实现动态参数化。

命令行执行的优势与注意事项

优势

  1. 资源占用低:无 GUI 界面,减少内存和 CPU 消耗,适合长时间或高并发测试。
  2. 自动化集成:可嵌入 Shell、Python 等脚本,或集成到 Jenkins、GitLab CI 等持续集成工具。
  3. 远程执行:支持分布式压测,通过多台服务器模拟更大规模的并发用户。

注意事项

  1. 结果文件格式.jtl 是 JMeter 推荐的结果格式(支持更多指标),.csv 适合简单分析。
  2. 报告目录清理:使用 -e -o 生成 HTML 报告时,输出目录必须为空,否则会报错(可手动删除或脚本自动清理)。
  3. 参数优先级:命令行参数(如 -J) > 测试计划中的用户定义属性 > jmeter.properties 配置。
  4. 日志查看:非 GUI 模式的运行日志默认输出到控制台,可通过 -L 调整级别,或重定向到文件(如 >> run.log)。

高级技巧:批量执行与结果分析

  1. 批量运行多个测试计划(Linux/Mac 示例):

    1
    2
    3
    4
    # 遍历 testplans 目录下的所有 .jmx 文件并执行
    for plan in ./testplans/*.jmx; do
    ./jmeter -n -t "$plan" -l "./results/$(basename "$plan" .jmx)_result.jtl"
    done
  2. 结果分析

    • 用 JMeter GUI 打开 .jtl.csv 文件,通过 “Summary Report”“Graph Results” 等监听器查看。
    • 结合 Python 脚本(如使用 pandas 库)批量分析结果数据,生成自定义报表

欢迎关注我的其它发布渠道

表情 | 预览
快来做第一个评论的人吧~
Powered By Valine
v1.3.10