温馨提示×

Debian系统JMeter如何部署

小樊
42
2025-12-19 02:46:38
栏目: 智能运维

Debian 系统部署 Apache JMeter 指南

一 环境准备与安装

  • 安装 Java(推荐 OpenJDK 8 或 11
    • 查看是否已安装:java -version
    • 安装命令:sudo apt update && sudo apt install -y openjdk-11-jdk
  • 创建目录并下载 JMeter(以 5.6.3 为例,可按需替换版本)
    • 下载:wget https://dlcdn.apache.org/jmeter/binaries/apache-jmeter-5.6.3.tgz
    • 解压:sudo mkdir -p /opt/jmeter && sudo tar -xzf apache-jmeter-5.6.3.tgz -C /opt/jmeter
  • 配置环境变量(可选,便于全局执行)
    • 写入:echo 'export JMETER_HOME=/opt/jmeter/apache-jmeter-5.6.3' | sudo tee -a /etc/profile.d/jmeter.sh
    • 写入:echo 'export PATH=$PATH:$JMETER_HOME/bin' | sudo tee -a /etc/profile.d/jmeter.sh
    • 生效:source /etc/profile.d/jmeter.sh
  • 验证:jmeter -v 应输出版本号

二 本机非 GUI 运行与结果查看

  • 基本压测命令
    • jmeter -n -t /path/to/test.jmx -l /path/to/result.jtl
    • 常用参数:
      • -n 非 GUI 模式
      • -t 指定测试计划 .jmx
      • -l 指定结果文件 .jtl
      • -e -o /path/to/report 生成 HTML 报告(需结果文件存在)
  • 查看报告
    • 命令行生成 HTML:jmeter -g /path/to/result.jtl -o /path/to/html-report
    • .jtl 下载到本地,用 JMeter GUI 的聚合报告等监听器打开即可

三 分布式压测部署

  • 架构说明
    • Controller:调度测试、汇总结果
    • Agent:执行负载(JMeter Server)
  • 在所有机器安装相同版本的 JavaJMeter
  • 配置 Agent
    • 启动:/opt/jmeter/apache-jmeter-5.6.3/bin/jmeter-server
    • 若报 java.io.FileNotFoundException: rmi_keystore.jks,在 jmeter.properties 中设置:
      • server.rmi.ssl.disable=true(取消注释并改为 true)
  • 配置 Controller
    • jmeter.properties 设置远程主机:
      • remote_hosts=192.168.1.11:1099,192.168.1.12:1099
    • 执行命令(指定远程执行):
      • jmeter -n -t /path/to/test.jmx -R 192.168.1.11,192.168.1.12 -l /path/to/result.jtl
  • 网络与安全
    • 确保 1099 端口及测试所用端口在防火墙放行
    • 建议 Controller 与 Agents 时间同步(如 chrony/ntpd

四 持续集成与定时任务

  • Jenkins + Ant 执行与报告
    • 安装 Ant:sudo apt install -y ant
    • 在 JMeter 目录 extras/ 使用 ant-jmeter-*.jar,编写 build.xml 定义测试执行与 XSLT 报告转换
    • Jenkins 创建 Job 调用 Ant 任务,归档 .jtl 与 HTML 报告,并可配置邮件通知
  • 定时执行(Cron)
    • 启动 Cron:sudo systemctl start cron && sudo systemctl enable cron
    • 示例脚本 /opt/scripts/jmeter-run.sh
      • #!/usr/bin/env bash
      • source /etc/profile
      • jmeter -n -t /opt/jmeter/tests/api.jmx -l /opt/jmeter/results/result_$(date +%F_%H%M%S).jtl
    • 赋权:chmod +x /opt/scripts/jmeter-run.sh
    • 添加任务:crontab -e
      • 每天 02:00 执行:0 2 * * * /opt/scripts/jmeter-run.sh
    • 提示:Cron 执行环境的 PATH 可能与交互式不同,建议在脚本中显式 source /etc/profile

五 常见问题与排查

  • Java 未就绪:执行 java -version 确认;未安装则先安装 OpenJDK 8/11
  • GUI 与字符集:在 Linux 上执行时报错 Could not find the TestPlan class!,常由 .jmx 含中文或编码不一致引起;建议用 UTF-8 保存,或在 Linux 端重新保存测试计划
  • 版本不匹配:在 Windows 上编辑的 .jmx 版本高于 Linux 端 JMeter 版本会报错;保持两端 JMeter 版本一致
  • RMI SSL 错误:Agent 启动报缺 rmi_keystore.jks,在 jmeter.properties 设置 server.rmi.ssl.disable=true
  • 报告查看:命令行生成 HTML 报告需先有 .jtl 结果文件;或用 GUI 监听器打开 .jtl 查看聚合/图表报告

0