首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

JMeter 建立 MySQL 資料庫效能測試完整教學:JDBC 設定、斷言與監聽器實戰

     編輯:MySQL 資料庫相關知識

Apache JMeter 不僅能壓測 HTTP,配合 JDBC 元件同樣能對資料庫進行負載測試。本文以圖文並茂方式,手把手教學從零建立 MySQL JDBC 測試計畫,涵蓋驅動配置、連線池、SQL 腳本、斷言驗證與結果視覺化。

環境準備

元件版本/來源
MySQL5.1.51 (Windows Essential)
JDBC 驅動mysql-connector-java-5.1.x.jar (下載鏈接)
JMeter2.4+ (任意版本)

前置資料: 測試表 test_table 已含樣本資料(可參考作者前文《Eclipse 批量插入》建立)。

步驟 1:建立測試計畫並載入 JDBC 驅動

  1. 啟動 JMeter,選中「測試計畫」根節點。
  2. 點擊「瀏覽...」按鈕,選擇 mysql-connector-java-5.1.x.jar 載入類路徑。
  3. 此步驟讓 JMeter 能找到 JDBC 驅動類。

JMeter 載入 JDBC 驅動

步驟 2:新增線程組

  • 右鍵「測試計畫」→ 新增 → 執行緒 → 線程組。
  • 設定:執行緒數(虛擬用戶)、Ramp-Up 期間、循環次數。

步驟 3:配置 JDBC Connection Configuration

  1. 右鍵「線程組」→ 新增 → 設定元件 → JDBC Connection Configuration。
  2. 關鍵欄位填寫:
欄位範例值說明
Variable NamedbConn供 JDBC Request 參考的變數名
Database URLjdbc:mysql://localhost:3306/test_dbJDBC 連線字串
JDBC Driver Classcom.mysql.jdbc.DriverMySQL 驅動主類
Username / Passwordroot / 123456資料庫帳密
Max Number of Connections10連線池上限,建議 ≥ 線程數
Validation QuerySELECT 1連線有效性檢查

JDBC Connection Configuration 設定

步驟 4:新增 JDBC Request 執行 SQL

  1. 右鍵「線程組」→ 新增 → 取樣器 → JDBC Request。
  2. 設定:
  • Variable Name: dbConn(對應步驟 3)
  • Query Type: Select Statement / Update Statement / Callable Statement
  • SQL Query: SELECT * FROM test_table WHERE id = ?
  • Parameters: 參數化查詢,如 ${__Random(1,1000)} 隨機 ID。

JDBC Request 設定

步驟 5:新增斷言驗證結果正確性

  1. 右鍵「線程組」→ 新增 → 斷言 → 回應斷言。
  2. 設定:
  • 要檢查的欄位: 回應資料 / 回應代碼 / 回應訊息
  • 模式匹配規則: 包含 / 正則 / 等於
  • 要測試的模式: 如 success、^\d+$ 等。

回應斷言設定

步驟 6:新增監聽器視覺化結果

右鍵「線程組」→ 新增 → 監聽器,建議組合:

監聽器用途
查看結果樹逐請求檢視請求/回應/斷言結果,除錯必備
圖形結果即時繪製吞吐量/回應時間/誤差率曲線
彙總報告 / 統計報告聚合統計:平均、中位數、90%/95%/99% 分位、錯誤率、吞吐量
結果斷言專門顯示斷言成功/失敗統計

完整元件樹

步驟 7:執行測試與結果分析

  1. 工具列點擊「啟動」(綠色播放鍵)或 Ctrl+R。
  2. 觀察「查看結果樹」綠色 = 成功,紅色 = 失敗/斷言失敗。
  3. 測試結束查看「彙總報告」核心指標:
指標健康基準
錯誤率0%
平均回應時間< 100ms (OLTP)
95% 分位< 200ms
吞吐量視業務 SLA 而定

測試執行結果

進階技巧與最佳實踐

  • 參數化資料: 使用 CSV Data Set Config 讀取測試資料檔,實現每執行緒不同參數。
  • 連線池調優: Max Connections = 線程數 × 1.2,避免「連線耗盡」錯誤。
  • 預熱: 設定 Ramp-Up 期間,避免瞬間衝擊導致冷啟動誤判。
  • 長時間穩定性測試: 循環次數設為 Forever,配合 Constant Throughput Timer 控制目標 QPS。
  • 分散式壓測: 主從模式多台 JMeter 協同,突破單機網卡/CPU 瓶頸。

常見錯誤排查

錯誤現象原因解決
Cannot load JDBC driver classjar 未載入/路徑錯誤步驟 1 重新載入、檢查檔案存在
Communications link failure資料庫不可達/埠錯誤/防火牆telnet 測試連通性、檢查 my.cnf bind-address
Connection pool exhaustedMax Connections 過小調大連線池、檢查 SQL 是否未正確關閉連線
斷言失敗但 SQL 正確結果集格式不符預期用「查看結果樹」檢視實際回應結構

JMeter JDBC 測試讓資料庫效能驗證從「感覺快慢」進化為「數據說話」。掌握此技能,上線前跑一輪壓測,讓 MySQL 效能問題無所遁形。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved