jmeter数据库负载测试_JMeter:负载测试关系数据库
jmeter數(shù)據(jù)庫負(fù)載測試
Apache JMeter是完全使用Java編寫的性能測試工具。 可以在請求/響應(yīng)模型上運行的任何應(yīng)用程序都可以使用JMeter進(jìn)行負(fù)載測試。 關(guān)系數(shù)據(jù)庫也不例外:接收sql查詢,執(zhí)行查詢并返回執(zhí)行結(jié)果。我將向您展示使用JMeter的圖形用戶界面設(shè)置測試方案有多么容易。 但是在深入探討細(xì)節(jié)之前,讓我們先介紹一下基本術(shù)語:
測試計劃 :描述測試方案
線程組 :代表運行您的測試方案的用戶。
樣本 :一種發(fā)送請求和等待響應(yīng)的方式。 HTTP請求,JDBC請求,SOAP / XML-RPC請求和Java對象請求是示例示例。 邏輯控制器 :用于自定義JMeter用于決定何時發(fā)送請求的邏輯 偵聽器 :接收測試結(jié)果并顯示報告。 計時器 :導(dǎo)致JMeter在線程發(fā)出的每個請求之前延遲一定的時間。 斷言 :測試應(yīng)用程序是否返回預(yù)期的響應(yīng)
注意 : 這篇文章并不是JMeter的替代文檔。 JMeter的文檔很好。 您可以在其用戶手冊(http://jakarta.apache.org/jmeter/usermanual/index.html)中找到詳細(xì)信息。假設(shè)我們有一個應(yīng)用程序可以將每個事務(wù)記錄到關(guān)系數(shù)據(jù)庫中。我們將創(chuàng)建一個測試計劃–循序漸進(jìn)–為了回答以下問題。
- 一秒鐘內(nèi)可以將幾筆交易記錄插入到交易表中?
- 將單個交易記錄插入交易表需要多少時間?
- 并發(fā)線程數(shù)(用戶)如何影響插入/秒數(shù)和平均響應(yīng)時間?
- 記錄數(shù)如何影響插入/秒數(shù)和平均響應(yīng)時間?
第1步
將mysql jdbc驅(qū)動程序復(fù)制到JMeter安裝的lib文件夾中。 JMeter在類路徑中需要合適的jdbc驅(qū)動程序來連接數(shù)據(jù)庫。
Example ~/tools/jakarta-jmeter-2.3.4/lib/mysql-connector-java-5.0.5.jar我們將把客戶的訂單和訂單結(jié)果存儲在交易表中。
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步
創(chuàng)建一個測試計劃,并將其命名為“ Test MYSQL DB”。 然后將以下jmeter組件添加到測試計劃中。
添加這些組件后,JMeter測試計劃如下圖所示。
第三步
配置數(shù)據(jù)庫用戶。 線程組組件模擬數(shù)據(jù)庫用戶。
1.用戶數(shù)(線程)
2.用戶將發(fā)送請求多少次(循環(huán)計數(shù))。 如果選擇'Forever' ,則線程將在while(true){…}循環(huán)中運行,直到您決定停止測試為止。
第4步
配置JDBC連接池。 JDBC連接配置組件用于創(chuàng)建jdbc連接池。 數(shù)據(jù)庫URL,jdbc驅(qū)動程序,數(shù)據(jù)庫用戶和密碼均使用此組件進(jìn)行配置。 連接池由“變量名稱”標(biāo)識。 JDBC采樣器(請求)使用此變量名稱(連接池名稱)來彈出和推送連接。 我將測試連接池命名為“我的數(shù)據(jù)庫池”
第5步
定義將在INSERT語句中使用的隨機變量。 在此測試中,我使用了三個隨機變量: 用戶ID,訂單ID和結(jié)果 。 下圖顯示了用戶ID的隨機數(shù)配置。 隨機數(shù)生成器將為我們提供1到1000000之間的隨機整數(shù)。我們可以使用名稱user_id來引用生成的隨機數(shù)。
第6步
JDBC Request組件是我們告訴用戶(線程)要做什么的地方。 在步驟3 “我的數(shù)據(jù)庫池”中配置的池的名稱將用作“綁定到池的變量名稱” 。 所有線程將執(zhí)行準(zhǔn)備好的語句。 用戶ID,訂單ID和結(jié)果將由隨機數(shù)配置器生成(在步驟5中進(jìn)行描述)
步驟7
現(xiàn)在,我們已將線程配置為將事務(wù)記錄插入到事務(wù)表中。 在最后一步中,我們將添加摘要報告類型的偵聽器,以查看測試結(jié)果。
結(jié)果告訴我們,在無限循環(huán)中工作的10個并發(fā)用戶(線程)可以在我們的事務(wù)表中插入近3300行。 插入行所花費的平均時間為2毫秒。 您也可以選擇“圖形結(jié)果”偵聽器以查看結(jié)果的直觀表示。
我創(chuàng)建并運行了一個簡單的數(shù)據(jù)庫測試計劃。 希望這篇文章對您有所幫助。 謹(jǐn)記這一座右銘
如果無法衡量,就無法管理也無法改善
測試愉快...
參考: 使用我們的JCG合作伙伴 Ilkin Ulas的JMeter進(jìn)行負(fù)載測試關(guān)系數(shù)據(jù)庫 , 所有您的博客都屬于我們博客。
翻譯自: https://www.javacodegeeks.com/2012/04/jmeter-load-testing-relational.html
jmeter數(shù)據(jù)庫負(fù)載測試
總結(jié)
以上是生活随笔為你收集整理的jmeter数据库负载测试_JMeter:负载测试关系数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络ssid是什么意思怎么设置 网络ss
- 下一篇: gkz cloud sql_使用Clou