如果响应正文中的 id 具有依赖性,如何使用预请求脚本在邮递员中设置 2 个集合变量?
How to set 2 collection variables in postman using pre-request script if the id's in the response body have dependency?
我正在尝试通过从响应正文中选择 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
}
]
}
- 提取
id
包含 subId
不为空
const res = pm.response.json();
const matchEle = res.result.find(e => e.subId !== null);
pm.collectionVariables.set("id", matchEle.id); //26
- 在
subId
中提取 id
- 如果获取所有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
我正在尝试通过从响应正文中选择 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
}
]
}
- 提取
id
包含subId
不为空
const res = pm.response.json();
const matchEle = res.result.find(e => e.subId !== null);
pm.collectionVariables.set("id", matchEle.id); //26
- 在
subId
中提取
id
- 如果获取所有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