JMeter是一款常用的編程測試軟件,可以通過創建腳本來幫助回歸測試,驗證是否符合預期的結果,能夠為開端帶來一個良好的保障,協助開發人員在極力負荷的成都下測試他們的項目,保證大局觀的同時,考慮到局部的調整。
1、完整的多線程框架允許多個線程同時采樣,并允許不同的線程組同時采樣不同的函數。
2、仔細的圖形用戶界面設計允許更快的操作和更精確的計時。
3、測試結果的緩存和脫機分析/重放。
4、可插拔采樣器允許無限的測試能力。
5、可以使用可插拔計時器選擇多個負載統計信息。
6、數據分析和可視化插件允許很大的擴展性和個性化。
7、函數可用于為測試提供動態輸入或提供數據操作。
它是免費的。開放源碼軟件。
它具有簡單,直觀的圖形用戶界面。
JMeter中負載和性能測試許多不同的服務器類型:網站 - HTTP,HTTPS,SOAP,數據庫通過JDBC,LDAP,JMS,郵件 - POP3
它是獨立于平臺的工具。在Linux / UNIX,JMeter中JMeter中shell腳本點擊可以調用。在Windows上,它可以調用啟動jmeter.bat文件。
它具有完整的Swing和輕量級組件支持(預編譯的JAR使用包javax.swing中*)。
JMeter 測試計劃存儲為XML格式。這意味著可以使用文本編輯器生成一個測試計劃。
它的完整的多線程框架,允許并發多線程和同步采樣不同的功能由單獨的線程組采樣。
它是高度可擴展的。
也可用于執行應用程序的自動化測試和功能測試。
首先打開jmeter軟件,發現顯示的為英文
首先可以通過jmeter的界面工具來設置語言為中文
點擊菜單欄【Options】按鈕
然后依次單擊【Choose language】>【Chinese(simplified)】
設置完成查看效果
也可以通過設置jmeter.properties配置文件來設置語言為中文
打開jmeter.properties配置文件,修改language=zh_CN
1、Label:每個JMeter的element的Name值。例如HTTP Request的Name。
2、Samples:發出請求數量。如果線程組中配置的是,線程數為200,循環次數為50,則總的數量為100000.
3、Average:平均響應時間(單位:ms)。默認是單個Request的平均響應時間,當使用了Transaction Controller時,也可以以Transaction為單位顯示平均響應時間。
4、Median:中位數,也就是 50% 用戶的響應時間。
5、Median:中位數,也就是 50% 用戶的響應時間
6、90% Line:因為在評估一次測試的結果時,僅僅有平均事物響應時間是不夠的。假如有一次測試,總共有10個請求被響應,其中最小響應時間為0.02秒,最大響應時間為110秒,平均事務響應時間為4.7秒。這樣平均時間就毫無意義了。
7、Min:最小響應時間
8、Max:最大響應時間
9、Error%:本次測試中出現錯誤的請求的數量/請求的總數
10、Throughput:吞吐量。默認情況下標示每秒完成的請求數
11、KB/sec:每秒從服務器端接收到的數據量。
準備好驅動包后,需要把jdbc驅動jar包引入測試計劃。
點擊測試計劃-->點擊瀏覽-->選中mysql驅動jar包-->打開,如下圖所示:
這樣驅動就引入進來了。接下來新建一個線程組,如下圖所示:
線程組下新建一個JDBC Connection Configuration配置元件,詳細配置如下圖所示:
到此基本配置結束,可以開始添加jdbc請求測試數據庫啦。新建一個JDBC請求,如下圖所示:
至此一個最簡單的jmeter連接mysql數據庫的腳本就基本準備好了,接下來添加一個監聽器:查看結果樹 ,然后運行腳本即可,結果如下圖所示:
當然,實際應用中,很多時候我們用jmeter測試數據庫時,需要用到參數化,比如,向數據庫插入一些數據,但是插入的數據都有唯一性,這時需要我們insert 語句參數化,jmeter JDBC請求參數化跟其他請求的參數化沒啥不同:(jmeter的幾種參數化方法在此不做敘述),這里舉個簡單參數化的例子,其他方式的參數化也一樣。
jmeter使用內置函數參數化:__Random(1,100,) 意思是生成一個1-100的隨機數,如下圖所示:
接下來在sql里引用即可,如下圖所示:
上圖有兩個地方需要參數化,這時候就可以把函數助手生成的復制下來,替換即可:${__Random(1,100,)},如下圖所示:
這時候執行 20次看看效果,把線程數設為20,運行如下圖所示:
結果如下圖所示:
可以在數據庫里查看一下結果,如下圖所示: