轉(zhuǎn)載地址:
https://blog.csdn.net/huyanyan08/article/details/80005044?tdsourcetag=s_pcqq_aiomsg
一硫朦、安裝Jmeter ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
Jmeter官方首頁(yè):http://jmeter.apache.org/
關(guān)于Jmeter可以做什么餐曹,官方上也有非常詳細(xì)的介紹襟沮。另外它的文檔也寫很詳細(xì)永品。如果想學(xué)習(xí)Jmeter匕垫,那么它的文檔將會(huì)是最好的教材娇钱。
我相信你可以在官網(wǎng)上找到下載地址并把它下載下來(lái)。
Jmeter由Java語(yǔ)言開(kāi)發(fā)并扇,最新的Jmeter3.0版本的運(yùn)行需要有Java 7?或之后版本的環(huán)境。我同樣相信你能搞定Java環(huán)境抡诞。
接下來(lái)穷蛹,將下載的apache-jmeter-3.0.zip解壓土陪,進(jìn)入解壓目錄.../apache-jmeter-3.0/bin?。雙擊ApacheJMeter.jar啟動(dòng):
二肴熏、添加HTTP接口測(cè)試 ? ? ? ? ? ? ??
我們的所以工具都會(huì)在Jmeter工具中完成鬼雀,接來(lái)就按照一般步驟來(lái)創(chuàng)建一個(gè)HTTP接口測(cè)試。
如上圖蛙吏,右鍵點(diǎn)擊“測(cè)試計(jì)劃”-->“添加”-->“Threads(Users)”-->“線程組”源哩。
如上圖,設(shè)置線程組鸦做,線程組主要包含三個(gè)參數(shù):線程數(shù)励烦、準(zhǔn)備時(shí)長(zhǎng)(Ramp-Up?Period(in?seconds))、循環(huán)次數(shù)泼诱。
線程數(shù):虛擬用戶數(shù)坛掠。一個(gè)虛擬用戶占用一個(gè)進(jìn)程或線程。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個(gè)線程數(shù)治筒。
準(zhǔn)備時(shí)長(zhǎng):設(shè)置的虛擬用戶數(shù)全部啟動(dòng)的時(shí)長(zhǎng)屉栓。如果線程數(shù)為20,準(zhǔn)備時(shí)長(zhǎng)為10(秒)耸袜,那么需要10秒鐘啟動(dòng)20個(gè)線程友多。也就是平均每秒啟動(dòng)2個(gè)線程。
循環(huán)次數(shù):每個(gè)線程發(fā)送請(qǐng)求的個(gè)數(shù)堤框。如果線程數(shù)為20夷陋,循環(huán)次數(shù)為100?,那么每個(gè)線程發(fā)送100次請(qǐng)求胰锌∑疲總請(qǐng)求數(shù)為20*100=2000?。如果勾選了“永遠(yuǎn)”资昧,那么所有線程會(huì)一直發(fā)送請(qǐng)求酬土,直到手動(dòng)點(diǎn)擊工具欄上的停止按鈕,或者設(shè)置的線程時(shí)間結(jié)束格带。
因?yàn)檫@里要做接口測(cè)試撤缴,所以各個(gè)參數(shù)為均1。
如上圖叽唱,右鍵點(diǎn)擊“線程組”-->“添加”-->“Sampler”-->“HTTP請(qǐng)求”屈呕。
名稱:本屬性用于標(biāo)識(shí)一個(gè)取樣器,建議使用一個(gè)有意義的名稱棺亭。
注釋:對(duì)于測(cè)試沒(méi)有任何作用虎眨,僅用戶記錄用戶可讀的注釋信息。
服務(wù)器名稱或IP:HTTP請(qǐng)求發(fā)送的目標(biāo)服務(wù)器名稱或IP地址。
端口號(hào):目標(biāo)服務(wù)器的端口號(hào)嗽桩,默認(rèn)值為80岳守。
協(xié)議:向目標(biāo)服務(wù)器發(fā)送HTTP請(qǐng)求時(shí)的協(xié)議,可以是HTTP或者是HTTPS碌冶,默認(rèn)值為http?湿痢。
方法:發(fā)送HTTP請(qǐng)求的方法,可用方法包括GET扑庞、POST譬重、HEAD、PUT罐氨、OPTIONS臀规、TRACE、DELETE等岂昭。
Content?encoding?:內(nèi)容的編碼方式以现,默認(rèn)值為iso8859
路徑:目標(biāo)URL路徑(不包括服務(wù)器地址和端口)
自動(dòng)重定向:如果選中該選項(xiàng),當(dāng)發(fā)送HTTP請(qǐng)求后得到的響應(yīng)是302/301時(shí)约啊,JMeter?自動(dòng)重定向到新的頁(yè)面邑遏。
Use?keep?Alive?:當(dāng)該選項(xiàng)被選中時(shí),jmeter?和目標(biāo)服務(wù)器之間使用?Keep-Alive方式進(jìn)行HTTP通信恰矩,默認(rèn)選中记盒。
Use?multipart/from-data?for?HTTP?POST?:當(dāng)發(fā)送HTTP?POST請(qǐng)求時(shí),使用Use?multipart/from-data方法發(fā)送外傅,默認(rèn)不選中纪吮。
同請(qǐng)求一起發(fā)送參數(shù):在請(qǐng)求中發(fā)送URL參數(shù),對(duì)于帶參數(shù)的URL?萎胰,jmeter提供了一個(gè)簡(jiǎn)單的對(duì)參數(shù)化的方法碾盟。用戶可以將URL中所有參數(shù)設(shè)置在本表中,表中的每一行是一個(gè)參數(shù)值對(duì)(對(duì)應(yīng)RUL中的?名稱1=值1)技竟。
如上圖冰肴,右鍵點(diǎn)擊“線程組”-->“添加”-->“監(jiān)聽(tīng)器”-->“察看結(jié)果樹(shù)”。
三榔组、添加新的POST請(qǐng)求 ? ? ? ? ? ? ??
POST請(qǐng)求的添加方式與前面GET請(qǐng)求一樣熙尉。不過(guò)POST請(qǐng)求需要設(shè)置參數(shù)。
服務(wù)器名稱或IP:?127.0.0.1
端口號(hào):8000
方法:POST
路徑:/polls/question_vote/
同請(qǐng)求一起發(fā)送參數(shù):
點(diǎn)擊“添加”按鈕搓扯,添加POST請(qǐng)求的參數(shù)检痰。
名稱:值
qid1
cid1
執(zhí)行測(cè)試:
選擇菜單欄“運(yùn)行”-->“清除”,或者點(diǎn)擊工具欄清除按鈕锨推。然后重新執(zhí)行啟動(dòng)測(cè)試铅歼。并查看結(jié)果樹(shù)公壤。
四、添加斷言 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
對(duì)于自動(dòng)化測(cè)試來(lái)說(shuō)谭贪,斷言必須要有的境钟,如果沒(méi)有斷言我們只能人眼對(duì)比對(duì)接口返回的數(shù)據(jù)锦担,有了斷言功能俭识,就會(huì)簡(jiǎn)化這個(gè)過(guò)程。Jmeter提供了豐富的斷言方法來(lái)幫助我們完成這個(gè)工作洞渔。
如上圖套媚,右鍵點(diǎn)擊HTTP請(qǐng)求“添加”-->“斷言”-->“響應(yīng)斷言”。
要測(cè)試的響應(yīng)字段:響應(yīng)文本磁椒、Document(text)堤瘤、URL樣本、響應(yīng)信息浆熔、Response Headers本辐、Lgnore Staus等選項(xiàng)。雖然接口返回的是Json格式的數(shù)據(jù)医增,但對(duì)于Jmeter來(lái)說(shuō)返回?cái)?shù)據(jù)為文本慎皱,所以,這里可以勾選“響應(yīng)文本”
模式匹配規(guī)則:包括叶骨、匹配茫多、Equals、Substring忽刽。這里只需要驗(yàn)證返回?cái)?shù)據(jù)中是否包含主要的關(guān)鍵字天揖,所以,這里勾選“包括”跪帝。
要測(cè)試的模式:其實(shí)就是斷言的數(shù)據(jù)今膊。點(diǎn)擊“添加”按鈕,輸入要斷言的數(shù)據(jù)伞剑。
運(yùn)行測(cè)試:
再次清除測(cè)試數(shù)據(jù)斑唬,點(diǎn)擊啟動(dòng)測(cè)試,查看結(jié)果樹(shù)纸泄,如下圖赖钞。