温馨提示×

JMeter如何与CentOS服务器集成

小樊
39
2025-12-05 22:23:21
栏目: 云计算

JMeter与CentOS的集成实践

一 环境准备与安装

  • 安装 Java 8(JMeter 5.x 常用版本):执行命令:sudo yum install -y java-1.8.0-openjdk-devel,验证:java -version
  • 安装 JMeter(推荐手动解压,便于多版本管理):
    • 下载:wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.5.zip
    • 解压:unzip apache-jmeter-5.5.zip -C /opt/
    • 建议创建软链:ln -s /opt/apache-jmeter-5.5 /opt/jmeter
  • 配置环境变量(全局或当前用户均可):
    • 编辑 /etc/profile~/.bashrc,加入:
      • export JMETER_HOME=/opt/jmeter
      • export PATH=$JMETER_HOME/bin:$PATH
    • 使生效:source /etc/profilesource ~/.bashrc
    • 验证:jmeter -v
  • 说明:也可使用 Docker 运行 JMeter,便于环境隔离与快速部署。

二 在CentOS上执行压测与生成报告

  • 上传测试脚本:在 Windows GUI 中编写并保存 .jmx,通过 rzscp 上传至 CentOS(如:/opt/scripts/test.jmx)。
  • 非 GUI 执行与结果落盘:
    • 命令:jmeter -n -t /opt/scripts/test.jmx -l /opt/results/result.jtl
    • 常用参数:
      • -n 非 GUI 模式;-t 指定脚本;-l 指定结果文件(JTL/CSV)。
  • 生成 HTML 报告:
    • 命令:jmeter -g /opt/results/result.jtl -o /opt/results/report
    • 报告目录下的 index.html 可用浏览器查看。

三 分布式压测集成(Master-Slave)

  • 前提:所有节点安装相同版本的 JavaJMeter
  • 配置 Slave(工作节点):
    • 编辑 $JMETER_HOME/bin/jmeter.properties
      • server.rmi.ssl.disable=true(测试环境常用,避免证书问题)
      • server.rmi.localport=1099
      • rmi.server.hostname=<本机IP>(建议显式指定)
    • 启动服务:./jmeter-server
  • 配置 Master(控制节点):
    • 编辑 $JMETER_HOME/bin/jmeter.properties
      • remote_hosts=<SlaveIP1>:1099,<SlaveIP2>:1099
  • 执行分布式测试:
    • 命令行:jmeter -n -t /opt/scripts/test.jmx -R <SlaveIP1>:1099,<SlaveIP2>:1099 -l /opt/results/result.jtl -e -o /opt/results/report
    • GUI:运行 → 远程启动所有
  • 防火墙放行:
    • sudo firewall-cmd --permanent --add-port=1099/tcp && sudo firewall-cmd --reload
  • 常见问题:
    • 版本不一致导致序列化/兼容问题;
    • 参数化文件(CSV)需在 所有 Slave 保持相同路径与内容;
    • RMI 主机名解析错误时,显式设置 rmi.server.hostname

四 与CI/CD和监控的集成

  • Jenkins 集成(可选):
    • 安装 Jenkins(含 Java 8):配置官方仓库后 yum install -y jenkins 并启动服务;
    • 在 Job 中执行 JMeter 命令(如:jmeter -n -t … -l … -e -o …),并归档 JTL/HTML 报告
  • 实时监控与可视化:
    • 部署 InfluxDB(用于存储)与 Grafana(用于展示);
    • 在 JMeter 中添加 Backend Listener(InfluxdbBackendListenerClient),配置 InfluxDB 地址与库;
    • Grafana 配置 InfluxDB 数据源并导入 JMeter 仪表板,实现压测过程与指标的实时可视化。

五 实用建议与排错要点

  • 始终优先使用 非 GUI 模式 执行压测,GUI 仅用于脚本设计与调试。
  • 统一 JDK/JMeter 版本,避免因版本差异导致的问题。
  • 分布式场景确保 CSV 数据文件 在各节点路径一致,且权限正确。
  • 如无法使用 RMI SSL,统一在 jmeter.properties 中设置 server.rmi.ssl.disable=true 并重启 jmeter-server
  • 需要远程访问时,务必在 firewalld 中放行 1099/TCP 等必要端口。

0