接口和协议组成 Postman 环境变量设置问题求助

· 2017年05月05日 · 最后由 回复于 2017年05月08日 · 1793 次阅读

问题背景:

最近在借助 Postman 做一个简单的接口自动化,由于流程较长,所以下一个接口要用到上一个接口的数据,遂使用设置环境变量的方法保存一些变量,以便后续接口使用。

问题描述:

现在有 A、B 两个接口,A 接口返回的responsebody中是以下结构,我要取rows里面的order_id给 B 接口用。

{
  "status": 1,
  "code": 0,
  "msg": "获取**成功!",
  "data": {
    "rows": [
      {
        "order_id": "1493967886001",
         ......
      }
    ],
    "pagenation": {
      "total": "1",
      "page": "1",
      "pagesize": "20",
      "page_offset": 0,
      "page_total": 1
    }
  }
}

解决办法:

1、在 A 接口的test里面设定环境变量

var data = JSON.parse(responseBody);

if(data.status ==1){
    tests["查询成功"] = true;
    postman.setEnvironmentVariable("order_id", data.data.rows.order_id);
}
else{
    tests["查询成功"] = flase;
}

2、在 B 接口的参数Body中调用{{order_id}},但是我发现查看环境变量,A 接口的这个值并没有赋予到环境变量order_id里面。

问题分析

其他接口我也是这样调用是没有问题的,但是这个接口不同的是在 A 接口的response里面的rows内多了一个[],所有没有成功赋予该值到order_id。我百度了一下资料,并没有相关的介绍,所有在此问问各位有什么解决的办法。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 2 条回复 时间 点赞
#2 · 2017年05月08日 Author
lovoro 回复

嗯,谢谢,已经解决了

试下这个了 data.data.rows[0].order_id
或者这样循环去找
for (var i = 0;i < jsonData.data.rows.length;i++){
var list = jsonData.data.rows[i];
tests["订单编号"+list.order_id] =list.order_id
}

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册