JMeter + InfluxDB + Grafana 性能测试可视化平台部署与实践指南(Docker Compose 版) ## 一、方案概述 JMeter 自带的 HTML 报告适合

一、方案概述

JMeter 自带的 HTML 报告适合单次测试分析,但对于长期性能监控、对比和实时可视化分析,结合 InfluxDB(时序数据库)和 Grafana(可视化平台)才是更专业、可扩展的解决方案。

该方案实现目标:

  • ✅ 实时查看测试过程中接口响应趋势
  • ✅ 历史性能指标长期存储(InfluxDB)
  • ✅ Grafana 可视化展示 TPS、响应时间、错误率等指标
  • ✅ 一键启动与销毁(通过 Docker Compose)

二、系统架构

在这里插入图片描述

组件说明

组件作用
JMeter执行性能测试,采集数据并通过 Backend Listener 实时推送到 InfluxDB
InfluxDB时序数据库,存储性能测试的原始指标数据
Grafana数据可视化工具,从 InfluxDB 获取指标并展示为仪表盘

三、环境准备

要求:

  • 已安装 DockerDocker Compose
  • 网络可访问(默认使用 8086、3000 端口)

目录结构建议:

performance/
 ├── docker-compose.yml
 ├── grafana/
 │    └── dashboards/
 │         └── jmeter-dashboard.json
 └── influxdb/
      └── influxdb.conf

四、Docker Compose 部署

1. docker-compose.yml 示例

version: '3.7'
services:
  influxdb:
    image: influxdb:1.8
    container_name: influxdb
    restart: always
    ports:
      - "8086:8086"
    volumes:
      - ./influxdb:/var/lib/influxdb
    environment:
      - INFLUXDB_DB=jmeter
      - INFLUXDB_ADMIN_ENABLED=true
      - INFLUXDB_HTTP_AUTH_ENABLED=false

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: always
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin
    volumes:
      - ./grafana:/var/lib/grafana

networks:
  default:
    driver: bridge

五、启动与验证

# 启动服务
docker-compose up -d

# 查看状态
docker ps

启动后:


六、JMeter 配置 InfluxDB Backend Listener

在 JMeter GUI 中配置:

路径:

Test Plan
 └── Thread Group
      └── Backend Listener

选择类:

org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient

参数设置:

参数名示例值说明
influxdbMetricsSenderorg.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender默认
influxdbUrlhttp://influxdb:8086/write?db=jmeter指向 Docker 内的容器名
applicationmy-jmeter-test自定义测试名
measurementjmeter存储表名
summaryOnlyfalse是否仅汇总指标
samplersList.*匹配所有接口
percentiles90;95;99响应时间分位
testTitleDemoTest测试标题

💡 注意:

在 Docker Compose 网络下,influxdb 是容器名,因此 http://influxdb:8086 可直接访问。


七、Grafana 配置与可视化

1. 添加数据源

  • 打开 Grafana → 登录

  • 左侧菜单 → ⚙️ Configuration → Data Sources → Add data source

  • 选择 InfluxDB

  • 配置:

    • URL: http://influxdb:8086
    • Database: jmeter
    • 点击 “Save & Test”

2. 导入 JMeter Dashboard 模板

  • 点击左侧菜单 → 📊 Dashboards → Import
  • 选择 “Upload JSON file”
  • 上传:grafana/dashboards/jmeter-dashboard.json
  • 点击 “Import”

推荐模板 ID(可在线导入):
👉 JMeter Load Test Dashboard - 5496


八、测试执行与结果查看

执行命令:

jmeter -n -t test_plan.jmx -l result.jtl

执行时:

  • InfluxDB 会实时接收指标
  • Grafana 仪表盘可实时刷新展示响应时间、TPS、错误率、Active Threads 等

九、报告与数据分析对比

报告类型生成方式适用场景
JMeter HTML 报告-e -o ./report单次测试总结
Grafana Dashboard实时展示压测过程监控、对比分析
InfluxDB 查询API 或 CLI定制化数据分析、统计报表生成

十、常见问题与优化建议

问题原因解决办法
Grafana 数据无变化Backend Listener URL 错误改为容器名 http://influxdb:8086/write?db=jmeter
数据过多长期运行导致存储膨胀设置 InfluxDB 数据保留策略(Retention Policy)
Grafana 面板空白未配置 Dashboard 或变量错误重新导入 Dashboard 模板
无法启动端口冲突修改 docker-compose.yml 中的端口映射

十一、总结与推荐实践

推荐部署方式: Docker Compose 一键启动
推荐版本:

  • JMeter ≥ 5.6
  • InfluxDB 1.8(2.x 需要额外授权 Token)
  • Grafana ≥ 9.x
    推荐操作流程:
  1. 启动 docker-compose
  2. 配置 JMeter Backend Listener → 运行测试
  3. 打开 Grafana 实时查看性能指标
  4. 测试结束后导出 HTML 报告做总结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值