温馨提示×

如何监控CentOS上JMeter的测试进度

小樊
48
2025-11-18 03:45:44
栏目: 智能运维

监控思路总览CentOS 上监控 JMeter 测试进度,常用做法包括:命令行实时摘要、JMeter 插件图形化、以及将指标写入 InfluxDB 并用 Grafana 实时展示。命令行适合快速查看进度与错误;插件适合在本地 GUI 观察 TPS、响应时间等曲线;InfluxDB+Grafana 适合团队协作与长时压测的可视化大屏与历史留存。

方式一 命令行实时查看进度

  • 非 GUI 执行并实时输出摘要,同时生成 HTML 报告(测试结束后可直接打开):
    jmeter -n -t your_plan.jmx -l report/jtl -e -o report/html
    
    说明:
    • 非 GUI 模式资源占用更低,适合压测执行机。
    • 执行过程中终端会持续打印当前进度摘要(活跃线程、已发送请求、错误数、吞吐等),便于随时掌握进度与异常。
    • 测试结束后可通过浏览器打开生成的 HTML 报告进行更细分析。

方式二 JMeter 插件与监听器实时曲线

  • 安装插件管理器并添加图形监听器:
    • jmeter-plugins-manager-1.3.jar 放入 JMETER_HOME/lib/ext,重启 JMeter。
    • 在测试计划中添加监听器:jp@gc - Transactions per Secondjp@gc - Response Times Over Time,即可在测试运行时看到 TPS 与响应时间曲线。
  • 若需更丰富的实时图表,可在 GUI 中配合其他 PerfMon/扩展监听器使用(注意 GUI 仅用于调试,压测请用 CLI)。

方式三 InfluxDB Grafana 实时监控大屏

  • 架构与端口
    • JMeter 通过后端监听器写入时序数据到 InfluxDBGrafana 从 InfluxDB 读取并展示。
    • 常用端口:2003(Graphite 写入)、8086(InfluxDB HTTP API)、3000(Grafana Web)。
  • InfluxDB 1.x 配置与初始化(CentOS 常见做法)
    • 安装并启动 InfluxDB(示例):
      sudo yum localinstall influxdb-1.8.9.x86_64.rpm
      sudo systemctl start influxdb
      sudo systemctl enable influxdb
      
    • 创建数据库:
      influx
      CREATE DATABASE jmeter
      exit
      
    • 如需使用 Graphite 写入,在 /etc/influxdb/influxdb.conf 中启用并确认 graphite 区域端口为 2003,然后重启 InfluxDB。
  • JMeter 配置后端监听器
    • 在测试计划中添加 Backend Listener,实现选择 org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient
    • 关键参数示例:
      • graphiteHost:InfluxDB 服务器 IP
      • graphitePort:2003
      • rootMetricsPrefix:自定义前缀(如:jmeter)
      • summaryOnly:false(输出每个采样器数据)
      • percentiles:90_9,95,99(下划线代替小数点)
  • Grafana 配置
    • 启动 Grafana 并访问 http://:3000,默认账号 admin/admin
    • 添加数据源:Type 选 InfluxDB,URL 填 http://<InfluxDB_IP>:8086,Database 填 jmeter,保存并测试连接。
    • 导入 JMeter 仪表板模板(如 ID: 5496),即可实时查看 TPS、响应时间分布、活跃线程等指标曲线。

防火墙与连通性检查

  • 开放必要端口(示例以 firewalld 为例):
    sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=8086/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
    sudo firewall-cmd --reload
    
  • 连通性自检:
    • InfluxDB:在 JMeter 机器执行 nc -vz <InfluxDB_IP> 8086 应提示 succeeded。
    • Grafana:浏览器访问 http://<Grafana_IP>:3000 能打开登录页。
    • 若使用 Graphite 写入端口 2003,同样可用 nc 测试连通性。

0