一、工具作用與整體架構
1.1 各工具核心作用
工具 | 作用描述 | 關鍵特性 |
---|---|---|
Jmeter | 性能測試工具,模擬多用戶并發請求,生成測試數據 | 支持HTTP/HTTPS、數據庫等多種協議,可自定義測試場景 |
InfluxDB | 時序數據庫,專門存儲時間序列數據(如Jmeter測試結果) | 高寫入性能,支持Flux查詢語言,適合存儲海量測試指標 |
Prometheus | 時序數據庫,專注于系統監控指標收集(如CPU、內存、網絡) | 支持數據拉取(Pull)模式,內置PromQL查詢,適合監控服務器/應用指標 |
Grafana | 數據可視化平臺,將InfluxDB和Prometheus數據以儀表盤形式展示 | 支持多數據源整合,豐富的圖表類型,可自定義告警規則 |
1.2 整體架構關系
四者通過以下流程協同工作:
- Jmeter 模擬用戶請求,生成性能測試數據(如響應時間、吞吐量);
- InfluxDB 存儲Jmeter測試結果,通過Backend Listener實時寫入;
- Prometheus 收集Windows服務器指標(如CPU使用率、內存占用),需配合Windows Exporter;
- Grafana 從InfluxDB和Prometheus拉取數據,通過儀表盤可視化展示,實現性能測試與系統監控一體化。
二、安裝前準備
2.1 環境要求
- 操作系統:Windows 10/11 64位
- Java環境:JDK 11+(Jmeter依賴),需配置
JAVA_HOME
環境變量 - 權限:管理員權限(用于安裝服務、開放端口)
- 硬件:建議4核CPU、8GB內存、50GB磁盤空間
2.2 工具版本與下載鏈接
工具 | 推薦版本 | 下載鏈接 |
---|---|---|
Jmeter | 5.6.3 | Apache Jmeter官網 |
InfluxDB | 2.7.10 | InfluxDB官網 |
Prometheus | 2.53.3 | Prometheus官網 |
Grafana | 11.4.0 | Grafana官網 |
Windows Exporter | 0.24.0 | GitHub Releases |
NSSM | 2.24 | NSSM官網 |
三、詳細安裝步驟
3.1 Jmeter安裝與配置
3.1.1 安裝Java環境
- 下載JDK 11+(如Adoptium Temurin),安裝時勾選“Add to PATH”;
- 驗證Java安裝:打開命令提示符,輸入
java -version
,顯示版本信息則成功。
3.1.2 安裝Jmeter
- 下載Jmeter二進制zip包(如
apache-jmeter-5.6.3.zip
); - 解壓至
C:\jmeter
,進入C:\jmeter\bin
,雙擊jmeter.bat
啟動; - 驗證啟動:打開界面后,右鍵“Test Plan”→“Add”→“Threads (Users)”→“Thread Group”,若能正常添加則安裝成功。
3.1.3 安裝InfluxDB插件
- 下載jmeter-influxdb2-listener-plugin(如
jmeter-plugins-influxdb2-listener-2.8.jar
); - 將jar包復制到
C:\jmeter\lib\ext
目錄,重啟Jmeter。
3.2 InfluxDB安裝與配置
3.2.1 安裝InfluxDB
- 下載InfluxDB Windows安裝包(如
influxdb2-2.7.10-windows-amd64.msi
); - 雙擊安裝,按向導完成,默認安裝路徑
C:\Program Files\InfluxData\InfluxDB
; - 啟動服務:打開PowerShell(管理員),輸入
net start influxdb
。
3.2.2 初始化配置
- 訪問
http://localhost:8086
,首次登錄創建管理員賬號(如admin
/admin123
); - 創建Organization(如
jmeter-org
)、Bucket(如jmeter
,保留默認7天數據保留期); - 生成Token:進入“Data”→“Tokens”→“Generate Token”→“Read/Write”,保存Token(如
my-token-xxxx
)。
3.3 Prometheus安裝與配置
3.3.1 安裝Prometheus
- 下載Prometheus Windows zip包(如
prometheus-2.53.3.windows-amd64.zip
); - 解壓至
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)
- 下載NSSM,解壓至
C:\nssm
,將nssm.exe
復制到C:\Windows\System32
; - 打開命令提示符(管理員),輸入
nssm install Prometheus
,在彈出窗口配置:- Path:
C:\Prometheus\prometheus.exe
- Arguments:
--config.file=C:\Prometheus\prometheus.yml
- Path:
- 啟動服務:
nssm start Prometheus
,驗證:訪問http://localhost:9090
,顯示Prometheus界面。
3.4 Windows Exporter安裝(Prometheus監控依賴)
- 下載Windows Exporter MSI包(如
windows_exporter-0.24.0-amd64.msi
); - 雙擊安裝,默認端口
9182
,服務自動啟動; - 驗證:訪問
http://localhost:9182/metrics
,顯示系統指標數據。
3.5 Grafana安裝與配置
3.5.1 安裝Grafana
- 下載Grafana Windows zip包(如
grafana-11.4.0.windows-amd64.zip
); - 解壓至
C:\Grafana
,進入C:\Grafana\bin
,雙擊grafana-server.exe
啟動; - 驗證:訪問
http://localhost:3000
,默認賬號admin
/admin
,首次登錄需修改密碼。
3.5.2 添加數據源
-
添加InfluxDB數據源:
- 左側菜單“Connections”→“Add new connection”→搜索“InfluxDB”;
- URL:
http://localhost:8086
,Token:輸入InfluxDB生成的Token; - Organization:
jmeter-org
,Bucket:jmeter
,保存并測試連接。
-
添加Prometheus數據源:
- 左側菜單“Connections”→“Add new connection”→搜索“Prometheus”;
- URL:
http://localhost:9090
,保存并測試連接。
3.5.3 導入儀表盤
- 導入Jmeter測試結果儀表盤:左側“+”→“Import”→輸入ID
17440
(JMeter Report InfluxDB2.0); - 導入Windows系統監控儀表盤:輸入ID
10467
(Windows Exporter Dashboard); - 選擇對應數據源(InfluxDB/Prometheus),完成導入。
四、工具集成與驗證
4.1 Jmeter與InfluxDB集成
- 打開Jmeter,創建測試計劃,添加“Thread Group”(10用戶,Ramp-Up 10秒);
- 添加“HTTP Request”(測試目標URL,如
https://www.example.com
); - 添加“Backend Listener”:
- Backend Listener Implementation:
io.github.mderevyanko.aqa.visualizer.InfluxDatabaseBackendListenerClient
; - Parameters:
influxDBUrl
:http://localhost:8086
influxDBToken
:my-token-xxxx
influxDBOrganization
:jmeter-org
influxDBBucket
:jmeter
testName
:my-test
- Backend Listener Implementation:
4.2 完整流程驗證
- 啟動服務:確保InfluxDB、Prometheus、Grafana服務運行;
- 運行Jmeter測試:點擊Jmeter啟動按鈕,執行測試計劃;
- 驗證數據寫入:
- InfluxDB:訪問
http://localhost:8086
→“Explore”→查詢from(bucket: "jmeter") |> range(start: -1m)
,查看是否有數據; - Grafana:打開導入的Jmeter儀表盤,觀察實時測試指標(響應時間、吞吐量);
- InfluxDB:訪問
- 驗證系統監控:查看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
- 檢查項:
- InfluxDB Token權限是否為“Read/Write”;
- Jmeter插件是否放置在
lib/ext
目錄; - Backend Listener參數是否正確(尤其Organization和Bucket名稱)。
六、部署主要用途
-
性能測試全鏈路監控:
實時跟蹤Jmeter測試過程中的響應時間、錯誤率、吞吐量,結合系統資源(CPU、內存)變化,定位性能瓶頸。 -
系統穩定性監控:
通過Prometheus+Windows Exporter長期監控服務器指標,Grafana設置告警(如CPU使用率>80%),及時發現異常。 -
測試報告可視化:
替代Jmeter原生報告,Grafana儀表盤支持自定義圖表(如響應時間分布、請求趨勢),便于團隊協作與報告分享。 -
多場景對比分析:
存儲歷史測試數據(InfluxDB),對比不同版本/環境下的性能差異,優化系統設計。
七、工具版本與端口匯總表
工具 | 版本 | 默認端口 | 配置文件路徑 |
---|---|---|---|
Jmeter | 5.6.3 | - | C:\jmeter\bin\jmeter.properties |
InfluxDB | 2.7.10 | 8086 | C:\Program Files\InfluxData\InfluxDB\influx-configs |
Prometheus | 2.53.3 | 9090 | C:\Prometheus\prometheus.yml |
Grafana | 11.4.0 | 3000 | C:\Grafana\conf\custom.ini |
Windows Exporter | 0.24.0 | 9182 | - |
通過以上步驟,即可在Windows環境下完成Jmeter+Grafana+InfluxDB+Prometheus的部署與集成,實現性能測試與系統監控的一體化可視化平臺。