上一節(jié)中,我們了解了jmeter的一此主要元件,那么這些元件如何使用到性能測試中呢。這一節(jié)創(chuàng)建一個(gè)簡單的測試計(jì)劃來使用這些元件。該計(jì)劃對(duì)應(yīng)的測試需求。
1)測試目標(biāo)網(wǎng)站是fnng.cnblogs.com 和 tt-topia.rhcloud.com
2)測試目的是該網(wǎng)站在負(fù)載達(dá)到20 QPS 時(shí)的響應(yīng)時(shí)間。
QPS 解釋
QPS:Query Per Second 每秒查詢率。是一臺(tái)查詢服務(wù)器每秒能夠處理的查詢次數(shù)。在因特網(wǎng)上,作為域名系統(tǒng)服務(wù)器的機(jī)器的性能經(jīng)常用每秒查詢率來衡量。
為了達(dá)成預(yù)期的測目的,需要需要在jmeter中建立一個(gè)測試計(jì)劃。因?yàn)楸敬螠y試僅要求完成對(duì)fnng.cnblogs.com 和 tt-topia.rhcloud.com 兩個(gè)博客首頁請(qǐng)求,因此只需要使用HTTP Request Sampler 即可。
建立測試計(jì)劃
啟動(dòng)jmeter后,jmeter會(huì)自動(dòng)生成一個(gè)空的測試計(jì)劃,用戶可以基于該測試計(jì)劃建立自己的測試計(jì)劃。
添加線程組
--------------------------------------------------------------------------------
一個(gè)性能測試請(qǐng)求負(fù)載是基于一個(gè)線程組完成的。一個(gè)測試計(jì)劃必須有一個(gè)線程組。測試計(jì)劃添加線程組非常簡單。在測試計(jì)劃右鍵彈出下拉菜單(添加-->Threads(Users)--->線程組)中選擇線程組即可。
jmeter中 每個(gè)測試計(jì)劃至少需要包含一個(gè)線程組,當(dāng)然也可以在一個(gè)計(jì)劃中創(chuàng)建多個(gè)線程組,那么多個(gè)線程組之間又會(huì)怎樣的順序執(zhí)行(串行還是并行)?在測試計(jì)劃下面多個(gè)線程是并行執(zhí)行的,也是說這些線程組是同時(shí)被初始化并同時(shí)執(zhí)行線程組下的Sampler的。
線程組主要包含三個(gè)參數(shù):線程數(shù)、準(zhǔn)備時(shí)長(Ramp-Up Period(in seconds))、循環(huán)次數(shù)。
線程數(shù):虛擬用戶數(shù)。一個(gè)虛擬用戶占用一個(gè)進(jìn)程或線程。設(shè)置多少虛擬用戶數(shù)在這里也是設(shè)置多少個(gè)線程數(shù)。
準(zhǔn)備時(shí)長:設(shè)置的虛擬用戶數(shù)需要多長時(shí)間全部啟動(dòng)。如果線程數(shù)為20 ,準(zhǔn)備時(shí)長為10 ,那么需要10秒鐘啟動(dòng)20個(gè)線程。也是每秒鐘啟動(dòng)2個(gè)
線程。
循環(huán)次數(shù):每個(gè)線程發(fā)送請(qǐng)求的次數(shù)。如果線程數(shù)為20 ,循環(huán)次數(shù)為100 ,那么每個(gè)線程發(fā)送100次請(qǐng)求。總請(qǐng)求數(shù)為20*100=2000 。如果勾選
了“永遠(yuǎn)”,那么所有線程會(huì)一直發(fā)送請(qǐng)求,一到選擇停止運(yùn)行腳本。
設(shè)置合理的線程數(shù)對(duì)于能否達(dá)到測試目標(biāo)有決定性的影響。在本例中,要求得到網(wǎng)站首頁在20 QPS 負(fù)載情況下的響應(yīng)時(shí)間,如果如果線程數(shù)量設(shè)
置的過小,則很可能無法達(dá)到設(shè)定的QPS要求。另外,設(shè)置合理的循環(huán)次數(shù)也很重要,除了上面介紹的固定循環(huán)次數(shù)與永遠(yuǎn)外;也可以靈活的選擇設(shè)定
測試運(yùn)行時(shí)間。勾選“調(diào)度器”,進(jìn)行調(diào)度器配置。
添加HTTP請(qǐng)求
--------------------------------------------------------------------------------
添加完成線程組后,在線程組上右鍵菜單(添加--->Sampler--->HTTP請(qǐng)求)選擇HTTP請(qǐng)求。對(duì)于jmeter來說,取樣器(Sampler)是與服務(wù)器進(jìn)
行交互的單元。一個(gè)取樣器通常進(jìn)行三部分的工作:
向服務(wù)器發(fā)送請(qǐng)求
記錄服務(wù)器的響應(yīng)數(shù)據(jù)