如果响应正文中的 id 具有依赖性,如何使用预请求脚本在邮递员中设置 2 个集合变量?
Posted
技术标签:
【中文标题】如果响应正文中的 id 具有依赖性,如何使用预请求脚本在邮递员中设置 2 个集合变量?【英文标题】:How to set 2 collection variables in postman using pre-request script if the id's in the response body have dependency? 【发布时间】:2021-12-17 18:16:17 【问题描述】:我正在尝试通过从响应正文中选择 id 来使用预请求脚本在邮递员中设置 2 个集合变量。 id 有两个,id 和 subId,只有当 id 链接到 subId 时,我才需要在集合变量中设置这两个 id。
需要从下面的 json 响应中获取 id 和 subId(可能有多个记录,其中 id 没有 subId 值)。请帮我解决这个问题。
"result": [
"id": 26,
"name": "Testing",
"code": "TST-012",
"branches": [
"emailId": null,
"country":
"shortName": "Niu",
"currency": "New Zealand Dollar"
],
"subId": [
"id": 46,
"name": "qa",
"code": "qa"
]
,
"id": 27,
"name": "Testing",
"code": "TST-012",
"branches": [
"emailId": null,
"country":
"shortName": "US",
"currency": "US Dollar"
],
"subId": null
]
【问题讨论】:
【参考方案1】:-
提取包含
subId
的id
不为空
const res = pm.response.json();
const matchEle = res.result.find(e => e.subId !== null);
pm.collectionVariables.set("id", matchEle.id); //26
-
在
subId
中提取id
const subIds = _.map(matchEle.subId, _.property("id"));
pm.collectionVariables.set("subIds", JSON.stringify(subIds)); //[46]
如果只获取第一个 id
pm.collectionVariables.set("subId", matchEle.subId[0].id); //46
【讨论】:
感谢您的代码,它真的很有魅力。 @AvinashKunapareddy 请接受我的回答并投票(如果可以的话)以上是关于如果响应正文中的 id 具有依赖性,如何使用预请求脚本在邮递员中设置 2 个集合变量?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swagger 上分析请求(带有查询)并发送不同的响应正文?