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

image


二、断言

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');
});
posted @ 2021-09-12 17:51  难删亦删  阅读(312)  评论(0)    收藏  举报