使用場景
1.是工作中需要直接對數(shù)據(jù)庫進行測試,來得到數(shù)據(jù)庫的瓶頸;
2.當數(shù)據(jù)庫無法性能較差時,可以通過擴展硬件和調(diào)節(jié)參數(shù)來調(diào)優(yōu),其中如果判定時SQL語句需要進行優(yōu)化時,部門關聯(lián)不大的情況下可以直接及將SQL語句拿到數(shù)據(jù)庫中替換對應的參數(shù),直接對數(shù)據(jù)庫中SQL響應時間等進行查看,一遍更好判斷調(diào)優(yōu)方向
3.在實際中還可能存在一些登錄壓測情況,但是不能將賬號和密碼固定,因為這種情況和實際系統(tǒng)使用時不同,此時,可以用jmeter連接數(shù)據(jù)庫的賬號表,直接取出賬號和密碼等信息進行登錄壓測,這樣更符合系統(tǒng)使用情況。更有深入的情況,可以將登錄成功的token等認證信息提取出來,用到后續(xù)的增刪查改壓測中,這個在實際壓測中很常見。
怎么使用JMETER和數(shù)據(jù)庫相連接
測試數(shù)據(jù)庫與測試web程序類似,web程序的測試需要提供接口,而數(shù)據(jù)庫測試則需要提供依賴庫和連接串來測試
需要的插件
1.下載連接數(shù)據(jù)庫插件 mysql-connector-java
連接mysql的jar包下載地址:https://www.mysql.com/downloads/






下載后將下載的包解壓到對應的地方,一邊之后再配置jmeter“測試計劃”中進行配置,由于我的已經(jīng)下載了8.0.33版的驅(qū)動,所以下面我就直接用8.0.33般的驅(qū)動進行演示。
配置實戰(zhàn)
1.打開jmeter工具,在測試計劃中添加數(shù)據(jù)庫連接配置

2.添加數(shù)據(jù)配置信息
右擊測試計劃 → 添加 → 配置元件 →?JDBC Connection Configuration

3.添加JDBC配置元件中的配置信息

? ? ? ? Database?URL:jdbc:mysql://[IP]:[端口]/[數(shù)庫名]
? ? ? ? JDBC Driver class:因為是連接mysql,所以要選擇mysql的驅(qū)動
4.添加線程組,設置線程組
?右擊測試計劃——添加——線程(用戶)——線程組


5. 添加JDBC Request。
右擊線程組 → 添加 → 取樣器 →?JDBC Request

6. 配置JDBC Request。


7.添加必要的監(jiān)聽器.
此處我就暫時只介紹添加的“聚合報告”和“查看結(jié)果樹”,“jp@gc - Transactions per Second”和“jp@gc - PerfMon Metrics Collector“在后續(xù)的介紹中再和大家介紹。
7.1.添加“聚合報告”
右擊JDBC Request——添加——監(jiān)聽器——聚合報告

7.2. 添加“查看結(jié)果樹”
右擊JDBC Request——添加——監(jiān)聽器——查看結(jié)果樹

聚合報告:可以查看事務或者取樣器在某個時間范圍內(nèi)執(zhí)行的匯總結(jié)果
? ? ? ? 各參數(shù)意思:
Label:請求的名稱,就是我們在進行測試的HTTP請求取樣器的名稱
樣本(Samples):總共發(fā)給服務器的請求數(shù)量,如果模擬10個用戶,每個用戶迭代10次,那么總的請求數(shù)為:10*10 =100次
平均值(Average):平均響應時間,所有請求的平均響應時間,單位是毫秒
中位數(shù):50%的用戶響應時間不超過這個值
90% 百分位:90%的用戶響應時間不超過這個值
95% 百分位:95%的用戶響應時間不超過這個值
99% 百分位:99%的用戶響應時間不超過這個值
最小值:請求的最小響應時間
最大值(Max):請求的最大響應時間
異常 %(Error):異常百分比。(錯誤請求的數(shù)量/請求的總數(shù))
吞吐量(Throughput):每秒取樣器執(zhí)行的數(shù)量,相當于 TPS
接收 KB/sec(Received KB/sec):每秒接收的千字節(jié)數(shù)
發(fā)送 KB/sec(Sent KB/sec):每秒發(fā)送的千字節(jié)數(shù)
查看結(jié)果樹:查看結(jié)果樹展示了每個取樣器的請求結(jié)果、請求信息和響應信息??梢酝ㄟ^結(jié)果樹中的內(nèi)容來分析腳本是否存在問題
8.查看結(jié)果,由于查詢和增刪改的SQL和類型不同,所以我用兩個JDBC Request取樣器來進行展示
? ?8.1. 查詢的執(zhí)行情況?


8.2. 增刪改的執(zhí)行情況



總結(jié)
壓測MySQL數(shù)據(jù)庫中關鍵點
1.數(shù)據(jù)庫驅(qū)動配置正確
2.JDBC配置和取樣器等各個參數(shù)配置需正確
3.配置對應需要的監(jiān)聽器,通過監(jiān)聽器的數(shù)據(jù)來看壓測的數(shù)據(jù)庫情況,一般查看“響應時間”和“吞吐量”的數(shù)據(jù)情況,響應時間越小越好,吞吐量越高越好。