如果响应正文中的 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
        }
    ]
}
  1. 提取 id 包含 subId 不为空
const res = pm.response.json();

const matchEle = res.result.find(e => e.subId !== null);

pm.collectionVariables.set("id", matchEle.id); //26
  1. subId
  2. 中提取 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