Postman之?dāng)嘌?檢查點(diǎn)
Postman的test本質(zhì)上是JavaScript代碼色乾,通過(guò)我們編寫(xiě)測(cè)試代碼,每一個(gè)tests返回True,或是False领突。
每一個(gè)tests實(shí)際上就是一個(gè)測(cè)試用例
官方文檔給出了很多驗(yàn)證方式暖璧,我們通過(guò)實(shí)例來(lái)進(jìn)行學(xué)習(xí)
接口返回結(jié)果:
{
???"state": 1,
???"message": null,
???"data": null
}
1、檢查狀態(tài)碼
tests["Status code is 200"] =responseCode.code === 200;
//5.0版本以上
pm.test("Status code is 200",function () {
???pm.response.to.have.status(200);
});
2君旦、檢查響應(yīng)時(shí)間
tests["Response time is less than200ms"] = responseTime < 200;
//5.0版本以上
pm.test("Response time is less than200ms", function () {
???pm.expect(pm.response.responseTime).to.be.below(200);
});
3澎办、檢查body是否含有字段
tests["Body matches string"] =responseBody.has("string_you_want_to_search");
//5.0以上版本
pm.test("Body matches string",function () {
???pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
例子:
tests["返回State等于1"] =responseBody.has("\"state\":1");
//5.0以上版本
pm.test("返回State等于1",function () {
???pm.expect(pm.response.text()).to.include("\"state\":1");
});
解析:
tests["測(cè)試點(diǎn)"] = responseBody.has("需要查找的字符串");
請(qǐng)求返回:
{
??? "state": 1,
??? "message": null,
??? "data": null
}
例如:
tests["返回State等于1"] =responseBody.has("\"state\":1");
tests["返回State等于1哈哈哈哈"] =responseBody.has("1");
tests["message"] =responseBody.has("message");
tests["message"] =responseBody.has("\message\":null");
tests["data"] =responseBody.has("data");
tests["data"] =responseBody.has("\"data\":null");
4、檢查是否等于字符串
tests[
“檢查點(diǎn)的名稱” ] =responseBody(表達(dá)式) === “包含的字符串”
5金砍、JSON Schema驗(yàn)證
var jsonData = JSON.parse(responseBody);
var schema = {
??"state": 1,
??"message": null,
??"data": null
}
tests["json格式驗(yàn)證"] =tv4.validate(jsonData, schema); //驗(yàn)證json格式
tests["state"] =jsonData["state"] == "1";
tests["message"] =jsonData["message"] == null;
tests["data"] =jsonData["data"] == null;
通過(guò)上面例子局蚀,可以做Json的驗(yàn)證了。
6恕稠、日志輸出
console.log(jsonData["state"])
…. View->Show Postman Console…查看日志輸出琅绅。
tv4為Postman引入的外部庫(kù),想了解的可以去看官方文檔
另外Postman還提供了一些方法如:
responseCookies
request.data["key"]=="value"
request.headers["key"]=="value"
request.method
request.url
request
responseHeaders
responseBody
responseTime
responseCode 包含code鹅巍,name千扶,detail
iteration
這些方法可以幫助我們做更多的事情,比如通過(guò)一個(gè)接口拿到cookie值骆捧,然后把cookie設(shè)置成全局變量澎羞,提供給其他接口使用
當(dāng)我們寫(xiě)測(cè)試腳本時(shí),可能會(huì)遇到腳本書(shū)寫(xiě)錯(cuò)誤或是需要一些log來(lái)輔助我們完善腳本敛苇,
我們可以打開(kāi) View->Show Postman Console妆绞,打開(kāi)后我們可以通過(guò)console.log(xxx)來(lái)輸出日志和查看錯(cuò)誤信息
參考文檔:https://blog.csdn.net/nikita1995/article/details/81284984