温馨提示×

ubuntu如何运行jmeter

小樊
43
2025-12-06 18:27:48
栏目: 智能运维

在 Ubuntu 上运行 JMeter 的完整步骤

一 准备环境

  • 安装 Java(JMeter 为 Java 应用)。推荐 OpenJDK 8 或 11(服务器常用无头环境可选 openjdk-11-jdk-headless)。
    • 更新索引并安装:sudo apt update && sudo apt install -y openjdk-11-jdk-headless
    • 验证:java -version(应输出版本号);如需编译可再检查 javac -version
  • 创建专用目录并下载解压 Apache JMeter(以 5.6.3 为例,可按需替换为最新版本):
    • 下载:wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.3.tgz
    • 解压与安置:tar -xzf apache-jmeter-5.6.3.tgz && sudo mv apache-jmeter-5.6.3 /opt/jmeter
  • 配置环境变量(全局或当前用户均可):
    • 编辑:sudo nano /etc/profile(或 ~/.bashrc)
    • 写入:
      • export JMETER_HOME=/opt/jmeter
      • export PATH=$JMETER_HOME/bin:$PATH
    • 生效:source /etc/profile(或 source ~/.bashrc)
    • 验证安装:jmeter -v(应输出版本信息)

二 运行方式

  • 图形界面模式(仅在有桌面环境的 Ubuntu 上使用,用于创建/调试测试计划)
    • 直接启动:jmeter
    • 或:/opt/jmeter/bin/jmeter
  • 非 GUI 模式(服务器/无头环境推荐,适合压测执行)
    • 基本执行:jmeter -n -t /path/to/test.jmx -l /path/to/result.jtl
    • 生成 HTML 报告:jmeter -n -t /path/to/test.jmx -l /path/to/result.jtl -e -o /path/to/report
    • 常用参数说明:
      • -n:非 GUI 模式
      • -t:指定 JMX 测试计划
      • -l:保存结果到 JTL 文件
      • -j:指定日志文件
      • -e -o:生成并导出 HTML 报告(目录必须为空)
      • -r:远程执行(需配置远程引擎)

三 常用操作与示例命令

  • 上传测试计划:将本地 .jmx 脚本上传至服务器(如 /opt/jmeter/tests/)
  • 执行并生成报告:
    • jmeter -n -t /opt/jmeter/tests/example.jmx -j /opt/jmeter/logs/example.log -l /opt/jmeter/results/example.jtl -e -o /opt/jmeter/report/example
  • 查看结果:
    • 在服务器查看日志:cat /opt/jmeter/logs/example.log
    • result.jtl 下载到本地,在 JMeter GUI 中通过“聚合报告/查看结果树”等监听器打开以分析
  • 远程执行(可选):
    • 在控制机执行:jmeter -n -t /path/to/test.jmx -r
    • 需提前在 jmeter.properties 或命令行中配置 remote_hosts,并在目标机启动 jmeter-server

四 常见问题与扩展

  • Java 未安装或版本不兼容:请安装 OpenJDK 8/11 并确认 java -version 正常
  • 权限问题:确保 /opt/jmeter/bin/jmeter 有可执行权限(chmod +x /opt/jmeter/bin/jmeter)
  • 插件与依赖:
    • 使用 JMeter 插件管理器(Plugins Manager)时,将插件 JAR 放入 lib/ext 目录
    • 使用 WebSocket 等采样器时,需放置相应依赖 JAR(如 jetty-.jar、websocket-.jar)到 lib/ext,否则可能出现 NoClassDefFoundError
  • 分布式压测:准备多台机器,配置 jmeter-server 与控制机的 remote_hosts 后使用 -r 远程执行

0