postman tests

postman中的tests是用做測試結果斷言,支持JavaScript語法。
是在完成API訪問並得到其response迴應之後運行的腳本,一般用於獲取response的內容,用於之後的其他操作。
test腳本需要在某個指定的函數pm.test(…)中執行纔會被識別,且作爲test腳本運行。

pm.test("這裏是測試描述",function(){
    //需要執行的代碼
})

pm.test()中
第一個參數是測試描述(會在測試結果欄顯示),
第二個參數是一個函數,具體執行代碼都在這個函數中運行。
pm對象是Postman的主要對象,所有的內置函數,數據調用等,都需要通過它來實現。

返回測試結果是pass還是fail常用兩種方法:
pm.expect()/.to.be()或.to.have()這樣的,字面意思就是期待什麼或要求它必須是什麼或必須有什麼,才能通過測試。
常用代碼如下:

# “期待”返回結果必須包含某一段內容
pm.expect(從response裏獲取的字符串).to.include("必須包含的內容");

# 返回body值必須完全等於某一段內容
pm.response.to.have.body("必須等於的內容");

# 反應時間必須少於200毫秒
pm.expect(pm.response.responseTime).to.be.below(200);

# 必須返回某一個狀態 如"Created"
pm.response.to.have.status("狀態名");

tests[]是一個JSON格式的對象,tests[…]括號內的字符串是測試的描述, =後面是判斷語句,然後將True或False賦予爲tests[…]的值,然後postman輪訓所有tests對象裏的參數,並返回pass與否的結果。
常用代碼如下:


# 反應時間必須少於200毫秒
tests["Response time is less than 200ms"] = responseTime < 200;

# 判斷反應代號是否等於某一個指定的代號
tests["Status code name has string"] = responseCode.name.has("Created");

常用的代碼片段:

var jsonData=JSON.parse(responseBody)

/*對協議狀態碼斷言*/

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

/*對業務狀態碼status斷言*/

tests["驗證業務狀態碼是0"]=jsonData.status===0

/*對返回數據username斷言*/

tests["驗證username是:zhansansan"]=jsonData.data.username==="zhansansan"

/*判斷返回值中有token字段,並且把token值存儲起來*/
if (jsonData.data.token)
{
    tests["獲取token成功"]=true
    pm.environment.set("loginToken",jsonData.data.token);
}
else
{
    tests["獲取token失敗"]=false
}

官方總結的常用測試腳本方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章