postman接口自動化測試之添加Tests斷言/檢查點


一、概念

Postman的Tests本質上是JavaScript代碼,通過我們編寫測試代碼,每一個Tests返回True,或是False,以判斷接口返回的正確性。

其實,每一個Tests實際上就是一個檢查點

 

二、使用場景

  1. 需要檢查請求結果或http狀態碼的正確性
  2. case較多
  3. case需要重復執行,比如每次版本迭代時的例行回歸。
  4. 對結果的檢查比較復雜,比如要求結果要返回10條內容,難道你每次都要數一下嘛?

如果你在做接口測試時出現以上任一場景,勢必會耗費很多重復且無腦的人力成本。這個時候,我們就需要一些自動化校驗來代替我們無效的人力成本,從而大大提高測試效率及准確率

 

三、設置方法

1.  從右側的【SNIPPETS】列表中選擇示例進行設置

【點擊】列表中你想要添加的檢查點,比如其中一個【Status code:Code is 200】

會自動在【Tests】編輯框內添加【Status Code is 200】的檢查點。

 

其他示例檢查點的設置同上。

 

但,示例畢竟是是示例,只是列舉了一些比較常用的檢查點,但我們實際的檢查點會很復雜,比如檢查response中的某個字段的值,在比如統計某個列表中的內容長度。

這個時候,我們就需要自己去編寫js腳本來實現檢查點。

 

2.  自行在【Tests】的編輯框內編寫

檢查response中某個字段的值:

var jsonData = pm.response.json(); //校驗服務器返回的response中的code字段等於0
pm.test("code = 0", function () { pm.expect(jsonData.code).to.eql(0); });

 

統計某個列表中的內容長度:

//獲取結果response中的【data】字段下的【list】列表的長度
var length = jsonData.data.list.length //判斷長度是否等於8
pm.test("list.length=8",function(){ pm.expect(length).to.eql(8); }); //判斷長度是否大於0
if(length>0){ //if中判斷為真,則判定輸入banners.length大於0
    var a = 1; pm.test("list.length大於0",function(){ if(a==1); }); }else{ //if中判斷為假,則判定輸入banners.length不大於0
    pm.test("list.length不大於0",function(){ pm.expect(length).to.eql(1); }); }

 

在這里只舉了3個例子,大家可根據自己的測試需求編寫js腳本添加響應的檢查點接即可。

 

執行:

如圖所示,4個檢查點均PASS通過

 

 

四、示例檢查點詳解

1)Setting an environment variable  (設置一個環境變量)

2)Setting a nested object as an environment variable (將嵌套對象設置為環境變量)

3)Getting an environment variable (獲取環境變量)

4)Getting an environment variable (whose value is a stringified object)  獲取一個環境變量(其值是一個字符串化的對象)

5)Clear an environment variable (清除一個環境變量)

6)Set a global variable (設置一個全局變量)

7)Get a global variable (獲取一個全局變量)

8)Clear a global variable (清除全局變量)

9)Get a variable (獲取一個變量)

10)Check if response body contains a string (檢查響應主體是否包含字符串)

11)Check if response body is equal to a string (檢查響應主體是否等於一個字符串)

12)Check for a JSON value (檢查JSON值

13)Content-Type is present (內容類型存在

14)Response time is less than 200ms (響應時間小於200ms

15)Status code is 200 (狀態碼是200

16)Code name contains a string (代碼名稱包含一個字符串

17)Successful POST request status code (成功的POST請求狀態碼

18)Use TinyValidator for JSON data (對於JSON數據使用TinyValidator

19)Decode base64 encoded data (解碼base64編碼的數據

20)Send an asynchronous request (發送異步請求

21)Convert XML body to a JSON object (將XML正文轉換為JSON對象

 

 

初入職場熱愛分享的打工人一枚,請大家多多指教~~


免責聲明!

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



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