一、添加響應斷言
選中需要進行斷言的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、因為大小寫敏感造成響應失敗,如果被匹配的字符串不需要關注大小寫,則可以降低匹配級別,類似降到“包括”、“匹配”的級別,這樣可以響應成功。
要測試的模式:
要測試的模式列表。默認每種模式都單獨測試,如果模式失敗,則不會檢查更多模式。與 “模式匹配規則” 的 “或者” 搭配時,可以實現 “或” 邏輯。
二、查看斷言結果
一、添加 “斷言結果” 監聽器,運行腳本后看可以在這里看到所有請求的斷言結果。
如果失敗,將顯示失敗的斷言信息。

第一次運行斷言失敗
如果成功,則只顯示請求的信息:

修改后,第二次運行斷言成功
二、在“查看結果樹” 中,也可以看到斷言的結果。
“查看結果樹” 中的斷言結果