温馨提示×

ubuntu jmeter报告生成

小樊
35
2025-12-24 12:50:54
栏目: 智能运维

Ubuntu 下使用 JMeter 生成 HTML 报告

一 准备环境

  • 安装 Java(Ubuntu 推荐 OpenJDK 8 或 11):sudo apt-get update && sudo apt-get install -y openjdk-11-jdk-headless
  • 验证:java -version
  • 安装 JMeter(示例为 5.4.x):
    • 下载并解压:wget -c https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.4.1.tgz && tar -zxvf apache-jmeter-5.4.1.tgz -C /opt
    • 配置环境变量(/etc/profile 或 ~/.bashrc):
      • export JMETER_HOME=/opt/apache-jmeter-5.4.1
      • export PATH=$JMETER_HOME/bin:$PATH
    • 生效:source /etc/profile
    • 验证:jmeter -v

二 生成报告的两种方式

  • 方式一 直接运行脚本并生成报告(推荐)
    • 命令:jmeter -n -t your_plan.jmx -l result.jtl -e -o ./report
    • 说明:
      • -n 非 GUI 模式;-t 指定 JMX 脚本;-l 保存结果到 JTL;-e 测试结束后生成报告;-o 指定报告输出目录
      • 若使用 分布式/远程执行,可加 -r
  • 方式二 基于已有 JTL 生成报告
    • 命令:jmeter -g result.jtl -e -o ./report_from_jtl
  • 查看报告:在输出目录打开 index.html(可用本机浏览器打开,或用 scp 复制到本地查看)

三 常用命令参数速查

  • -n:非 GUI 模式运行
  • -t:指定测试脚本(.jmx)
  • -l:指定结果文件(.jtl)
  • -e:测试结束后生成 HTML 报告
  • -o:指定 HTML 报告输出目录(必须为空或不存在)
  • -r:远程执行(分布式压测)
  • -j:指定 JMeter 运行日志文件

四 常见问题与排查

  • 报告目录非空导致失败:-o 指定的目录必须为空或不存在,否则会报错,请先清理或更换目录
  • JTL 结果文件已存在:命令行不会自动覆盖,建议每次使用唯一文件名,或先删除旧文件
  • 生成报告中文或路径异常:JMeter 在 Linux 下对脚本路径/内容中的中文字符支持不佳,建议使用英文路径与名称
  • 查看历史 JTL 结果:将 .jtl 下载到本地 JMeter GUI,添加监听器(如聚合报告查看结果树),通过“浏览”加载 JTL 即可查看
  • 分布式执行:确保 -r 前已正确配置并启动远程引擎,否则会报错

五 报告定制与高级用法

  • 报告字段与格式:在 jmeter.properties 中启用必要字段,例如将结果保存为 CSV 并包含关键列:
    • jmeter.save.saveservice.output_format=csv
    • jmeter.save.saveservice.label=true
    • jmeter.save.saveservice.response_code=true
    • jmeter.save.saveservice.successful=true
    • jmeter.save.saveservice.time=true
    • jmeter.save.saveservice.latency=true
    • jmeter.save.saveservice.bytes=true
    • jmeter.save.saveservice.sent_bytes=true
    • jmeter.save.saveservice.connect_time=true
    • jmeter.save.saveservice.assertions=true
    • jmeter.save.saveservice.subresults=true
  • 报告外观与内容:可配置报告标题与图表项,例如
    • jmeter.reportgenerator.report_title=My Performance Report
    • 启用/禁用图表:jmeter.reportgenerator.exporter.html.property.graph_response_time_distribution、graph_response_time_percentiles 等
  • 图表导出(命令行):使用 CMDRunner.jar 将 JTL 转为 PNG/SVG/CSV 等图表,例如
    • java -jar lib/ext/CMDRunner.jar --tool Reporter --generate-png threads.png --input-jtl result.jtl --plugin-type ThreadsStateOverTime

0