postman接口測試工具test中經常用到的腳本歸納
1.獲取response返回內容
var rsb = responseBody; // 是字符串格式
2.設置環境變量 只能存儲字符串,如果是對象的話則無法在下次運行時獲取到內容,如需要存儲JSON數據,可以用JSON.stringify(..)存儲,再用JSON.parse(..)轉化爲對象使用
pm.environment.set("變量名稱", 變量內容);
postman.setGlobalVariable("accessToken",temp.data.accessToken) //全局變量
postman.setEnvironmentVariable("businessNo",temp.data.contents[0].id) //局部變量
3.獲取環境變量
var v = pm.environment.get("變量名稱");
4.清除某個環境變量
pm.environment.unset("環境變量名");
5.獲取全局變量和普通變量
var gb = pm.globals.get("全局變量名");
var nm = pm.variables.get("普通變量名");
6. Javascript 獲取變量類型
console.log( typeof pm.enviroment );
7.動態生成變量
{{$guid}}:添加v4樣式的guid。
{{$timestamp}}添加當前時間戳
{{$randomInt}}:在0到1000之間添加一個隨機整數。
8.下一個調用接口,可用於指定調用某個接口(注意調用B接口後會順序從B接口運行下去)
postman.setNextRequest(‘下一個接口名');
終止調用(沒有執行到終止調用接口會一直循環下去)
postman.setNextRequest("null");
9. “期待”返回結果必須包含某一段內容
pm.expect(從response裏獲取的字符串).to.include("必須包含的內容");
10.返回body值必須完全等於某一段內容
pm.response.to.have.body("必須等於的內容");
11.反應時間必須少於200毫秒
pm.expect(pm.response.responseTime).to.be.below(200);
12.必須返回某一個狀態 如"Created"
pm.response.to.have.status("狀態名");
13.pm.expect(目標值).to.equal(“獲取校驗值”); //比較相等
14.example using response assertions
pm.test("response should be okay to process", function () {
pm.response.to.not.be.error;
pm.response.to.have.jsonBody("");
pm.response.to.not.have.jsonBody("error");
});
最後貼上我常用的通用接口判斷腳本,支持判斷服務器正常,接口狀態碼正常,正則表達式匹配,響應內容校驗。
// pm.test(responseBody)
if(responseCode.code === 200){
tests["接口請求成功:"] = responseBody.has("\"code\":\"00000000\",");
var temp = JSON.parse(responseBody);
// pm.test(temp.data.userinfo.token)
// postman.setGlobalVariable("accessToken",temp.data.accessToken)
// postman.setEnvironmentVariable("XH","112211")
pm.test("查詢校驗", function () {
var patt=/\"applicationName\":\"牌價查詢\"/;
// pm.test(patt.test(responseBody));
pm.expect(true).to.equal(patt.test(responseBody));
});
}else{
tests["服務器異常"] = false
}