Postman實戰問題歸總
1、如何查看Tests和Pre-request Script里面console.log()打印的值。
答:Postman頂部View——Show Postman Console,即可看到輸出和相關請求和返回內容記錄。如下圖所示
2、如果請求體返回的是JSON字符串,那么Tests斷言時首先得先把JSON字符串轉換成JSON對象,再去校驗JSON值。
答:
1 pm.test("IsSucess為true", function () { 2 //json字符串轉json對象 3 var jsonData = JSON.parse(pm.response.json()); 4 pm.expect(jsonData.IsSucess).to.eql(true); 5 });
3、如果返回體的值為xml格式的,那么Tests如何校驗xml里數據的值。
例:接口返回體xml的值如下。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <response> 3 <options> 4 <option> 5 <key>123</key> 6 <value>測試</value> 7 </option> 8 <option> 9 <key>456</key> 10 <value>測試2</value> 11 </option> 12 </options> 13 <code>0000</code> 14 <message>返回成功</message> 15 </response>
那么如何校驗到以上返回體xml中的第一個option的value值和如何校驗到xml里的message的值。
答:
1 var jsonObject = xml2Json(responseBody); 2 //校驗接口status的code 3 pm.test("Status code is 200", function () { 4 pm.response.to.have.status(200); 5 }); 6 //校驗第一個option的value值 7 pm.test("返回值第一個值是測試", function () { 8 var jsonvalue = jsonObject.response.options.option[0].value; 9 pm.expect(jsonvalue).to.eql("測試"); 10 }); 11 //校驗message的值 12 pm.test("message is 返回成功", function () { 13 var jsonmessage = jsonObject.response.message; 14 pm.expect(jsonmessage).to.eql("返回成功"); 15 });
4、Postman監視器Monitors,監視器只適用於外網的接口,不適用於公司內網的接口監控。內網接口做監視器調用時會有以下報錯:
Error:getaddrinfo ENDOTFOUND XXX.XXX XXX.XXX
5、Postman功能點:
(1)測試環境的配置,postman支持全局變量配置
(2)測試setup配置,postman支持pre-script腳本
(3)測試斷言,postman支持test,如果你不會寫代碼,postman提供了好多test模版點一下就能用,修改下參數,如果這點東西都不想學就別做接口測試了。
(4)測試執行,postman支持collection集合執行,還可以設置執行次數,執行時間
(5)調試的話,postman有postman console
(6)團隊協作的話,postman支持teamwork,可以使用team workspace,還支持collection分享,即使免費的一個月可以分享2000次,還可以導出
(7)持續集成可以用Newman Jenkins啥的
(8)postman還支持mock數據
持續更新中~~~~