簡介
接口斷言是接口測試中用于驗證響應結果是否符合預期的關鍵機制,根據業務需求編寫腳本添加斷言,可驗證接口的正確性。以下內容僅記錄常用的斷言方式,多個接口都有斷言時可以使用事務控制器來隔離不同的斷言。
斷言方式
1、響應斷言
1.1響應文本斷言
文本響應斷言是最常用的一種斷言類型,它用于檢查服務器響應中是否包含特定的文本。例如,我們可以使用文本響應斷言來檢查登錄頁面是否包含“checkType”和“rejectReasons”這兩個關鍵字。如果服務器響應中不包含這些關鍵字,那么斷言將失敗。
在 JMeter 中,文本響應斷言有多種選項,包括:
包含/不包含:檢查服務器響應中是否包含/不包含特定的文本。
匹配/不匹配:使用正則表達式來檢查服務器響應中是否包含/不包含特定的文本。
1.1.1 斷言匹配規則為包括
1.1.2 斷言匹配規則為完全匹配
1.2 響應代碼斷言
響應代碼斷言用于檢查服務器響應的 HTTP 狀態碼是否符合預期。例如,我們可以使用響應代碼斷言來檢查登錄頁面是否返回 HTTP 200 狀態碼。如果服務器返回的狀態碼不是 200,那么斷言將失敗。
在 JMeter 中,響應代碼斷言有多種選項,包括:
等于/不等于:檢查服務器響應的 HTTP 狀態碼是否等于/不等于特定的值。
1.3 JSON斷言
JSON 斷言是 JMeter 中用于驗證 JSON 格式響應的一種斷言方式。該斷言允許用戶指定 JSON 路徑表達式并驗證 JSON 響應是否符合該表達式
JSON 路徑表達式介紹
JMeter 將會對響應進行 JSON 解析,并使用用戶輸入的 JSON 路徑表達式進行驗證。表達式由一系列的屬性名和數組索引組成:以 “$.” 開頭,用“.”和“[]”分隔,遇到數組,使用[下標] 。
1.4 BeanShell斷言
BeanShell 是一種完全符合 Java 語法規范的腳本語言。該斷言它允許用戶在 JMeter 中編寫自定義腳本。
1.4.1 響應代碼斷言
//狀態碼斷言
log.info("狀態碼:" + ResponseCode);
if(ResponseCode.equals("200")){ Failure=false; // 表示斷言成功
}
else{Failure=true; // 表示斷言失敗FailureMessage="響應狀態碼非200"; // 自定義的失敗信息
}
1.4.2 字符串字段比較
String response = prev.getResponseDataAsString();
if(response != null){log.info("響應體:{}", response.replaceAll("(\"identity\":\")(.*?)(\")", "$1***$3")); // 調試用debug.生產環境用info.右上角感嘆號可以查看日志.對響應體的身份證字段脫敏if(response.contains("\"status\":\"pass\"")){ // 響應為JSON格式Failure = false;} else {Failure = true;FailureMessage = "status狀態!=pass";}
} else {Failure = true;FailureMessage = "響應數據為空";
}