學習使用Jmeter做壓力測試(三)--資料庫測試 - ITREAD01.COM

文章推薦指數: 80 %
投票人數:10人

資料庫測試. JMeter可以做為Web伺服器與瀏覽器之間的代理閘道器,以捕獲瀏覽器的請求和Web伺服器的響應,這樣就可很容易的生成效能測試指令碼。

學習使用Jmeter做壓力測試(三)--資料庫測試 首頁 最新 HTML CSS JavaScript jQuery Python3 Python2 Java C C++ Go SQL 首頁 最新 Search 學習使用Jmeter做壓力測試(三)--資料庫測試 2019-01-17254 資料庫測試     JMeter可以做為Web伺服器與瀏覽器之間的代理閘道器,以捕獲瀏覽器的請求和Web伺服器的響應,這樣就可很容易的生成效能測試指令碼。

根據指令碼,JMeter可通過執行緒組來模擬真實使用者對Web伺服器做壓力測試。

本文描述使用JMeter進行資料庫測試的過程。

建立測試計劃,模擬 併發使用者傳送SQL請求到資料庫。

測試資料庫。

       效能測試的目標是找到系統的效能瓶頸。

本文將通過構造測試場景,完成對資料庫的測試。

場景: 1.單使用者:a.SQL語句優化;  b.資料庫約束檢查;  c.分頁查詢; 2.併發使用者:a.資料庫連線池、WEB執行緒池、資料庫死鎖; 步驟: (資料庫)測試計劃: 1.新增併發使用者 新增執行緒組(ThreadGroup),修改名稱為JDBCUsers。

設定執行緒數為5,迴圈次數為2。

其他配置項不變。

2.新增JDBC請求 2.1.選中執行緒組,右鍵新增->配置元件->JDBCConnectionConfiguration。

其實,這個就是通過JDBC連線資料庫的配置檔案。

修改DataBaseConnectionConfiguration的配置: DatabaseURL:jdbc:mysql://localhost:3306/jmetertest JDBCDriverclass:com.mysql.jdbc.Driver Username:username Password:passwd VariableName:mysql 連線配置名在測試計劃中是唯一的,後面會與JDBC請求繫結。

2.2.選中執行緒組,右鍵新增->取樣器(Sampler)->JDBCRequest。

這個就是通過JDBC向資料庫傳送的請求。

修改: VariableName:mysql 這個和資料庫連線配置(JDBCConnectionConfiguration)中的配置名是一致的,代表一種對應關係。

即我的這個JDBC請求是要通過名為mysql的 資料庫連線配置檔案來向資料庫傳送的。

Query:SELECTid,name,sexFROM usersWHEREname='lisi'  3.新增監聽器用於檢視/儲存測試結果 選中執行緒組,右鍵新增->監聽器->檢視結果樹。

選中執行緒組,右鍵新增->-監聽器->聚合報告。

選中測試計劃,右鍵新增->監聽器->圖形結果。

以上監聽器用來檢視、儲存測試結果。

說明:在點選“執行”之後,若在結果樹看到紅色的JDBCRequest或是聚合報告中Error一列非零。

則說明測試執行有錯誤。

檢視結果樹,取樣器結果頁籤,找到Responsemessage資訊,提示的就是錯誤原因。

比如:nosuitabledriverfoundforjdbc。

說明JDBC驅動(我連線的是mysql資料庫)有問題。

檢視資料庫版本為5.1.30。

網上找到mysql-connector-java-5.1.30-bin.jar。

複製到jmeter主目錄的lib子目錄下,然後在測試計劃頁最下方新增Library即可解決此問題。

  結果分析:     我在實際工作中很少接觸資料庫測試。

所以也是摸著石頭過河。

    接觸過一例資料庫假死的問題,原因是開發寫的SQL語句不嚴謹造成的。

比如:SELECT*FROMuser;看著語句好像沒什麼,但是這表裡面有上千萬條資料。

在WEB頁面是隻有主管級別的使用者才可以操作執行的,但是一執行的話WEB就進入假死狀態。

大約30分鐘才結束這種狀態,實際是開發SQL語句的問題。

多加幾個限制條件 就好了。

其實,主管級別的使用者是有這個查詢的許可權,但都是按條件查,實際不會做查詢全部使用者的操作。

注: . 相關文章 學習使用Jmeter做壓力測試(三)--資料庫測試 Vue入門學習-使用伺服器傳來的JSON資料交給Vue渲染HTML頁面 基於JavaJunit測試框架+jmeter做壓力測試 使用JMeter做效能測試的心得 用httpclient做壓力測試時Toomanyopenfiles的解決辦法 Python模組(學習使用模組和安裝第三方模組) JMeter做壓力測試,先呼叫第一介面,拿到返回值後去呼叫第二個介面(小白級入門) PythonWeb開發Django框架學習(十一)使用框架自帶Admin管理資料庫資料 jmeter做壓力測試心得 孤荷凌寒自學python第五十七天初次嘗試使用python來連線遠端MongoDb資料庫 孤荷凌寒自學python第五十三天使用python寫入和修改Firebase資料庫中記錄 使用springboot中的JPA操作資料庫 使用Flyway管理你的Springboot資料庫版本 使用P6Spy監控你的Springboot資料庫操作 使用dbproxy來處理高併發資料庫請求 分類導航 HTML/CSS HTML教程 HTML5教程 CSS教程 CSS3教程 JavaScript JavaScript教程 jQuery教程 Node.js教程 服務端 Python教程 Python3教程 Linux教程 Docker教程 Ruby教程 Java教程 JSP教程 C教程 C++教程 Perl教程 Go教程 PHP教程 正則表達式 資料庫 SQL教程 MySQL教程 PostgreSQL教程 SQLite教程 MongoDB教程 Redis教程 Memcached教程 行動端 IOS教程 Swift教程 Advertisement 三度辭典 Copyright©2016-2021IT閱讀  Itread01.comAllRightsReserved. 0.001291036605835



請為這篇文章評分?