1、jmeter中的響應端言html
斷言就相似LoadRunner中的檢查點。對上一個請求返回的信息,作字符串、數據包大小、HTML、XML、圖片等作判斷,確保返回的信息的準確性。正則表達式
如下只講解下響應斷言步驟,新建一個線程組,線程組中添加一個http請求,添加響應斷言:添加-》斷言-》響應斷言:服務器
配置說明: app
apply to:是應用範圍,設定匹配的範圍ide
Main sample and sub-samples:匹配範圍爲當前父取樣器,及子取樣器性能
Main sample only :僅當前父取樣器測試
Sub samples only:僅子取樣器url
JMeter Variable:變量值進行匹配線程
要測試的響應文字:針對響應數據不一樣部分進行匹配翻譯
(1)響應文本:響應服務器返回的文本內容,http協議排除header部分
(2)響應代碼:匹配響應代碼,好比http請求中‘200’表明成功
(3)響應信息:匹配響應信息,處理成功返回‘成功’或者「ok」字樣
(4)Response Header:匹配響應頭中的信息
(5)Document(Text):一切Apache Tika 支持服務器響應,包括文本響應,還支持 PDF, Office, Audio, Video formats。
(6) url樣本:是對sample的url進行斷言。若是請求沒有重定向(302),那麼就是這個就是請求url。 若是有重定向(且跟隨重定向),那麼url就包含請求url 和 重定向url
匹配規則:
包括:響應內容包括須要匹配的內容就算成功
匹配:響應內容要徹底匹配匹配內容,不區分大小寫
equals:徹底相等,區分大小寫
substring:響應內容包括匹配內容即爲成功。
否:就至關於取反。 若是上面斷言結果爲true,勾選「否」後,最終斷言結果爲false。若是上面斷言結果爲false,勾選「否」後,則最終斷言結果爲 true。
要測試的模式:這裏就須要輸入 咱們要匹配的響應接口(即接口測試結果的指望值或者其餘指望值)
能夠經過添加斷言結果來查看斷言的執行狀況。
二:正則表達式提取器
容許用戶從做用域內的sampler請求的服務器響應結果中經過正則表達式提取值所需值,生成模板字符串,並將結果存儲到給定的變量名中。
新建一個線程組,線程組中添加一個http請求,添加正則表達式提取器:添加-》後置處理器-》正則表達式提取器:
配置說明:
APPly to:做用範圍(返回內容的斷言範圍)
一、Main sample and sub-samples:做用於主節點的取樣器及對應子節點的取樣器
二、Main sample only:僅做用於主節點的取樣器
三、Sub-samples only:僅做用於子節點的取樣器
四、JMeter Variable:做用於jmeter變量(輸入框內可輸入jmeter的變量名稱),從指定變量值中提取須要的值。
Field to check:要檢查的響應報文的範圍
一、主體:響應報文的主體,最經常使用
二、Body(unescaped):主體,是替換了全部的html轉義符的響應主體內容,注意html轉義符處理時不考慮上下文,所以可能有不正確的轉換,不太建議使用
三、Body as a Document:從不一樣類型的文件中提取文本,注意這個選項比較影響性能
四、Response Headers:響應信息頭(若是你使用的是中文版的Jmeter,會看到這一項是信息頭,這是中文翻譯問題,應以英文爲準)
五、Request Headers:請求信息頭
六、URL:請求url
七、Response Code:響應狀態碼,好比200、404等
八、Response Message:響應信息
(1)引用名稱:下一個請求要引用的參數名稱,如填寫title,則可用${title}引用它。
(2)正則表達式:
():括起來的部分就是要提取的。
(3)模板:用$$引用起來,若是在正則表達式中有多個正則表達式,則能夠是$2$$3$等等,表示解析到的第幾個值給title。如:$1$表示解析到的第1個值
(4)匹配數字:0表明隨機取值,1表明所有取值,一般狀況下填0
(5)缺省值:若是參數沒有取獲得值,那默認給一個值讓它取。
舉例說明:
一、提取單個字符串:
假如想匹配Web頁面的以下部分:name = "file" value = "readme.txt">並提取readme.txt。一個合適的正則表達式:name = "file" value = "(.+?)">。
():封裝了待返回的匹配字符串。
.:匹配任何單個字符串。
+:一次或屢次。
?:不要太貪婪,在找到第一個匹配項後中止。
二、提取多個字符串:
假如想匹配Web頁面的以下部分:name = "file.name" value = "readme.txt">並提取file.name和readme.txt。一個合適的正則表達式:name = "(.+?)" value = "(.+?)"。這樣就會建立2個組,分別用於$1$和$2$
好比:
引用名稱:MYREF
模板:$1$$2$
以下變量的值將會被設定:
MYREF: file.namereadme.txt
MYREF_g0: name = "file.name"value = "readme.txt"
MYREF_g1: file.name
MYREF_g2: readme.txt
在須要引用地方能夠經過:${MYREF}, ${MYREF_g1進行使用。
3、簡單分析
a)結果樹:
取樣器結果:Response code:200 表示執行接口調試成功;
請求:發送的數據;
響應數據:返回的數據;
Thread Name:線程名稱組;
Sample Start:啓動開始時間;
Load time:加載時長;
Latency:等待時長;
Size in bytes: 發送的數據總大小;
Headers size in bytes:發送數據的其他部分大小;
Sample Count:發送統計;
Error Count:交互錯誤統計;
Response code:返回碼;
Response message:返回信息;
Response headers:返回的頭部信息;
b)聚合報告:
Label:httpRequset Name 屬性值;
Samples:測試過程當中一共發出了多少個請求即總線程數,(若是模擬10個用戶,每一個用戶迭代10次,這裏就顯示100),對應圖形報表中的樣本數目;
Average:單個reques的平均響應時間,計算方法是總運行時間除以發送到服務器的總請求數,對應圖形報表中的平均值;
Median:50%用戶的響應時間;
90%Line:90%用戶的響應時間;
Min:服務器響應的最短期;
Max:服務器響應的最長時間;
Error%:本次測試中出錯率,請求的數量除以請求的總數;
Throughput:吞吐量--默認狀況下表示每秒完成的請求數;
KB/Sec:每秒從服務器接收到的數據量,即每秒鐘請求的字節數,時間單位均爲ms;
c)圖形結果:
樣本數目:測試過程當中一共發送了多少個請求即總線程數;
最新樣本:表明時間的數字,是服務器響應最後一個請求的時間;
吞吐量:服務器每分鐘處理的請求數;
平均值:總運行時間除以發送到服務器的請求數;
中間值:有一半的服務器響應時間低於改值而另外一半高於該值;
偏離:表示服務器響應時間變化、離散程度測量值的大小;