前言
軟件全生命周期開發(fā)中,離不開測試工作阻逮,一款高可用的產(chǎn)品更離不開性能測試粱快,常見的性能測試工具有Loadrunner、JMeter等,我們在這篇文章中主要介紹下JMeter事哭,以便讓大家了解如何通過JMeter來進行性能測試漫雷。
基本概念
JMeter是一款開源的純Java編寫的性能測試工具,我們通晨度洌可以用它來測試Web應(yīng)用程序珊拼,當然也可以用它來進行一些其他測試,比如數(shù)據(jù)庫測試等流炕。
在這篇文章中澎现,我們將通過使用JMeter來測試數(shù)據(jù)庫訪問并生成對應(yīng)的測試報告,來學(xué)習(xí)使用這款性能測試工具每辟。通過這篇文章剑辫,相信大家可以對JMeter的使用有個初步的了解逃贝。
使用介紹
1.下載JMeter
1)到JMeter官網(wǎng)下載最新的發(fā)布版本包茸时,此處下載的版本為apache-jmeter-5.0.zip
;
2)JMeter為解壓即用免安裝的工具神帅,解壓縮后文件目錄如下所示:
2.運行JMeter
1)進入%JMETER_HOME%/bin
目錄下(%JMETER_HOME%為解壓縮后路徑)挠将,雙擊jmeter.bat
文件胳岂,打開JMeter客戶端界面,如下圖所示:
JMeter客戶端主頁面展示了一項測試計劃舔稀,在這里我們保持測試計劃配置值為默認值不變乳丰,后續(xù)我們將再此項測試計劃中新建線程組,進行數(shù)據(jù)庫訪問測試與生成測試文檔内贮。
注意:因為我們要進行數(shù)據(jù)庫訪問的測試产园,所以需要添加相應(yīng)的JDBC驅(qū)動包到classpath路徑下,點擊Browse添加相應(yīng)的驅(qū)動包夜郁,如下圖所示:
3.進行數(shù)據(jù)庫訪問測試并生成相應(yīng)測試文檔
1)右擊TestPlan,添加測試線程組竞端,如下圖所示:
添加成功后界面如下圖:
上圖中有兩個參數(shù)需要注意:1屎即、Number of Threads(users):指的是線程數(shù)量;2事富、Loop Count:為線程重復(fù)執(zhí)行次數(shù)剑勾。這兩個參數(shù)可以用來控制具體測試的執(zhí)行次數(shù),比如將線程數(shù)設(shè)置為10赵颅,重復(fù)執(zhí)行次數(shù)設(shè)置為10虽另,那么相應(yīng)測試將執(zhí)行100次。
2)右擊Thread Group饺谬,添加JDBC Connection Configuration
添加后需要填寫如下圖所示3個部分:
需要填寫內(nèi)容說明:1捂刺、連接池變量名谣拣,很重要,后續(xù)在創(chuàng)建JDBC Request測試取樣器中需要使用族展,用來獲取數(shù)據(jù)庫連接森缠;2、連接池最大連接數(shù)仪缸,這里就填10吧贵涵,即最大10個連接;3恰画、數(shù)據(jù)庫連接配置宾茂,需填寫數(shù)據(jù)庫名、JDBC Driver class拴还、用戶名跨晴、密碼。
填寫完成后片林,相應(yīng)配置如下端盆,大家根據(jù)自己的配置更改:
3)添加JDBC Request測試取樣器;
一定要注意這里需填寫在2)中配置的連接池變量名信息:
填寫測試的sql語句费封,此處為對student表進行插入操作:
大家一定看到了上面用到了${randomVariable}
占位符焕妙,那么這是什么?這是隨機數(shù)變量弓摘,方便測試的時候生成隨機數(shù)使用焚鹊,所以我們還需要創(chuàng)建下隨機數(shù)變量。
注意這里的變量名要與占位符中一樣哦衣盾,如下創(chuàng)建了一個隨機生成1—200的隨機數(shù)變量:
4)創(chuàng)建查看結(jié)果樹寺旺,用來查看具體請求的情況
5)創(chuàng)建聚合報告
我們還需要創(chuàng)建聚合報告爷抓,用來對測試結(jié)果進行聚合統(tǒng)計势决,生成測試報告。
6)OK蓝撇,準備工作完成果复,我們來進行實際測試了,點擊開始按鈕渤昌,對數(shù)據(jù)庫進行100次插入操作虽抄,然后生成相應(yīng)測試報告。等等独柑,怎么執(zhí)行100次操作?還記得1)中的兩個參數(shù)嗎迈窟?沒錯,我們將線程數(shù)設(shè)為10忌栅,重復(fù)執(zhí)行次數(shù)設(shè)為10车酣,這樣就可以執(zhí)行100次插入操作了!設(shè)置成功后點擊開始執(zhí)行測試。
執(zhí)行開始前會先讓你保存一下測試計劃湖员,保存一下吧贫悄。執(zhí)行結(jié)束后便可以查看相應(yīng)的測試報告啦!
查看結(jié)果樹展示了每個請求的相應(yīng)情況:
聚合報告對所有請求進行了聚合統(tǒng)計:
為了方便大家看懂聚合報告娘摔,簡單說明下聚合報告中相應(yīng)參數(shù)的意思吧:
Label:相應(yīng)的測試名窄坦,我們進行了數(shù)據(jù)庫訪問的測試,所以此處為JDBC Request凳寺;
#Samples:發(fā)給服務(wù)器的請求數(shù)鸭津,此處為100,也可以看出我們確實執(zhí)行了100次插入操作读第;
Average:每個請求的平均響應(yīng)時間曙博;
Median:50%請求的響應(yīng)時間都不超過該數(shù)值;
90%Line:90%請求的響應(yīng)時間都不超過該數(shù)值怜瞒;
95%Line:95%請求的響應(yīng)時間都不超過該數(shù)值父泳;
99%Line:99%請求的響應(yīng)時間都不超過該數(shù)值;
Min:最小的響應(yīng)時間吴汪;
Max:最大的響應(yīng)時間惠窄;
Error%:錯誤率=錯誤的請求的數(shù)量/請求的總數(shù);
Throughput:吞吐量即表示每秒完成的請求數(shù)漾橙;
Received KB/sec:每秒從服務(wù)器端接收到的數(shù)據(jù)大懈巳凇;
Sent KB/se:-每秒從客戶端發(fā)送的請求的數(shù)據(jù)大小霜运。
總結(jié)
看到這里脾歇,相信大家已經(jīng)對JMeter這款性能測試工具有了基本的了解,也熟悉了基本操作淘捡,當然JMeter還有許多其他的功能藕各,比如生成測試報告圖表等,大家盡情探索吧焦除。
如果文章對你有幫助激况,別忘了點贊哦~
寫在最后
聊技術(shù),不止于技術(shù)膘魄。
歡迎大家關(guān)注我的個人公眾號:WU雙乌逐,在這里我會與大家分享技術(shù)文章、管理知識以及個人的一些思想感悟创葡。