我正在使用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 发出的请求?
这样我的测试报告会显示出更真实的视图。
谢谢
您可以在
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
文件树