進行介面測試時,新增斷言時必不可少的,斷言就是判斷響應內容與預期返回是否一致
進行介面測試時,新增斷言時必不可少的,斷言就是判斷響應內容與預期返回是否一致
postman可以在請求模組的Tests標籤新增斷言,比較方便的是,postman已經提供了一些程式碼片段供我們使用
下面以一個介面例項來說下如何處理斷言:

如上,響應body的內容為一個json格式的字串,這些內容可以作為斷言的依據
切換到Tests標籤,控制檯右側可以看到備用的程式碼片段

1.判斷響應內容是否包含某個字串
點選選擇【Response body:Contains string】,左側出現如下程式碼段

其中,pm是postman的主要物件,一般通過它來呼叫函式、資料等;
Body matches string可以看作這個測試程式碼段的描述說明,可以自己定義;
string_you_want_to_search表示預期響應內容,即用來斷言的標準輸出,需要根據實際情況設定;
改為如下:

意思就是:判斷響應body中是否包含字串“重點人員修改成功”
如果包含,表示斷言結果通過;如果不包含,表示斷言結果不通過。
2.判斷響應內容是否和預期內容完全一致
點選選擇【Response body:Is equal to a string】,左側出現如下程式碼段

其中,response_body_string處填寫的內容要和介面返回的內容完全一致才可以匹配成功
假如響應body內容如下

那麼需要把所有返回的內容填寫到response_body_string處才可以
拷貝響應內容時,把Raw標籤中的原始返回內容放過去即可,這樣避免出現格式問題

3.判斷返回json資料中某個鍵對應的值
如果響應內容是json格式的字串,則可以斷言json資料中的某個鍵值對
點選選擇【Response body:JSON value check】,左側出現如下程式碼段

其中,Your test name表示這個測試片段的名稱,可以自己任意定義;
jsonData.value表示響應json串中的某個鍵,如果響應內容如下

所以,jsonData.value可以是json.status或json.desc或json.data
eql()填寫的預期返回的字串(把100改為斷言內容即可)
最終形式如下:

如果響應內容是巢狀的字典格式,則一層層引用即可,如下:

如果字典中巢狀了列表,則按照索引引用即可,反正要看清響應內容的格式

4.判斷請求返回的狀態碼是否為200
點選選擇【Status code:Code is 200】,左側出現如下程式碼段

其中,Status code is 200表示這個測試片段的名稱,可自己定義

5.判斷響應體中某個返回值的型別

同樣點選選擇【Response body:JSON value check】,然後要把jsonData.value放在一個typeof()函式中,這樣就是判斷輸出值的型別了
斷言設定好後,點選【Send】傳送請求,在響應模組的Test Results標籤中可以看到斷言結果
如果實際返回結果與預期符合,如下:

如果實際返回結果與預期不符,則如下:

2018-12-24 21:23:59