JMeter響應斷言詳解


一、添加響應斷言

選中需要進行斷言的Sampler,右鍵添加 “斷言” → “響應斷言”。參數配置如下:

適用於:

1、僅主樣本 - 僅適用於主樣本

2、僅子采樣 - 僅適用於子采樣

3、主樣本和子樣本 - 適用於兩者。

4、要使用的JMeter變量名稱 - 斷言將應用於指定變量的內容。(???)

要測試的字段:

1、文本響應 - 來自服務器的響應文本,即正文,不包括任何HTTP標頭。對應 “查看結果樹” 中 “響應數據” 的內容。

2、響應代碼 - 例如200。對應 “查看結果樹” 中的 “取樣器結果”→“Response code” 。

3、響應信息 - 例如OK。對應 “查看結果樹” 中的 “取樣器結果”→“Response message” 。

4、Response Headers - 包括Set-Cookie頭(如果有的話)。對應 “查看結果樹” 中的 “取樣器結果”→“Response headers”。

5、Request Headers - 對應 “查看結果樹” 中的 “請求”→“Request Headers”。

6、URL樣本 - 當前請求的URL。對應“查看結果樹” 中的 “請求”→ HTTP請求方法后跟着的URL。

7、Document(text) - 通過Apache Tika從各種類型的文檔中提取文本(請參閱查看結果樹文檔視圖部分)。

8、Request Data - 發送到服務器的請求文本,即正文,不包括任何HTTP標頭。對應 “查看結果樹” 中的 “響應數據” → “POST data” / “GET data” 。

9、Ignore Status - 樣本的總體成功取決於斷言結果與現有的響應狀態的結合。當選擇 “Ignore Status” 復選框時,響應狀態被強制成功,再進行本次斷言評估。(具有4xx和5xx范圍內的狀態的HTTP響應通常被認為不成功。執行進一步檢查之前,可以使用“ 忽略狀態 ”復選框來設置狀態。請注意,這將會清除以前斷言失敗的效果,因此請確保“ 忽略狀態”復選框僅用於第一個斷言。)


模式匹配規則:

1、包括 - 如果文本包含正則表達式模式,則為true

2、匹配 - 如果整個文本與正則表達式模式匹配,則為true

3、Equals - 如果整個文本等於模式字符串,則為true(區分大小寫

4、Substring - 如果文本包含模式字符串,則為true(區分大小寫

5、否 - 反轉檢查結果,用於表示不包含,不匹配,不等於,沒有和模式字符串相匹配的Substring。

6、或者 - 一個斷言可以添加多個“要測試的模式”。使用OR選項后,只要其中有1個模式匹配,斷言將會成功。不選擇“OR”時將默認為AND選項,必須所有模式都匹配,斷言才會成功。

注意:

1、“Equals” 和 “Substring” 模式是純字符串,而不是正則表達式。

2、“匹配” 和 “Equals” 要完全等於模式字符串,或者模式字符串的正則表達式形式。

3、“包含” 和 “Substring” 只需要包含有模式字符串,或者模式字符串的正則表達式形式,而不必完全相等。

4、正則表達式中可以傳入參數,如驗證登錄成功后的用戶路徑,傳入用戶名${user}。

1 <a href="/user/${user}" class="model-link inside inverse"><b>.*</b></a>

注意模式字符串不要包含正則表達式的定界分隔符“/”, i.e. 表達式應該寫為“Price: \d+”,而不是“/Price: \d+/”,否則會報錯。更多關於正則表達式的說明見用戶手冊Response_Assertion:http://jmeter.apache.org/usermanual/component_reference.html#Response_Assertion

5、因為大小寫敏感造成響應失敗,如果被匹配的字符串不需要關注大小寫,則可以降低匹配級別,類似降到“包括”、“匹配”的級別,這樣可以響應成功。


要測試的模式:

要測試的模式列表。默認每種模式都單獨測試,如果模式失敗,則不會檢查更多模式。與 “模式匹配規則” 的 “或者” 搭配時,可以實現 “或” 邏輯。


二、查看斷言結果

一、添加 “斷言結果” 監聽器,運行腳本后看可以在這里看到所有請求的斷言結果。

如果失敗,將顯示失敗的斷言信息。

 

 第一次運行斷言失敗

如果成功,則只顯示請求的信息:

 

 修改后,第二次運行斷言成功

二、在“查看結果樹” 中,也可以看到斷言的結果。

 

 “查看結果樹” 中的斷言結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM