postman一直都有在用,只是没系统地学过,正好生产有问题需要我传不同的参数调用同一个接口的方式去处理,于是周末花了三个多小时系统地学习了一下。
我们以查询天气接口(www.tianqiapi.com 自行注册)为例,说明get请求用法,需要注册,拿到appid和appsecret,我的如下:
先看一下接口参数说明,只有3个必传:
于是我们在postman中填写好url、参数、头信息(该方法不用填)、方法信息如下:
注意请求参数在body中的格式以及请求头中的Content-Type头域
X-www-form-urlencoded:
from-data
raw
binary
post请求我们以登录osc为例: 输入账号密码以后,我们F12抓包看:
相关参数在后面说明:
浏览器记录密码登录osc:
我们发送请求,这里接口响应200就可以了。
这里演示的是 X-www-form-urlencoded形式,raw 原始文件格式方式也很常用,会在下面的功能里面讲到,不单独列出来了。
cookie信息是为了拿到用户授权以及认证:osc登录方式看着像是jwt,等有时间了再研究一下。
这里我们使用本地开发的接口来进行演示——
本地接口2,分别为get、post请求方式:
调用本地接口:
请注意这里我们接口的url为:{{baseurl}}/getaspect?name={{name}}&age={{age}}
postman中环境变量的引用格式为两个大括号:{{variable}}
我们把name和age设置为了全局变量,对所有接口生效,测试:
post请求:
这里重点说明一下:环境变量的优先级是要大于全局变量的,也就是说当环境变量中和全局变量中均存在某一个变量的时候,有限使用选中的环境变量
这里就是一些简单的js脚本来在接口请求前对变量进行新的赋值或者是判断接口响应状态码、返回值等是否正确。
这里我们举两个例子,剩下的大同小意。 var gname = pm.globals.get("name"); console.log("系统变量name修改前值为:"+gname); pm.globals.set("name", "oschina是最好的开源网站之一"); console.log("系统变量name修改后值为:"+pm.globals.get("name"));
这里我门打印了环境变量中name的值,以及对name重新设值,我们看一下请求结果与控制台输出:
控制台在postman ,左下角第三个图标;
`pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
pm.test("Your test name", function () { var jsonData = pm.response.json(); console.log(jsonData.name); pm.expect(jsonData.name).to.eql("oschina是最好的开源网站之一"); });` 这里我们只做了状态码以及响应结果中的某个字段值的断言,其它断言自行测试。
这里就是多接口管理以及批量参数调用同一个接口或者多个接口了,就是我这次要解决生产问题用到的,网上找的例子写的都不尽人意,自己来吧还是。
注意标红位置,创建collections以及创建request,将创建的请求save到collections中.
执行collections——
执行结果——
参数构造
run页面设置
批量调用结果
整个postman学习了近三个多小时,写这篇博文花了三四个小时…… 将学习到的东西输出出来确实不易,码字不易,如果觉得对你有用,记得收藏点赞哦