我將向您展示使用JMeter的圖形用戶界面設置測試方案有多么容易。 但是在深入研究細節之前,讓我們先介紹一下基本術語:
測試計劃 :描述測試方案
線程組 :代表運行您的測試方案的用戶。
樣本 :一種發送請求和等待響應的方式。 HTTP請求,JDBC請求,SOAP / XML-RPC請求和Java對象請求是示例示例。 邏輯控制器 :用于自定義JMeter用于決定何時發送請求的邏輯 偵聽器 :接收測試結果并顯示報告。 計時器 :導致JMeter在線程發出的每個請求之前延遲一定的時間。 斷言 :測試應用程序是否返回預期的響應
注意 : 這篇文章并不是JMeter的替代文檔。 JMeter的文檔很好。 您可以在其用戶手冊(http://jakarta.apache.org/jmeter/usermanual/index.html)中找到詳細信息。假設我們有一個將每個事務記錄到關系數據庫中的應用程序。我們將創建一個測試計劃–循序漸進–為了回答以下問題。
- 一秒鐘內可以將幾筆交易記錄插入到交易表中?
- 將單個交易記錄插入交易表需要多少時間?
- 并發線程數(用戶)如何影響插入/秒數和平均響應時間?
- 記錄數如何影響插入/秒數和平均響應時間?
步驟1
將mysql jdbc驅動程序復制到JMeter安裝的lib文件夾中。 JMeter在類路徑中需要合適的jdbc驅動程序以連接到數據庫。
Example ~/tools/jakarta-jmeter-2.3.4/lib/mysql-connector-java-5.0.5.jar
我們將把客戶的訂單和訂單結果存儲在交易表中。
CREATE TABLE transactions (id INT NOT NULL AUTO_INCREMENT,customer_id INT NOT NULL,order_id INT NOT NULL,result INT,PRIMARY KEY (id)
);
第2步
創建一個測試計劃,并將其命名為“ Test MYSQL DB”。 然后將以下jmeter組件添加到測試計劃中。
- 名為“數據庫用戶”的線程組
- JDBC請求類型的采樣器
- JDBC連接配置類型的Config元素
- 類型為“ 隨機變量”的三個配置元素
- 摘要報告類型的偵聽器
添加這些組件后,JMeter測試計劃如下圖所示。

第三步
配置數據庫用戶。 線程組組件模擬數據庫用戶。
1.用戶數(線程)
2.用戶將發送請求多少次(循環計數)。 如果選擇'Forever' ,則線程將在while(true){…}循環中運行,直到您決定停止測試為止。

第四步
配置JDBC連接池。 JDBC連接配置組件用于創建jdbc連接池。 數據庫URL,jdbc驅動程序,數據庫用戶和密碼均使用此組件進行配置。 連接池由“變量名稱”標識。 JDBC采樣器(請求)使用此變量名稱(連接池名稱)來彈出和推送連接。 我將測試連接池命名為“我的數據庫池”

第5步
定義將在INSERT語句中使用的隨機變量。 在此測試中,我使用了三個隨機變量: 用戶ID,訂單ID和結果 。 下圖顯示了用戶ID的隨機數配置。 隨機數生成器將為我們提供1到1000000之間的隨機整數。我們可以使用名稱user_id來引用生成的隨機數。

第6步
JDBC Request組件是我們告訴用戶(線程)要做什么的地方。 在步驟3 “我的數據庫池”中配置的池的名稱將用作“綁定到池的變量名稱” 。 所有線程將執行準備好的語句。 用戶ID,訂單ID和結果將由隨機數配置器生成(在步驟5中進行描述)

步驟7
現在,我們已將線程配置為將事務記錄插入到事務表中。 在最后一步中,我們將添加摘要報告類型的偵聽器,以查看測試結果。

結果告訴我們,在無限循環中工作的10個并發用戶(線程)可以在事務表中插入近3300行。 插入行所花費的平均時間為2毫秒。 您也可以選擇“圖形結果”偵聽器以查看結果的直觀表示。
我創建并運行了一個簡單的數據庫測試計劃。 希望這篇文章對您有所幫助。 謹記這個座右銘
如果無法衡量,就無法管理也無法改善
測試愉快...
參考: 使用我們的JCG合作伙伴 Ilkin Ulas的JMeter進行負載測試關系數據庫 , 所有您的博客都屬于我們博客。
翻譯自: https://www.javacodegeeks.com/2012/04/jmeter-load-testing-relational.html