有没有办法隐藏/排除邮递员报告中的一些请求

问题描述 投票:0回答:1

我正在使用Python脚本运行Newman来执行Postman集合。

newman run {collectionURL} --folder {folderName} -e {environmentURL} -d {jsonDataFile} --reporters cli,json,htmlextra --reporter-json-export {jsonReport} --reporter-htmlextra-export {htmlReport}

我有一些请求,要求在使用我正在测试的 API 之前准备测试数据。

在我的报告中,结果是根据我拨打的所有电话显示的。有没有办法省略我为获取测试数据而发出的请求,而只保留我对正在测试的 API 发出的请求?

这样我的测试报告会显示出更真实的视图。

谢谢

postman newman
1个回答
0
投票

您可以在

Pre-request Script

中通过环境变量跳过请求
pm.execution.skipRequest()

示例

如果

Color
变量为黄色,则运行请求

如果

Color
变量不是黄色,则跳过请求

const color = pm.environment.get('Color');
if (color != "Yellow") {
    pm.execution.skipRequest();
}

newman
命令将过滤掉报告

newman run name_collection.json --env-var "Color=filter-color" -r htmlextra --reporter-htmlextra-export ./results/name-report.html

演示

我将使用带有颜色前缀的动物名称的 Animal GET API 总共 8 个请求,其中包括 4 个黄色请求、3 个绿色请求和 1 个红色请求。

Animal URL

GET https://freetestapi.com/api/v1/animals?search=[Animal Name]

如果设置颜色为黄色,则仅调用 4 个黄色请求。

如果设置颜色为绿色,则仅调用 3 个绿色请求。

如果设置颜色为红色,则仅调用 1 个红色请求。

如果设置颜色为全部,则调用所有 8 个请求。

另存为

1-demo.postman_collection.json

{
    "info": {
        "_postman_id": "2425762f-9acf-4ca9-b3e7-96a6be66ffea",
        "name": "1-demo",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
        "_exporter_id": "2207020"
    },
    "item": [
        {
            "name": "Yellow Get Lion",
            "event": [
                {
                    "listen": "test",
                    "script": {
                        "exec": [
                            "const jsonData = JSON.parse(responseBody);\r",
                            "console.log(jsonData[0].name);\r",
                            "pm.test('Animal = ' + jsonData[0].name, function () {\r",
                            "    pm.expect(jsonData[0].name).to.eql(\"Lion\");\r",
                            "});"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                },
                {
                    "listen": "prerequest",
                    "script": {
                        "exec": [
                            "const color = pm.environment.get('Color');\r",
                            "console.log(\"run request color: \" + color);\r",
                            "\r",
                            "if (color != \"Yellow\" && color != \"All\") {\r",
                            "    pm.execution.skipRequest();\r",
                            "}"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                }
            ],
            "request": {
                "method": "GET",
                "header": [
                    {
                        "key": "X-RapidAPI-Key",
                        "value": "1956f59b5msh089630402391f02p108b9bjsna7adb689e8c4",
                        "type": "text"
                    },
                    {
                        "key": "X-RapidAPI-Host",
                        "value": "gemini-pro-vision-ai1.p.rapidapi.com",
                        "type": "text"
                    }
                ],
                "url": {
                    "raw": "https://freetestapi.com/api/v1/animals?search=Lion",
                    "protocol": "https",
                    "host": [
                        "freetestapi",
                        "com"
                    ],
                    "path": [
                        "api",
                        "v1",
                        "animals"
                    ],
                    "query": [
                        {
                            "key": "search",
                            "value": "Lion"
                        }
                    ]
                }
            },
            "response": []
        },
        {
            "name": "Green Get Elephant",
            "event": [
                {
                    "listen": "test",
                    "script": {
                        "exec": [
                            "const jsonData = JSON.parse(responseBody);\r",
                            "console.log(jsonData[0].name);\r",
                            "pm.test('Animal = ' + jsonData[0].name, function () {\r",
                            "    pm.expect(jsonData[0].name).to.eql(\"Elephant\");\r",
                            "});"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                },
                {
                    "listen": "prerequest",
                    "script": {
                        "exec": [
                            "const color = pm.environment.get('Color');\r",
                            "if (color != \"Green\" && color != \"All\") {\r",
                            "    pm.execution.skipRequest();\r",
                            "}"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                }
            ],
            "request": {
                "method": "GET",
                "header": [
                    {
                        "key": "X-RapidAPI-Key",
                        "value": "1956f59b5msh089630402391f02p108b9bjsna7adb689e8c4",
                        "type": "text"
                    },
                    {
                        "key": "X-RapidAPI-Host",
                        "value": "gemini-pro-vision-ai1.p.rapidapi.com",
                        "type": "text"
                    }
                ],
                "url": {
                    "raw": "https://freetestapi.com/api/v1/animals?search=Elephant",
                    "protocol": "https",
                    "host": [
                        "freetestapi",
                        "com"
                    ],
                    "path": [
                        "api",
                        "v1",
                        "animals"
                    ],
                    "query": [
                        {
                            "key": "search",
                            "value": "Elephant"
                        }
                    ]
                }
            },
            "response": []
        },
        {
            "name": "Yellow Get Tiger",
            "event": [
                {
                    "listen": "test",
                    "script": {
                        "exec": [
                            "const jsonData = JSON.parse(responseBody);\r",
                            "console.log(jsonData[0].name);\r",
                            "pm.test('Animal = ' + jsonData[0].name, function () {\r",
                            "    pm.expect(jsonData[0].name).to.eql(\"Tiger\");\r",
                            "});"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                },
                {
                    "listen": "prerequest",
                    "script": {
                        "exec": [
                            "const color = pm.environment.get('Color');\r",
                            "if (color != \"Yellow\" && color != \"All\") {\r",
                            "    pm.execution.skipRequest();\r",
                            "}"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                }
            ],
            "request": {
                "method": "GET",
                "header": [
                    {
                        "key": "X-RapidAPI-Key",
                        "value": "1956f59b5msh089630402391f02p108b9bjsna7adb689e8c4",
                        "type": "text"
                    },
                    {
                        "key": "X-RapidAPI-Host",
                        "value": "gemini-pro-vision-ai1.p.rapidapi.com",
                        "type": "text"
                    }
                ],
                "url": {
                    "raw": "https://freetestapi.com/api/v1/animals?search=Tiger",
                    "protocol": "https",
                    "host": [
                        "freetestapi",
                        "com"
                    ],
                    "path": [
                        "api",
                        "v1",
                        "animals"
                    ],
                    "query": [
                        {
                            "key": "search",
                            "value": "Tiger"
                        }
                    ]
                }
            },
            "response": []
        },
        {
            "name": "Green Get Kangaroo",
            "event": [
                {
                    "listen": "test",
                    "script": {
                        "exec": [
                            "const jsonData = JSON.parse(responseBody);\r",
                            "console.log(jsonData[0].name);\r",
                            "pm.test('Animal = ' + jsonData[0].name, function () {\r",
                            "    pm.expect(jsonData[0].name).to.eql(\"Kangaroo\");\r",
                            "});"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                },
                {
                    "listen": "prerequest",
                    "script": {
                        "exec": [
                            "const color = pm.environment.get('Color');\r",
                            "if (color != \"Green\"  && color != \"All\") {\r",
                            "    pm.execution.skipRequest();\r",
                            "}"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                }
            ],
            "request": {
                "method": "GET",
                "header": [
                    {
                        "key": "X-RapidAPI-Key",
                        "value": "1956f59b5msh089630402391f02p108b9bjsna7adb689e8c4",
                        "type": "text"
                    },
                    {
                        "key": "X-RapidAPI-Host",
                        "value": "gemini-pro-vision-ai1.p.rapidapi.com",
                        "type": "text"
                    }
                ],
                "url": {
                    "raw": "https://freetestapi.com/api/v1/animals?search=Kangaroo",
                    "protocol": "https",
                    "host": [
                        "freetestapi",
                        "com"
                    ],
                    "path": [
                        "api",
                        "v1",
                        "animals"
                    ],
                    "query": [
                        {
                            "key": "search",
                            "value": "Kangaroo"
                        }
                    ]
                }
            },
            "response": []
        },
        {
            "name": "Yellow Get Gorilla",
            "event": [
                {
                    "listen": "test",
                    "script": {
                        "exec": [
                            "const jsonData = JSON.parse(responseBody);\r",
                            "console.log(jsonData[0].name);\r",
                            "pm.test('Animal = ' + jsonData[0].name, function () {\r",
                            "    pm.expect(jsonData[0].name).to.eql(\"Gorilla\");\r",
                            "});"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                },
                {
                    "listen": "prerequest",
                    "script": {
                        "exec": [
                            "const color = pm.environment.get('Color');\r",
                            "if (color != \"Yellow\" && color != \"All\") {\r",
                            "    pm.execution.skipRequest();\r",
                            "}"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                }
            ],
            "request": {
                "method": "GET",
                "header": [
                    {
                        "key": "X-RapidAPI-Key",
                        "value": "1956f59b5msh089630402391f02p108b9bjsna7adb689e8c4",
                        "type": "text"
                    },
                    {
                        "key": "X-RapidAPI-Host",
                        "value": "gemini-pro-vision-ai1.p.rapidapi.com",
                        "type": "text"
                    }
                ],
                "url": {
                    "raw": "https://freetestapi.com/api/v1/animals?search=Gorilla",
                    "protocol": "https",
                    "host": [
                        "freetestapi",
                        "com"
                    ],
                    "path": [
                        "api",
                        "v1",
                        "animals"
                    ],
                    "query": [
                        {
                            "key": "search",
                            "value": "Gorilla"
                        }
                    ]
                }
            },
            "response": []
        },
        {
            "name": "Green Get Polar Bear",
            "event": [
                {
                    "listen": "test",
                    "script": {
                        "exec": [
                            "const jsonData = JSON.parse(responseBody);\r",
                            "console.log(jsonData[0].name);\r",
                            "pm.test('Animal = ' + jsonData[0].name, function () {\r",
                            "    pm.expect(jsonData[0].name).to.eql(\"Polar Bear\");\r",
                            "});"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                },
                {
                    "listen": "prerequest",
                    "script": {
                        "exec": [
                            "const color = pm.environment.get('Color');\r",
                            "if (color != \"Green\" && color != \"All\") {\r",
                            "    pm.execution.skipRequest();\r",
                            "}"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                }
            ],
            "request": {
                "method": "GET",
                "header": [
                    {
                        "key": "X-RapidAPI-Key",
                        "value": "1956f59b5msh089630402391f02p108b9bjsna7adb689e8c4",
                        "type": "text"
                    },
                    {
                        "key": "X-RapidAPI-Host",
                        "value": "gemini-pro-vision-ai1.p.rapidapi.com",
                        "type": "text"
                    }
                ],
                "url": {
                    "raw": "https://freetestapi.com/api/v1/animals?search=Polar%20Bear",
                    "protocol": "https",
                    "host": [
                        "freetestapi",
                        "com"
                    ],
                    "path": [
                        "api",
                        "v1",
                        "animals"
                    ],
                    "query": [
                        {
                            "key": "search",
                            "value": "Polar%20Bear"
                        }
                    ]
                }
            },
            "response": []
        },
        {
            "name": "Yellow Get Koala",
            "event": [
                {
                    "listen": "test",
                    "script": {
                        "exec": [
                            "const jsonData = JSON.parse(responseBody);\r",
                            "console.log(jsonData[0].name);\r",
                            "pm.test('Animal = ' + jsonData[0].name, function () {\r",
                            "    pm.expect(jsonData[0].name).to.eql(\"Koala\");\r",
                            "});"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                },
                {
                    "listen": "prerequest",
                    "script": {
                        "exec": [
                            "const color = pm.environment.get('Color');\r",
                            "if (color != \"Yellow\" && color != \"All\") {\r",
                            "    pm.execution.skipRequest();\r",
                            "}"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                }
            ],
            "request": {
                "method": "GET",
                "header": [
                    {
                        "key": "X-RapidAPI-Key",
                        "value": "1956f59b5msh089630402391f02p108b9bjsna7adb689e8c4",
                        "type": "text"
                    },
                    {
                        "key": "X-RapidAPI-Host",
                        "value": "gemini-pro-vision-ai1.p.rapidapi.com",
                        "type": "text"
                    }
                ],
                "url": {
                    "raw": "https://freetestapi.com/api/v1/animals?search=Koala",
                    "protocol": "https",
                    "host": [
                        "freetestapi",
                        "com"
                    ],
                    "path": [
                        "api",
                        "v1",
                        "animals"
                    ],
                    "query": [
                        {
                            "key": "search",
                            "value": "Koala"
                        }
                    ]
                }
            },
            "response": []
        },
        {
            "name": "Red Get Giraffe",
            "event": [
                {
                    "listen": "test",
                    "script": {
                        "exec": [
                            "const jsonData = JSON.parse(responseBody);\r",
                            "console.log(jsonData[0].name);\r",
                            "pm.test('Animal = ' + jsonData[0].name, function () {\r",
                            "    pm.expect(jsonData[0].name).to.eql(\"Giraffe\");\r",
                            "});"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                },
                {
                    "listen": "prerequest",
                    "script": {
                        "exec": [
                            "const color = pm.environment.get('Color');\r",
                            "if (color != \"Red\" && color != \"All\") {\r",
                            "    pm.execution.skipRequest();\r",
                            "}"
                        ],
                        "type": "text/javascript",
                        "packages": {}
                    }
                }
            ],
            "request": {
                "method": "GET",
                "header": [
                    {
                        "key": "X-RapidAPI-Key",
                        "value": "1956f59b5msh089630402391f02p108b9bjsna7adb689e8c4",
                        "type": "text"
                    },
                    {
                        "key": "X-RapidAPI-Host",
                        "value": "gemini-pro-vision-ai1.p.rapidapi.com",
                        "type": "text"
                    }
                ],
                "url": {
                    "raw": "https://freetestapi.com/api/v1/animals?search=Giraffe",
                    "protocol": "https",
                    "host": [
                        "freetestapi",
                        "com"
                    ],
                    "path": [
                        "api",
                        "v1",
                        "animals"
                    ],
                    "query": [
                        {
                            "key": "search",
                            "value": "Giraffe"
                        }
                    ]
                }
            },
            "response": []
        }
    ],
    "event": [
        {
            "listen": "prerequest",
            "script": {
                "type": "text/javascript",
                "packages": {},
                "exec": [
                    ""
                ]
            }
        },
        {
            "listen": "test",
            "script": {
                "type": "text/javascript",
                "packages": {},
                "exec": [
                    ""
                ]
            }
        }
    ]
}

仅限绿色

newman run 1-demo.postman_collection.json --env-var "Color=Green" -r htmlextra --reporter-htmlextra-export ./results/green-report.html

仅限黄色

newman run 1-demo.postman_collection.json --env-var "Color=Yellow" -r htmlextra --reporter-htmlextra-export ./results/yellow-report.html

全颜色

newman run 1-demo.postman_collection.json --env-var "Color=All" -r htmlextra --reporter-htmlextra-export ./results/all-report.html

文件树

© www.soinside.com 2019 - 2024. All rights reserved.