(轉)學習使用Jmeter做壓力測試(三)--數據庫測試


數據庫測試

 

 

        JMeter可以做為Web服務器與瀏覽器之間的代理網關,以捕獲瀏覽器的請求和Web服務器的響應,這樣就可很容易的生成性能測試腳本。

根據腳本,JMeter可通過線程組來模擬真實用戶對Web服務器做壓力測試。本文描述使用JMeter進行數據庫測試的過程。創建測試計划,模擬

並發用戶發送SQL請求到數據庫。測試數據庫。

        性能測試的目標是找到系統的性能瓶頸。本文將通過構造測試場景,完成對數據庫的測試。

 

場景:

 

1.單用戶: a.SQL語句優化;    b.數據庫約束檢查;   c.分頁查詢;

2.並發用戶: a.數據庫連接池、WEB線程池、數據庫死鎖;

 

 

步驟:

(數據庫)測試計划:

1.添加並發用戶

添加線程組(Thread Group),修改名稱為JDBC Users。設置線程數為5,循環次數為2。其他配置項不變。





2.添加JDBC請求

2.1.選中線程組,右鍵 添加->配置元件->JDBC Connection Configuration。其實,這個就是通過JDBC連接數據庫的配置文件。

 

修改 DataBase Connection Configuration 的配置:

Database URL:jdbc:mysql://localhost:3306/jmetertest

JDBC Driver class:com.mysql.jdbc.Driver

Username:username

Password:passwd

Variable Name:mysql  連接配置名在測試計划中是唯一的,后面會與JDBC請求綁定。

 

2.2.選中線程組,右鍵添加->采樣器(Sampler)->JDBC Request。這個就是通過JDBC向數據庫發送的請求。

 

修改:

Variable Name:mysql  這個和數據庫連接配置(JDBC Connection Configuration)中的配置名是一致的,代表一種對應關系。即我的這個JDBC請求是要通過名為mysql的

數據庫連接配置文件來向數據庫發送的。

Query:SELECT id,name,sex FROM  users WHERE name='lisi' 

 

3.添加監聽器用於查看/存儲測試結果

選中線程組,右鍵添加->監聽器->查看結果樹。

 

 

 

選中線程組,右鍵添加->-監聽器->聚合報告。

 

 

選中測試計划,右鍵添加->監聽器->圖形結果。

 

以上監聽器用來查看、保存測試結果。

說明:在點擊 “運行”之后,若在結果樹看到紅色的 JDBC Request 或是 聚合報告中Error一列非零。則說明測試執行有錯誤。

查看結果樹,取樣器結果頁簽,找到 Response message 信息,提示的就是錯誤原因。

比如:no suitable driver found for jdbc 。說明JDBC驅動(我連接的是mysql數據庫)有問題。

查看數據庫版本為 5.1.30。網上找到mysql-connector-java-5.1.30-bin.jar。復制到jmeter主目錄的lib子目錄下,然后在測試計划頁最下方添加Library即可解決此問題。 




 

 

結果分析:

        我在實際工作中很少接觸數據庫測試。所以也是摸着石頭過河。

        接觸過一例數據庫假死的問題,原因是開發寫的SQL語句不嚴謹造成的。比如:SELECT * FROM user; 看着語句好像沒什么,但是這表里面有上千萬條數據。

在WEB頁面是只有主管級別的用戶才可以操作執行的,但是一執行的話WEB就進入假死狀態。大約30分鍾才結束這種狀態,實際是開發SQL語句的問題。多加幾個限制條件

就好了。其實,主管級別的用戶是有這個查詢的權限,但都是按條件查,實際不會做查詢全部用戶的操作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM