為什麼選擇 JMeter?
JMeter 是 Apache Jakarta 專案下的 Java Swing 桌面應用,專為負載測試與效能測量設計。透過 JDBC 取樣器可模擬大量併發資料庫操作,提供圖形化即時回饋,是 DB2 效能驗證的利器。
環境準備
- 下載:JMeter 最新版(撰文時為 1.8)。
- JDK 需求:Sun JDK 1.4+(IBM JDK 不相容)。
- 支援平台:Solaris、Linux、Windows 98/NT/2000。
JDBC 驅動部署
- 將 DB2 JDBC 驅動複製到
<jmeter_home>/lib 目錄。
- DB2 8.1 預設路徑:
c:\program files\ibm\sqllib\java\db2Java.zip。
- 關鍵步驟:將
db2Java.zip 重命名為 db2Java.jar,否則 JMeter 無法識別。
- 若測試 JCC 驅動,直接複製
db2jcc.jar 即可。
建立測試資料集
create db loaddb;
connect to loaddb user db2admin using db2admin;
create table loadtable (col1 varchar(25) not null, col2 varchar(25) not null, col3 varchar(25) not null);
使用附帶 JDBC 程式(清單 1)插入 30,000 筆測試資料。
JMeter 測試計畫建立步驟
- 啟動:執行
bin/jmeter.bat。
- 新增執行緒群組:右鍵 TestPlan → Add → Thread Group。設定 30 執行緒、Ramp-Up 0 秒、Loop Count 100(即 30 併發用戶各執行 100 次)。
- 新增 JDBC Request:右鍵 Thread Group → Add → Sampler → JDBC Request。填寫:
- JDBC URL:
jdbc:db2:loaddb
- JDBC Driver:
COM.ibm.db2.jdbc.app.DB2Driver
- User/Password:db2admin/db2admin
- 連線池設定:視需求啟用。
- SQL 查詢:
select * from loadtable where col1='Col1Test-20015'
- 新增監聽器:右鍵 JDBC Request → Add → Listener → Graph Results(圖形化回應時間)。
- 執行測試:Run → Start,觀察即時圖表(平均回應時間、吞吐量、偏差等)。
驗證測試正確性:斷言機制
JMeter 錯誤報告有限,建議使用 Response Assertion:
- 先在 CLP 執行查詢確認預期結果(如包含
Col1Test-20015)。
- 右鍵 JDBC Request → Add → Assertions → Response Assertion,Add → Patterns to Test 輸入預期字串。
- 新增 Assertion Results 監聽器查看通過/失敗統計。
- 修改斷言為不存在的字串(如
Col1Test-40000)可驗證失敗偵測。
進階應用建議
- 調整執行緒數觀察併發擴展性。
- 為查詢欄位建立索引前後對比效能增益。
- 使用
File → Save Test Plan 保存腳本供回歸測試。
- 結合系統監控工具(vmstat、iostat、db2top)關聯資源瓶頸。
致謝
感謝 IBM 多倫多實驗室 Larry Menard 與 Robert 在 JDBC 專業領域的協助。