JMeter中的監(jiān)聽器有很多種古拴,這里主要介紹常用的幾種:聚合報(bào)告氓润、圖形結(jié)果罢荡、查看結(jié)果樹以及斷言結(jié)果憨募。
聚合報(bào)告 Aggregate Report
? 作用:記錄這次性能測(cè)試的總請(qǐng)求數(shù)紧索、錯(cuò)誤率、用戶響應(yīng)時(shí)間(中間值菜谣、90%珠漂、最少、最大)尾膊、吞吐量等媳危,用以幫助分析被測(cè)試系統(tǒng)的性能。在聚合報(bào)告中眯停,各個(gè)響應(yīng)時(shí)間不能超過客戶的要求济舆,就是合格,例如不能超過響應(yīng)時(shí)間2s莺债,大于2s就是不合格的.
在這里用一個(gè)測(cè)試連接進(jìn)行嘗試:
點(diǎn)擊運(yùn)行滋觉,得到聚合報(bào)告如下,聚合報(bào)告可以是調(diào)優(yōu)的參考:
1. Label :每個(gè) JMeter 的 element(例如 HTTP Request)都有一個(gè) Name 屬性齐邦,這里顯示的就是 Name 屬性的值椎侠;
2.#Samples :表示測(cè)試中一共發(fā)出了多少個(gè)請(qǐng)求,如果模擬10個(gè)用戶措拇,每個(gè)用戶迭代1次我纪,那么這里就顯示對(duì)應(yīng)的 HTTP Request的執(zhí)行次數(shù)是10;(因?yàn)樵谀M過程中丐吓,經(jīng)過兩次lcts5... 所以在這里顯示的總執(zhí)行次數(shù)為20)
3. Average :平均響應(yīng)時(shí)間——默認(rèn)情況下是單個(gè) Request 的平均響應(yīng)時(shí)間浅悉,當(dāng)使用了 Transaction Controller 時(shí),也可以以Transaction 為單位顯示平均響應(yīng)時(shí)間券犁;(通過報(bào)告可以得到登錄行為在哪個(gè)HTTP Request的響應(yīng)時(shí)間最長(zhǎng))
4.Median :50%用戶的響應(yīng)時(shí)間小于此值术健,表示中位數(shù);
5.90%Line :90%用戶的響應(yīng)時(shí)間小于此值粘衬;
6.Min:最少響應(yīng)時(shí)間荞估;
7.Max:最大響應(yīng)時(shí)間咳促;
8.Error% :本次運(yùn)行測(cè)試中出現(xiàn)錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù);
9.Throughput: 吞吐量勘伺,默認(rèn)情況下表示每秒完成的請(qǐng)求數(shù)(Request per Second)跪腹,當(dāng)使用了 Transaction Controller 時(shí),也可以表示類似 LoadRunner 的 Transaction per Second 數(shù) KB/sec飞醉;
10.Received KB/sec :每秒從服務(wù)器端接收到的數(shù)據(jù)量冲茸,相當(dāng)于LoadRunner中的Throughput/Sec;
11.Sent KB/sec:每秒發(fā)送多少KB的數(shù)據(jù)缅帘;
圖形結(jié)果 Graph Results
作用:通過圖形展示出本次性能測(cè)試數(shù)據(jù)的分布噪裕。?圖形結(jié)果一般作為聚合報(bào)告的分析輔佐。
1股毫、樣本數(shù)目:總共發(fā)送到服務(wù)器的請(qǐng)求數(shù)(聚合報(bào)告中的TOTAL #Samples)。
2召衔、最新樣本:代表時(shí)間的數(shù)字,是服務(wù)器響應(yīng)最后一個(gè)請(qǐng)求的時(shí)間铃诬。
3、吞吐量:服務(wù)器每分鐘處理的請(qǐng)求數(shù)苍凛。
4趣席、平均值:總運(yùn)行時(shí)間除以發(fā)送到服務(wù)器的請(qǐng)求數(shù)。
5醇蝴、中間值:代表時(shí)間的數(shù)字宣肚,有一半的服務(wù)器響應(yīng)時(shí)間低于該值而另一半高于該值。
6悠栓、偏離:服務(wù)器響應(yīng)時(shí)間變化霉涨、離散程度測(cè)量值的大小,或者惭适,換句話說笙瑟,就是數(shù)據(jù)的分布。
查看結(jié)果樹 View Results Tree
?作用:以結(jié)果樹的形式顯示測(cè)試結(jié)果癞志。查看結(jié)果樹監(jiān)聽器放置的位置不同往枷,得到的結(jié)果也不同。在線程組下添加察看結(jié)果樹凄杯,查看線程組下所有請(qǐng)求的結(jié)果错洁;放在具體某個(gè)請(qǐng)求下,只查看此請(qǐng)求的結(jié)果戒突;若放在某個(gè)控制器節(jié)點(diǎn)下屯碴,則查看此控制器下節(jié)點(diǎn)執(zhí)行的結(jié)果。
?如下圖妖谴,這里的監(jiān)聽器放在線程組下窿锉,所有會(huì)顯示所有的HTTP Request循環(huán)10次的結(jié)果酌摇。綠色代表測(cè)試通過,紅色代表失敗嗡载。
????而在下圖中窑多,監(jiān)聽器放在第一個(gè)HTTP Request下面,因此看到的是同個(gè)HTTP Request循環(huán)10次的結(jié)果洼滚。
取樣器結(jié)果
Thread Name: 線組名稱埂息;
Sample Start: 啟動(dòng)開始時(shí)間 ;
Load time: 加載時(shí)長(zhǎng) 遥巴;
Latency: 等待時(shí)長(zhǎng) 千康;
Size in bytes: 發(fā)送的數(shù)據(jù)總大小 ;
Headers size in bytes: 發(fā)送頭大小 铲掐;
Body size in bytes: 發(fā)送數(shù)據(jù)的其余部分大小 拾弃;
Sample Count: 發(fā)送統(tǒng)計(jì) ;
Error Count: 錯(cuò)誤統(tǒng)計(jì) 摆霉;
Response code: 返回碼 豪椿;
Response message: 返回消息 ;
Response headers:返回頭信息 携栋;
請(qǐng)求?
數(shù)據(jù)獲取方式搭盾、路徑、地址等以及傳遞的參數(shù)婉支、cookie 鸯隅;
響應(yīng)數(shù)據(jù)?
響應(yīng)加載的頁面html;
斷言結(jié)果 Assertion Results
? ?作用:用于檢查測(cè)試中得到的響應(yīng)數(shù)據(jù)等是否符合預(yù)期向挖,用以保證性能測(cè)試過程中的數(shù)據(jù)交互與預(yù)期一致蝌以,一般與結(jié)果樹結(jié)合使用。
如何設(shè)置/添加斷言何之?
一個(gè)HTTP可以添加一條斷言饼灿。如下圖,給第二條HTTP增加一個(gè)響應(yīng)斷言
1帝美、響應(yīng)文本:響應(yīng)服務(wù)器返回的文本內(nèi)容碍彭,HTTP協(xié)議排除Header部分;
2悼潭、響應(yīng)代碼:指請(qǐng)求返回的狀態(tài)庇忌,如200 ;
3舰褪、響應(yīng)信息:指請(qǐng)求返回的響應(yīng)信息皆疹,如OK、not found 占拍;
4略就、Response Headers : 匹配響應(yīng)的頭信息 捎迫;
5、Request Headers :請(qǐng)求頭信息表牢;
6窄绒、URL樣本:匹配URL鏈接;
7崔兴、Document(text):對(duì)文檔內(nèi)容進(jìn)行匹配彰导。通過Apache Tika從各種的文檔中提取的文本進(jìn)行驗(yàn)證,包括響應(yīng)文本敲茄,pdf位谋、word等等各種格式。jmeter會(huì)用Apache Tika去解析服務(wù)器響應(yīng)內(nèi)容堰燎,耗內(nèi)存掏父、也耗時(shí)間,解析易失敗秆剪,盡量少用或不用损同。多用響應(yīng)文本方式來進(jìn)行斷言驗(yàn)證。
8鸟款、Ignore Status:一個(gè)請(qǐng)求有多個(gè)響應(yīng)斷言,其中第一個(gè)響應(yīng)斷言選中此項(xiàng)茂卦。當(dāng)?shù)谝粋€(gè)響應(yīng)斷言失敗時(shí)可以忽略此響應(yīng)結(jié)果何什,繼續(xù)下一個(gè)斷言。如果下一個(gè)斷言成功則還是可以判定事物成功的等龙。
9处渣、Resquest Data:相應(yīng)的數(shù)據(jù)。
模式匹配規(guī)則
1蛛砰、包括:響應(yīng)內(nèi)容包括需要匹配的內(nèi)容即代表響應(yīng)成功罐栈,支持正則匹配;
2泥畅、匹配:(1) 相當(dāng)于 equals 荠诬。當(dāng)返回值固定時(shí),可以返回值做斷言位仁,效果和equals相同柑贞;(2) 正則匹配 。 用正則表達(dá)式匹配返回結(jié)果聂抢,但必須全部匹配钧嘶。 即正則表達(dá)式必須能匹配整個(gè)返回值,而不是返回值的一部分琳疏。?
3有决、Equals : 返回結(jié)果與你指定斷言完全一致闸拿,大小寫敏感,需要匹配的內(nèi)容是字符串非正則表達(dá)式 书幕;
4新荤、SubString:響應(yīng)內(nèi)容包含需要匹配的內(nèi)容才代表響應(yīng)成功,大小寫敏感按咒,需要匹配的內(nèi)容是字符串非正則表達(dá)式?迟隅。?
舉例:
斷言第二個(gè)HTTP的相應(yīng)代碼為200。當(dāng)返回狀態(tài)碼確實(shí)為200時(shí)励七,斷言結(jié)果中不提示異常智袭,結(jié)果樹中不報(bào)錯(cuò)。
而當(dāng)把斷言改為555時(shí)掠抬,看到以下情況: