【问题标题】:Pulling out specific values from postman response and aggregating them从邮递员响应中提取特定值并聚合它们
【发布时间】:2019-08-29 00:52:28
【问题描述】:

我在我的 Postman API 请求中得到以下响应以获取测试执行报告。

请注意,“field_name”有两组值:“Status”。我想聚合这两个值以获得以下结果: 通过:1 未执行:1

我在互联网上阅读了一些东西,但找不到任何好的东西。感谢帮助!

响应正文 JSON:

[
    {
        "parentId": 3171717,
        "parentType": "test-cycle",
        "automation": "No",
        "links": [
            {
                "rel": "test-case",
                "href": "xxxxxxx/api/v3/projects/20752/test-cases/27774385?versionId=37779716"
            },
            {
                "rel": "test-cycle",
                "href": "xxxxxxx/api/v3/projects/20752/test-cycles/3171717"
            },
            {
                "rel": "self",
                "href": "xxxxxxx/api/v3/projects/20752/test-runs/78572177"
            }
        ],
        "id": 78572177,
        "name": "abcd test case",
        "order": 2,
        "pid": "TR-166875",
        "created_date": "2018-12-05T06:05:32-05:00",
        "last_modified_date": "2019-08-28T06:24:03-04:00",
        "properties": [
            {
                "field_id": 2522370,
                "field_name": "Run Order",
                "field_value": ""
            },
            {
                "field_id": 920264,
                "field_name": "Execution Type",
                "field_value": "501",
                "field_value_name": "Functional"
            },
            {
                "field_id": 920265,
                "field_name": "Planned Start Date",
                "field_value": "2016-12-23T05:00:00+00:00"
            },
            {
                **"field_id": 920273,
                "field_name": "Status",
                "field_value": "605",
                "field_value_name": "Unexecuted"**
            },
            {
                "field_id": 920266,
                "field_name": "Environment",
                "field_value": ""
            },
            {
                "field_id": 1055793,
                "field_name": "Build Number",
                "field_value": ""
            },
            {
                "field_id": 920267,
                "field_name": "Planned End Date",
                "field_value": "2016-12-23T05:00:00+00:00"
            },
            {
                "field_id": 1055794,
                "field_name": "Build URL",
                "field_value": ""
            },
            {
                "field_id": 920269,
                "field_name": "Target Release/Build",
                "field_value": ""
            },
            {
                "field_id": 1055795,
                "field_name": "CI Tool",
                "field_value": "",
                "field_value_name": ""
            },
            {
                "field_id": 920260,
                "field_name": "Assigned To",
                "field_value": "72843",
                "field_value_name": "xxxxxxxx"
            }
        ],
        "test_case": {
            "links": [],
            "id": 27774385
        },
        "test_case_version_id": 37779716,
        "test_case_version": "1.0",
        "creator_id": 72843
    },
    {
        "parentId": 3171717,
        "parentType": "test-cycle",
        "automation": "No",
        "links": [
            {
                "rel": "test-case",
                "href": "xxxxxxx/api/v3/projects/20752/test-cases/15957744?versionId=18722069"
            },
            {
                "rel": "test-cycle",
                "href": "xxxxxxx/api/v3/projects/20752/test-cycles/3171717"
            },
            {
                "rel": "self",
                "href": "xxxxxxx/api/v3/projects/20752/test-runs/26799694"
            }
        ],
        "id": 26799694,
        "name": "xyzab",
        "order": 1,
        "pid": "TR-106714",
        "created_date": "2017-11-26T23:48:28-05:00",
        "last_modified_date": "2019-08-28T06:23:48-04:00",
        "properties": [
            {
                "field_id": 2522370,
                "field_name": "Run Order",
                "field_value": ""
            },
            {
                "field_id": 920264,
                "field_name": "Execution Type",
                "field_value": "501",
                "field_value_name": "Functional"
            },
            {
                "field_id": 920265,
                "field_name": "Planned Start Date",
                "field_value": "1989-12-31T05:00:00+00:00"
            },
            {   
                **"field_id": 920273,
                "field_name": "Status",
                "field_value": "601",
                "field_value_name": "Passed"**
            },
            {
                "field_id": 920266,
                "field_name": "Environment",
                "field_value": ""
            },
            {
                "field_id": 1055793,
                "field_name": "Build Number",
                "field_value": ""
            },
            {
                "field_id": 920267,
                "field_name": "Planned End Date",
                "field_value": "2016-12-23T05:00:00+00:00"
            },
            {
                "field_id": 1055794,
                "field_name": "Build URL",
                "field_value": ""
            },
            {
                "field_id": 920269,
                "field_name": "Target Release/Build",
                "field_value": ""
            },
            {
                "field_id": 1055795,
                "field_name": "CI Tool",
                "field_value": "",
                "field_value_name": ""
            },
            {
                "field_id": 920260,
                "field_name": "Assigned To",
                "field_value": "22409",
                "field_value_name": "xxxxxx"
            }
        ],
        "test_case": {
            "links": [],
            "id": 15957744
        },
        "test_case_version_id": 18722069,
        "test_case_version": "1.0",
        "creator_id": 31155
    }
]

【问题讨论】:

  • 你读了什么?到目前为止,您尝试过什么?
  • @DannyDainton,这是链接 - blog.getpostman.com/2014/01/27/… 在提取数据方面取得了一些成功,但是在我的回复中会有多个“状态”实例(可能有数千个)。那么如何将它们全部拉出并获得不同状态的总和,以给出执行计数(通过 = 600,失败 = 50,未执行 = 350 等)

标签: postman


【解决方案1】:

我正在查看一些本地数据,这可能不适合您,但您可以试一试:

let passed = 0
let unexecuted = 0

_.each(pm.response.json(), (data) => {
    _.each(data.properties, (arrItem) => {
        if(arrItem.field_name === "Status") {
            if(arrItem.field_value_name === "Unexecuted") {
                unexectued = unexectued + 1
            }
            else if (arrItem.field_value_name === "Passed"){
                passed = passed + 1
            }

        }
    })
})

console.log(`Passed: ${passed}`)
console.log(`Unexecuted: ${unexecuted}`)

我确信有更好的方法可以做到这一点,并且我不确定在使用更大的数据集时这段代码的性能,但如果你想在控制台中工作并获得基本结果,这应该工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    • 2021-01-27
    • 2019-03-03
    • 2017-12-26
    • 2021-06-01
    相关资源
    最近更新 更多