[如何仅运行 API 集合中的特定 API

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

在我的集合中,我有许多带有断言的请求,因为我只需要运行特定的请求。假设我有 10 个请求,而我只需要运行 3,4 和 10 个请求,我如何通过在命令行中运行 newman 来做到这一点。

场景:

在下面的集合中,我有多个请求(以不同颜色标记)。假设我们的应用程序中有一个新版本,它仅影响标记为“黄色”的请求。在本例中,我只想运行标记为黄色的请求。 enter image description here

postman rest-assured web-api-testing
1个回答
0
投票

您可以通过预请求脚本中的 if 语句中的“pm.execution.skipRequest()”来完成。

示例: 该脚本由颜色值决定。 如果是绿色或全颜色,则运行请求。 如果是黄色或红色,请跳过请求。

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

演示

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

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

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

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

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

动物网址

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

第一个请求

定义环境变量为“Color”

演示集合 JSON 文件。

另存为

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"

仅运行黄色请求

newman run 1-demo.postman_collection.json --env-var "Color=Yellow"

运行所有请求

newman run 1-demo.postman_collection.json --env-var "Color=All"

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