当前位置: 首页 > news >正文

【性能测试】Jmeter+Grafana+InfluxDB+Prometheus Windows安装部署教程

一、工具作用与整体架构

1.1 各工具核心作用

工具作用描述关键特性
Jmeter性能测试工具,模拟多用户并发请求,生成测试数据支持HTTP/HTTPS、数据库等多种协议,可自定义测试场景
InfluxDB时序数据库,专门存储时间序列数据(如Jmeter测试结果)高写入性能,支持Flux查询语言,适合存储海量测试指标
Prometheus时序数据库,专注于系统监控指标收集(如CPU、内存、网络)支持数据拉取(Pull)模式,内置PromQL查询,适合监控服务器/应用指标
Grafana数据可视化平台,将InfluxDB和Prometheus数据以仪表盘形式展示支持多数据源整合,丰富的图表类型,可自定义告警规则

1.2 整体架构关系

四者通过以下流程协同工作:

  1. Jmeter 模拟用户请求,生成性能测试数据(如响应时间、吞吐量);
  2. InfluxDB 存储Jmeter测试结果,通过Backend Listener实时写入;
  3. Prometheus 收集Windows服务器指标(如CPU使用率、内存占用),需配合Windows Exporter;
  4. Grafana 从InfluxDB和Prometheus拉取数据,通过仪表盘可视化展示,实现性能测试与系统监控一体化。

二、安装前准备

2.1 环境要求

  • 操作系统:Windows 10/11 64位
  • Java环境:JDK 11+(Jmeter依赖),需配置JAVA_HOME环境变量
  • 权限:管理员权限(用于安装服务、开放端口)
  • 硬件:建议4核CPU、8GB内存、50GB磁盘空间

2.2 工具版本与下载链接

工具推荐版本下载链接
Jmeter5.6.3Apache Jmeter官网
InfluxDB2.7.10InfluxDB官网
Prometheus2.53.3Prometheus官网
Grafana11.4.0Grafana官网
Windows Exporter0.24.0GitHub Releases
NSSM2.24NSSM官网

三、详细安装步骤

3.1 Jmeter安装与配置

3.1.1 安装Java环境
  1. 下载JDK 11+(如Adoptium Temurin),安装时勾选“Add to PATH”;
  2. 验证Java安装:打开命令提示符,输入java -version,显示版本信息则成功。
3.1.2 安装Jmeter
  1. 下载Jmeter二进制zip包(如apache-jmeter-5.6.3.zip);
  2. 解压至C:\jmeter,进入C:\jmeter\bin,双击jmeter.bat启动;
  3. 验证启动:打开界面后,右键“Test Plan”→“Add”→“Threads (Users)”→“Thread Group”,若能正常添加则安装成功。
3.1.3 安装InfluxDB插件
  1. 下载jmeter-influxdb2-listener-plugin(如jmeter-plugins-influxdb2-listener-2.8.jar);
  2. 将jar包复制到C:\jmeter\lib\ext目录,重启Jmeter。

3.2 InfluxDB安装与配置

3.2.1 安装InfluxDB
  1. 下载InfluxDB Windows安装包(如influxdb2-2.7.10-windows-amd64.msi);
  2. 双击安装,按向导完成,默认安装路径C:\Program Files\InfluxData\InfluxDB
  3. 启动服务:打开PowerShell(管理员),输入net start influxdb
3.2.2 初始化配置
  1. 访问http://localhost:8086,首次登录创建管理员账号(如admin/admin123);
  2. 创建Organization(如jmeter-org)、Bucket(如jmeter,保留默认7天数据保留期);
  3. 生成Token:进入“Data”→“Tokens”→“Generate Token”→“Read/Write”,保存Token(如my-token-xxxx)。

3.3 Prometheus安装与配置

3.3.1 安装Prometheus
  1. 下载Prometheus Windows zip包(如prometheus-2.53.3.windows-amd64.zip);
  2. 解压至C:\Prometheus,修改prometheus.yml配置文件:
    global:scrape_interval: 15s  # 全局抓取间隔
    scrape_configs:- job_name: 'prometheus'  # 监控自身static_configs:- targets: ['localhost:9090']- job_name: 'windows'  # 监控Windows服务器static_configs:- targets: ['localhost:9182']  # Windows Exporter端口
3.3.2 注册为Windows服务(使用NSSM)
  1. 下载NSSM,解压至C:\nssm,将nssm.exe复制到C:\Windows\System32
  2. 打开命令提示符(管理员),输入nssm install Prometheus,在弹出窗口配置:
    • PathC:\Prometheus\prometheus.exe
    • Arguments--config.file=C:\Prometheus\prometheus.yml
  3. 启动服务:nssm start Prometheus,验证:访问http://localhost:9090,显示Prometheus界面。

3.4 Windows Exporter安装(Prometheus监控依赖)

  1. 下载Windows Exporter MSI包(如windows_exporter-0.24.0-amd64.msi);
  2. 双击安装,默认端口9182,服务自动启动;
  3. 验证:访问http://localhost:9182/metrics,显示系统指标数据。

3.5 Grafana安装与配置

3.5.1 安装Grafana
  1. 下载Grafana Windows zip包(如grafana-11.4.0.windows-amd64.zip);
  2. 解压至C:\Grafana,进入C:\Grafana\bin,双击grafana-server.exe启动;
  3. 验证:访问http://localhost:3000,默认账号admin/admin,首次登录需修改密码。
3.5.2 添加数据源
  1. 添加InfluxDB数据源

    • 左侧菜单“Connections”→“Add new connection”→搜索“InfluxDB”;
    • URLhttp://localhost:8086Token:输入InfluxDB生成的Token;
    • Organizationjmeter-orgBucketjmeter,保存并测试连接。
  2. 添加Prometheus数据源

    • 左侧菜单“Connections”→“Add new connection”→搜索“Prometheus”;
    • URLhttp://localhost:9090,保存并测试连接。
3.5.3 导入仪表盘
  1. 导入Jmeter测试结果仪表盘:左侧“+”→“Import”→输入ID 17440(JMeter Report InfluxDB2.0);
  2. 导入Windows系统监控仪表盘:输入ID 10467(Windows Exporter Dashboard);
  3. 选择对应数据源(InfluxDB/Prometheus),完成导入。

四、工具集成与验证

4.1 Jmeter与InfluxDB集成

  1. 打开Jmeter,创建测试计划,添加“Thread Group”(10用户,Ramp-Up 10秒);
  2. 添加“HTTP Request”(测试目标URL,如https://www.example.com);
  3. 添加“Backend Listener”:
    • Backend Listener Implementationio.github.mderevyanko.aqa.visualizer.InfluxDatabaseBackendListenerClient
    • Parameters
      • influxDBUrlhttp://localhost:8086
      • influxDBTokenmy-token-xxxx
      • influxDBOrganizationjmeter-org
      • influxDBBucketjmeter
      • testNamemy-test

4.2 完整流程验证

  1. 启动服务:确保InfluxDB、Prometheus、Grafana服务运行;
  2. 运行Jmeter测试:点击Jmeter启动按钮,执行测试计划;
  3. 验证数据写入
    • InfluxDB:访问http://localhost:8086→“Explore”→查询from(bucket: "jmeter") |> range(start: -1m),查看是否有数据;
    • Grafana:打开导入的Jmeter仪表盘,观察实时测试指标(响应时间、吞吐量);
  4. 验证系统监控:查看Windows仪表盘,确认CPU、内存等指标正常显示。

五、常见问题解决

5.1 端口冲突

  • 症状:服务启动失败,提示“端口被占用”;
  • 解决:修改配置文件更换端口(如Grafana默认3000→8080,在C:\Grafana\conf\custom.ini中设置http_port=8080)。

5.2 防火墙阻止连接

  • 症状:Grafana无法访问InfluxDB/Prometheus;
  • 解决:开放端口(以8086为例):
    • 控制面板→“Windows Defender防火墙”→“高级设置”→“入站规则”→“新建规则”→“端口”→输入8086→“允许连接”。

5.3 Jmeter数据未写入InfluxDB

  • 检查项
    1. InfluxDB Token权限是否为“Read/Write”;
    2. Jmeter插件是否放置在lib/ext目录;
    3. Backend Listener参数是否正确(尤其Organization和Bucket名称)。

六、部署主要用途

  1. 性能测试全链路监控
    实时跟踪Jmeter测试过程中的响应时间、错误率、吞吐量,结合系统资源(CPU、内存)变化,定位性能瓶颈。

  2. 系统稳定性监控
    通过Prometheus+Windows Exporter长期监控服务器指标,Grafana设置告警(如CPU使用率>80%),及时发现异常。

  3. 测试报告可视化
    替代Jmeter原生报告,Grafana仪表盘支持自定义图表(如响应时间分布、请求趋势),便于团队协作与报告分享。

  4. 多场景对比分析
    存储历史测试数据(InfluxDB),对比不同版本/环境下的性能差异,优化系统设计。

七、工具版本与端口汇总表

工具版本默认端口配置文件路径
Jmeter5.6.3-C:\jmeter\bin\jmeter.properties
InfluxDB2.7.108086C:\Program Files\InfluxData\InfluxDB\influx-configs
Prometheus2.53.39090C:\Prometheus\prometheus.yml
Grafana11.4.03000C:\Grafana\conf\custom.ini
Windows Exporter0.24.09182-

通过以上步骤,即可在Windows环境下完成Jmeter+Grafana+InfluxDB+Prometheus的部署与集成,实现性能测试与系统监控的一体化可视化平台。

http://www.dtcms.com/a/296146.html

相关文章:

  • 重生学AI第二十集(大结局):完善模型以及学习总结
  • 【STM32】FreeRTOS 任务的删除(三)
  • NX804NX810美光固态闪存NX815NX839
  • 人形机器人双足行走动力学:K-V模型其肌腱特性拟合中的应用
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型通过YoloV8深度学习模型实现工人安全装备(安全帽、手套、马甲等)检测识别 (C#)
  • C++高效实现轨迹规划、自动泊车、RTS游戏、战术迂回包抄、空中轨迹、手术机器人、KD树
  • 408——数据结构(第二章 线性表)
  • IPSec VPN -- 野蛮模式
  • windows11新建文件夹重命名时总是出现加载界面卡死状态
  • javaweb面试
  • 数据结构实验-查找与排序算法
  • 游戏开发Unity/ ShaderLab学习路径
  • 【独立工具】小红书图片采集软件
  • ExoCode.ino - OpenExo
  • Lua(文件I/O)
  • Claude4、GPT4、Kimi K2、Gemini2.5、DeepSeek R1、Code Llama等2025主流AI编程大模型多维度对比分析报告
  • PHP 与 Vue.js 结合的前后端分离架构
  • 虚拟机导入导出ova文件
  • Nginx 运维实战:动静分离,加速静态资源访问!
  • vue3:十八、内容管理-搜索栏的完善
  • C++之Stack和Queue的常用函数+习题
  • 若依框架在 IDEA 中运行的前置软件环境配置指南
  • XORM完全指南:Go语言数据库操作从入门到进阶
  • DS18B20扩展:在数码管上显示温度时包含小数部分
  • 黑马点评系列问题之p44实战篇商户查询缓存 jmeter如何整
  • 【基础】go基础学习笔记
  • OpenCV —— 绘制图形
  • 实验研究 | VR虚拟现实环境中植物景观偏好与生理恢复性效益研究
  • linux端 RAGflow超详细小白教程(一)安装及环境搭建
  • Linux系统编程——网络