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

JMeter 連接 MySQL 資料庫壓測圖文教程:JDBC 配置與 SQL 取樣器

     編輯:MySQL 資料庫相關知識

前言:JMeter 做資料庫壓測,JDBC Request 是核心

Apache JMeter 不僅能壓測 HTTP,透過 JDBC 組件可直接對資料庫執行 SQL、預備語句、呼叫預存程序,模擬真實業務負載。本文記錄從下載驅動、配置連線池、編寫取樣器、查看結果的完整流程。

一、準備 MySQL JDBC 驅動

  1. 下載 mysql-connector-java-x.x.xx.jar(官方或 Maven 中央倉庫)。
  2. 放入 JMeter 類路徑:<JMeter_Home>/lib/(推薦)或 /lib/ext/。
    瀏覽添加jar
  3. 重啟 JMeter。

二、配置 JDBC Connection Configuration(連線池)

  1. 測試計劃 → 右鍵 Add → Config Element → JDBC Connection Configuration。
    添加配置
  2. 關鍵欄位填寫:
    配置詳情
    • Variable Name Bound to Pool:myDB(自定義,供取樣器引用)。
    • Database URL:jdbc:mysql://192.168.1.141:3306/bugfree?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
    • JDBC Driver Class:com.mysql.cj.jdbc.Driver (8.0+) 或 com.mysql.jdbc.Driver (5.1)。
    • Username / Password:資料庫帳密。
    • Max Number of Connections:連線池大小,建議等於線程組並發數。
    • Auto Commit:True(單條 SQL),事務測試設 False 並搭配 Transaction Controller。

三、添加 JDBC Request 取樣器

  1. 線程組 → 右鍵 Add → Sampler → JDBC Request。
    添加取樣器
  2. 配置:
    SQL配置
    • Variable Name:與連線池一致(myDB)。
    • Query Type:Select Statement / Update Statement / Callable Statement / Prepared Statement / Prepared Select Statement。
    • SQL Query:實際 SQL,支援參數化 ? 佔位符(Prepared 類型時)。
    • Parameter values / types:對應 ? 的值與 JDBC 類型(如 VARCHAR, INTEGER),可引用 JMeter 變數 ${var} 或函數 __Random。
    • Result variable name:查詢結果存入變數(如 dbResult),供後置處理器(JSON Extractor、正則)解析斷言。

四、添加聽眾器查看結果

  • View Results Tree:檢視每次請求的 SQL、參數、回應、耗時、錯誤堆疊。
    結果樹
  • Summary Report / Aggregate Report:吞吐量、平均響應時間、錯誤率、百分位。
  • Backend Listener (InfluxDB/Grafana):實時監控儀表板。

五、進階技巧

場景實現
參數化壓測(不同用戶、不同 ID)CSV Data Set Config 讀取資料檔 → 變數 ${userId} → SQL SELECT * FROM t WHERE id = ? 參數綁定 ${userId}
事務測試(轉帳、扣庫存)Transaction Controller 包裹多個 JDBC Request,連線池 Auto Commit=False,最後加 Commit / Rollback 取樣器
預存程序呼叫Query Type = Callable Statement,SQL = {call proc_name(?, ?)}
連線洩漏排查添加 tearDown Thread Group 執行 SELECT COUNT(*) FROM information_schema.processlist WHERE USER='test' 驗證連線釋放

常見報錯

  • No suitable driver:jar 未放入 lib/ 或未重啟 JMeter。
  • Communications link failure:URL/IP/Port/防火牆/skip-name-resolve。
  • Public Key Retrieval is not allowed:URL 加 allowPublicKeyRetrieval=true(8.0+)。
  • Maximum pool size exceeded:線程數 > 連線池 Max Connections,調大或限制線程。

JMeter + JDBC 讓資料庫壓測脫離應用程式代碼,直擊 SQL 層效能瓶頸,是性能基線測試、新索引驗證、鎖競爭複現的利器。

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