postman 接口返回值有多个相同key时(不唯一),怎么提取第2个value给下一接口调用?

  1. 云栖社区>
  2. 博客>
  3. 正文

postman 接口返回值有多个相同key时(不唯一),怎么提取第2个value给下一接口调用?

搁浅@殇 2019-03-26 16:12:01 浏览425 评论1

摘要: postman 接口返回值有多个相同key时(不唯一),怎么提取第2个value给下一接口调用?

这个问题之前困扰了我很久,一直搜索类似的博客都没找到答案,终于自己慢慢摸索中找到了答案!
(博客引用请注明链接,谢谢。)

用postman做接口测试,肯定会遇到上一接口的返回值给下一接口调用的问题,那么需要可将上一参数设置为全局变量。

1、如图1的“parentId”要给到下一接口调用,可将“parentId”设置为全局变量(图2)。
在“Tests”中写入代码为:
var data = JSON.parse(responseBody); //获取所有的返回数据;
tests[data.result] = responseBody.has("true");//返回数据中有“true”
tests[data.msg] = responseBody.has("登录成功");//返回数据中有“登录成功”。(这两个断言依照返回数据填写)
pm.globals.set("parentId", data.data.parentId);//将“parentId”设置为全局变量(“parentId”在返回数据中是唯一的)

image

image

2、设置好后,点击发送,“parentId”的值就自动填写到全局变量中(图3)

image

3、遇到返回值中需要调用的参数不止一个,但是要调用第2个,返回数据如图4--“parentStudentId”不止一个,该怎么办呢?
如果按照上面的代码“pm.globals.set("parentStudentId", data.data.parentStudentId);”发送的话,是获取不到“parentStudentId”的值(图5)

image

image

4、因为data的数据中“parentStudentId”有多个值,那肯定代码中要注明获取的是data数据中的哪个,即data[1]表示取第2个,data[0]表示取第1个。
代码如图6(pm.globals.set("parentStudentId", data.data[1].parentStudentId););
此时再请求下,则可获取到“parentStudentId”的值了(图7).
image
image

【云栖快讯】阿里巴巴小程序繁星计划,20亿补贴第一弹云应用立即开通购买,限量从速!  详情请点击

网友评论