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
}