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>123key> 6 <value>测试value> 7 option> 8 <option> 9 <key>456key> 10 <value>测试2value> 11 option> 12 options> 13 <code>0000code> 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数据
持续更新中~~~~