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

1、概念

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

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

 

2、使用場景

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

若是你在作接口測試時出現以上任一場景,勢必會耗費不少重複且無腦的人力成本。這個時候,咱們就須要一些自動化校驗來代替咱們無效的人力成本,從而大大提升測試效率及準確率less

 

3、設置方法

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

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

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

 

其餘示例檢查點的設置同上。測試

 

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

這個時候,咱們就須要本身去編寫js腳原本實現檢查點。spa

 

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

檢查response中某個字段的值:code

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經過

 

 

4、示例檢查點詳解

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對象

 

 

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

相關文章
相關標籤/搜索