一、Postman斷言
一個完整的接口測試,包括:請求->獲取響應正文->斷言,我們已經知道了請求與獲取響應正文,下面來介紹如何用postman進行斷言。

這個”Tests”就是我們需要處理斷言的地方,postman很人性化的幫我們把斷言所用的函數全給准備好了:

舉例說明:首先設置一個斷言場景,根據斷言場景來舉例說明Postman斷言如何使用。
1、判斷HTTP返回狀態碼為200
2、判斷響應正文中是否包含:"statusCode":200
3、解析響應正文,並判斷statusCode的值是200,message的值是”Success”
第一步:在SNIPPETS中,往下拉,有一項”Status code:Code is 200”,這個就是為場景中的第 1 條准備的,判斷HTTP返回狀態碼是否為200。點擊這一項,可以看到在其左邊,斷言代碼自動添加,見下圖:

分析如下:
pm.test["Status code is 200"]中的test是一個內置對象(函數),test["Status code is 200"]是指為這個斷言起個名稱叫”Status code is 200”,這個名稱可以自行修改。
pm.response.to.have.status(200)中的responseCode是內置對象,responseCode對象中有個屬性是code,是指HTTP狀態碼的code,判斷code是否為200.
綜合起來,這句代碼的意思是:名稱為”Status code is 200”的斷言中,判斷responseCode對象的code屬性值(HTTP狀態碼)是否為200。
第二步:同樣在SNIPPETS中,找到一項”Response body:Contains string”,這個就是為場景中的第2條准備的,判斷響應正文中的字段。點擊后,在其左邊,斷言代碼自動添加,見下圖:

其中我們需要修改想要在響應報文中找到的內容:
pm.expect(pm.response.text()).to.include("string_you_want_to_search"); //對照第2條場景:判斷響應正文中是否包含:"statusCode":200

第三步:我們需要解析JSON串了,所以,在SNIPPETS中找到”Response body:JSON value check”並點擊,在其左邊,斷言代碼自動添加,見下圖:

我們可以看出,這里面其實是JS代碼,jsonData變量其實是解析完JSON后的對象,在JS中,一個JSON對象獲取其屬性的值,直接是用jsonData.value,於是,我們把代碼給修改一下,來判斷第3條場景:
pm.expect(jsonData.value).to.eql(200); //判斷statusCode的值是200
pm.expect(jsonData.value).to.eql('Success'); //判斷message的值是”Success”

我們可以看到一共有Tests的斷言4個,點擊Send,發送請求,在響應區內可以看到如下圖:PASS表示斷言通過,FAIL表示斷言失敗。

作者:keitwo
鏈接:https://www.jianshu.com/p/5e69f2a304f8
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。