更新時(shí)間:2018-08-16 來源:黑馬程序員技術(shù)社區(qū) 瀏覽量:
今天我們一起利用Apache Jmeter(一種接口測試工具)來進(jìn)行壓力測試學(xué)習(xí)。壓力測試主要目的是測試負(fù)載均衡的實(shí)現(xiàn)效果。
安裝Jmeter這里就不做闡述了,上網(wǎng)下載個(gè)最新版就可以了,因?yàn)镴meter是由JAVA語言開發(fā)的,所以安裝之前先把java環(huán)境配置好。
安裝好了之后,Jmeter的bin目錄下有個(gè)Jmeter.bat文件,雙擊就能運(yùn)行了。
運(yùn)行軟件之后,我們右擊“測試計(jì)劃”——“添加”——“Threads(Users)——線程組”,這樣就建好了一個(gè)線程組了,作用當(dāng)然是用來跑線程。
有了線程組之后,我們再右擊線程組,“添加”——“配置元件”——“http請求默認(rèn)值”,在這里面可以設(shè)置一些常用的默認(rèn)的設(shè)置,這里我輸入我們的測試服務(wù)器的IP或域名,這里我輸入“127.0.0.1”,端口號則輸入“8000”,(因?yàn)槲乙獪y試的地址是:127.0.0.1:8000)協(xié)議是“http”,如果要測試的網(wǎng)址是https開頭那就填“https”,其他則默認(rèn),這時(shí)候點(diǎn)擊左上角保存會彈出一個(gè)保存框,這是讓你保存你現(xiàn)在所做的測試配置,以后需要再測試的話的直接打開保存的jmx文件就行了。
保存完了之后,我們再右擊“線程組”——“添加”——“Sampler”——“http請求”。這里和剛才的“http請求默認(rèn)值”不是一樣的嗎?剛剛那個(gè)只是默認(rèn)值,只是用來設(shè)置一些默認(rèn)配置。真正發(fā)起請求的是“http請求”
接著,我們再右擊“線程組”——“添加”——“監(jiān)聽器”——“察看結(jié)果數(shù)”,在這里可以查看到http請求和結(jié)果。每次新建組件和修改配置信息都要點(diǎn)擊保存,頁面配置圖如下所示:,在http請求里面我們在“路徑”里面輸入“/api/departments/”就ok了(這里是我自己本機(jī)的一個(gè)接口),表示默認(rèn)路徑,IP那一欄就不用輸入了。這是因?yàn)樵趆ttp請求默認(rèn)值里面已經(jīng)輸過IP地址,以后可以新建多個(gè)http請求,只要修改路徑就行了,這樣就可以訪問同一個(gè)網(wǎng)站的不同頁面,這就是“http請求默認(rèn)值”的意義所在,把一些共用的設(shè)置寫一遍就好了。
察看結(jié)果樹的結(jié)果
我們新建的“http請求”返回結(jié)果200,表明請求成功,從綠色打鉤也能看出,上圖中的下拉列表框可以選擇顯示格式,我們選擇json,切換到“響應(yīng)數(shù)據(jù)”就可以看到返回的頁面。
設(shè)置線程并發(fā)數(shù)
接下來點(diǎn)擊“線程組”可以看到線程組的設(shè)置頁面,默認(rèn)設(shè)置是1個(gè)線程,1秒啟動,循環(huán)1次。線程數(shù)表示啟動多少個(gè)線程,Ramp-Up Period表示花多長時(shí)間啟動所有線程,循環(huán)次數(shù)表示每個(gè)線程的執(zhí)行次數(shù)。例如,我設(shè)置線程數(shù)為4,Ramp-Up Period為3,循環(huán)次數(shù)2,表示軟件將在3秒內(nèi)啟動4個(gè)線程,也就是3/4秒啟動1個(gè)線程,每個(gè)線程執(zhí)行2次請求。
看下表單結(jié)果樹
線程并發(fā)設(shè)置
此外還可以勾選“調(diào)度器”,比如我填入持續(xù)時(shí)間20,啟動延遲0,將循環(huán)次數(shù)勾選“永遠(yuǎn)”,表示線程立即啟動,執(zhí)行20秒后停止。要注意,如果設(shè)置了持續(xù)時(shí)間和啟動延遲,那么下面的啟動時(shí)間和結(jié)束時(shí)間就不起作用了,就不用管了,點(diǎn)擊運(yùn)行即可。
之前僅僅設(shè)置了“察看結(jié)果樹”這個(gè)監(jiān)聽器,這時(shí)候可以右擊“線程組”——“添加”——“監(jiān)聽器”,里面有很多監(jiān)聽器可供選擇,比如圖形結(jié)果,用表格查看結(jié)果,聚合報(bào)告等等,這些都是反映測試過程的指標(biāo)數(shù)據(jù)。圖形結(jié)果以圖形的形式顯示吞吐量、偏移、平均值等信息,表格結(jié)果顯示每一次請求的時(shí)間,返回,發(fā)送字節(jié)數(shù),連接時(shí)間等等,聚合報(bào)告里面顯示總體請求的吞吐量,錯(cuò)誤率等等。下圖為表格結(jié)果的樣式。
作者:黑馬程序員軟件測試培訓(xùn)學(xué)院
首發(fā):http://409rqu1.cn/special/testzly/index.html