Postman接口測試之斷言


一、Postman斷言

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

 
Tests

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

 
SNIPPETS

舉例說明:首先設置一個斷言場景,根據斷言場景來舉例說明Postman斷言如何使用。

1、判斷HTTP返回狀態碼為200

2、判斷響應正文中是否包含:"statusCode":200

3、解析響應正文,並判斷statusCode的值是200,message的值是”Success”

第一步:在SNIPPETS中,往下拉,有一項”Status code:Code is 200”,這個就是為場景中的第 1 條准備的,判斷HTTP返回狀態碼是否為200。點擊這一項,可以看到在其左邊,斷言代碼自動添加,見下圖:

 
Status code

分析如下:

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條准備的,判斷響應正文中的字段。點擊后,在其左邊,斷言代碼自動添加,見下圖:

 
Contains string1

其中我們需要修改想要在響應報文中找到的內容:

pm.expect(pm.response.text()).to.include("string_you_want_to_search");    //對照第2條場景:判斷響應正文中是否包含:"statusCode":200

 
Contains string2

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

 
JSON value check1

我們可以看出,這里面其實是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”

 
JSON value check2

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

 
斷言運行結果


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


免責聲明!

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



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