Postman-接口依赖
一、请求依赖
拿到上一个请求的结果,给下一个接口使用?!
1.假设场景
我们的接口 Request1 为登录接口,登录成功将会返回一个 access_token 字段作为标识(已实现)。那么假设接口 Request3 为一个下订单的接口,需要携带登录返回的 access_token 才能正常访问。
2.思路
保证 Request1 在 Request3 之前被运行
将 Request1 返回的 access_token 的值添加到环境变量"参数集"中
_Request3 在请求时引用 access_token 的值
备注:将返回值存在 “全局变量” 或者 “环境变量” 中,视具体业务情况而定,该例中 access_token 的值是与环境有关的,所以这里选择使用环境变量集存储。
3.操作
1.目录中保证 Request1 接口优先执行(用例先后顺序)
2.Request1 中 Tests 的代码
//如果 code 为 200, 并且返回的数据中存在 access_token 关键字,则认为登录成功
if(responseCode.code === 200 && responseBody.has("access_token")){
tests["login"] = true;
//将响应的内容转为 json 格式,并且取到 access_token 内容,添加到环境变量中
var jsonData = JSON.parse(responseBody);
//access_token的取值方式视具体的 json 数据结构而定
postman.setEnvironmentVariable("token",jsonData.result.access_token);
//跳转到 Request3 接口
postman.setNextRequest("Request3")
}else{
tests["login"] = false;
//登录失败,可以选择跳转到对应失败后的处理接口进行测试
//postman.setNextRequest("Other Request")
3.在接口 Request3 中使用变量 token

二、断言
1.根据返回的 Code 判断请求情况
tests["Status code is 200"] = responseCode.code === 200;
2.判断返回的内容中是否存在“关键字”
tests["has access_token"] = responseBody.has("access_token");
3.判断返回内容是否跟预期完全相等。
tests["Body is correct"] = responseBody === "这里可以改为你的预期内容";
4.responseBody 为字符串类型,支持转为 Json 格式
var jsonData = JSON.parse(responseBody);
tests["Your test name"] = jsonData.value === 100;
5.判断请求时长是否小于200ms
tests["Response time is less than 200ms"] = responseTime < 200;
6.判断响应头内容类型
pm.test("Content-Type header为 application/json", () => {
pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json');
});

浙公网安备 33010602011771号