I am having list of request under a collection.I want to run a particular request based on input which is being passed via data file.
For Example:
If name of requests will be TC-1,TC-2,TC-3,TC-4...I want to run only TC-2 and TC-3 based on inputs from my data file.I will keep my data file as csv format and will keep my all inputs in row(As mentioned in image]
Requests under Collection File Data file
Can anyone provide a solution
Thanks in advance
It is possible only selected request from data file (environment JSON).
In the Pre-request-script
tap, can skip request by this function.
pm.execution.skipRequest();
Also environment variables can assign only run items.
So this logic can handle
const testCaseIDs = JSON.parse(pm.environment.get('testCaseIDs'));
const requestName = pm.info.requestName;
let isTest = false;
_.forEach(testCaseIDs, (testCaseID) => {
if(requestName.includes(testCaseID)) {
isTest = true;
}
})
if (!isTest) {
console.log(requestName + " Skip");
pm.execution.skipRequest();
} else {
console.log(requestName + " Ran");
}
Environment variable
I want to run only TC-2
and TC-3
among 8 Requests
Request mane should be includes TC-[number]
It can flexible, like [TC-1]
,[TC-1] name
, TC-1
, TC-1 name
possible.
Save as 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": "[TC-1] 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 testCaseIDs = JSON.parse(pm.environment.get('testCaseIDs'));\r",
"const requestName = pm.info.requestName;\r",
"let isTest = false;\r",
"\r",
"if(testCaseIDs) {\r",
" _.forEach(testCaseIDs, (testCaseID) => {\r",
" if(requestName.includes(testCaseID)) {\r",
" isTest = true;\r",
" }\r",
" })\r",
"}\r",
"\r",
"if (!isTest) {\r",
" console.log(requestName + \" Skip\");\r",
" pm.execution.skipRequest();\r",
"} else {\r",
" console.log(requestName + \" Ran\");\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": "[TC-2] 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 testCaseIDs = JSON.parse(pm.environment.get('testCaseIDs'));\r",
"const requestName = pm.info.requestName;\r",
"let isTest = false;\r",
"\r",
"if(testCaseIDs) {\r",
" _.forEach(testCaseIDs, (testCaseID) => {\r",
" if(requestName.includes(testCaseID)) {\r",
" isTest = true;\r",
" }\r",
" })\r",
"}\r",
"\r",
"if (!isTest) {\r",
" console.log(requestName + \" Skip\");\r",
" pm.execution.skipRequest();\r",
"} else {\r",
" console.log(requestName + \" Ran\");\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": "TC-3 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 testCaseIDs = JSON.parse(pm.environment.get('testCaseIDs'));\r",
"const requestName = pm.info.requestName;\r",
"let isTest = false;\r",
"\r",
"if(testCaseIDs) {\r",
" _.forEach(testCaseIDs, (testCaseID) => {\r",
" if(requestName.includes(testCaseID)) {\r",
" isTest = true;\r",
" }\r",
" })\r",
"}\r",
"\r",
"if (!isTest) {\r",
" console.log(requestName + \" Skip\");\r",
" pm.execution.skipRequest();\r",
"} else {\r",
" console.log(requestName + \" Ran\");\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": "TC-4 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 testCaseIDs = JSON.parse(pm.environment.get('testCaseIDs'));\r",
"const requestName = pm.info.requestName;\r",
"let isTest = false;\r",
"\r",
"if(testCaseIDs) {\r",
" _.forEach(testCaseIDs, (testCaseID) => {\r",
" if(requestName.includes(testCaseID)) {\r",
" isTest = true;\r",
" }\r",
" })\r",
"}\r",
"\r",
"if (!isTest) {\r",
" console.log(requestName + \" Skip\");\r",
" pm.execution.skipRequest();\r",
"} else {\r",
" console.log(requestName + \" Ran\");\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": "TC-5 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 testCaseIDs = JSON.parse(pm.environment.get('testCaseIDs'));\r",
"const requestName = pm.info.requestName;\r",
"let isTest = false;\r",
"\r",
"if(testCaseIDs) {\r",
" _.forEach(testCaseIDs, (testCaseID) => {\r",
" if(requestName.includes(testCaseID)) {\r",
" isTest = true;\r",
" }\r",
" })\r",
"}\r",
"\r",
"if (!isTest) {\r",
" console.log(requestName + \" Skip\");\r",
" pm.execution.skipRequest();\r",
"} else {\r",
" console.log(requestName + \" Ran\");\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": "TC-6 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 testCaseIDs = JSON.parse(pm.environment.get('testCaseIDs'));\r",
"const requestName = pm.info.requestName;\r",
"let isTest = false;\r",
"\r",
"if(testCaseIDs) {\r",
" _.forEach(testCaseIDs, (testCaseID) => {\r",
" if(requestName.includes(testCaseID)) {\r",
" isTest = true;\r",
" }\r",
" })\r",
"}\r",
"\r",
"if (!isTest) {\r",
" console.log(requestName + \" Skip\");\r",
" pm.execution.skipRequest();\r",
"} else {\r",
" console.log(requestName + \" Ran\");\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": "TC-7",
"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 testCaseIDs = JSON.parse(pm.environment.get('testCaseIDs'));\r",
"const requestName = pm.info.requestName;\r",
"let isTest = false;\r",
"\r",
"if(testCaseIDs) {\r",
" _.forEach(testCaseIDs, (testCaseID) => {\r",
" if(requestName.includes(testCaseID)) {\r",
" isTest = true;\r",
" }\r",
" })\r",
"}\r",
"\r",
"if (!isTest) {\r",
" console.log(requestName + \" Skip\");\r",
" pm.execution.skipRequest();\r",
"} else {\r",
" console.log(requestName + \" Ran\");\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": "[TC-8]",
"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 testCaseIDs = JSON.parse(pm.environment.get('testCaseIDs'));\r",
"const requestName = pm.info.requestName;\r",
"let isTest = false;\r",
"\r",
"if(testCaseIDs) {\r",
" _.forEach(testCaseIDs, (testCaseID) => {\r",
" if(requestName.includes(testCaseID)) {\r",
" isTest = true;\r",
" }\r",
" })\r",
"}\r",
"\r",
"if (!isTest) {\r",
" console.log(requestName + \" Skip\");\r",
" pm.execution.skipRequest();\r",
"} else {\r",
" console.log(requestName + \" Ran\");\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": [
""
]
}
}
]
}
Save as demo.postman_environment.json
{
"id": "8fb2f4e2-18a1-4300-a93e-2b6e3f611fd7",
"name": "demo",
"values": [
{
"key": "testCaseIDs",
"value": "[\"TC-2\",\"TC-3\"]",
"type": "default",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2024-04-18T18:06:11.388Z",
"_postman_exported_using": "Postman/10.24.22"
}
newman
From environment file
newman run 1-demo.postman_collection.json -e demo.postman_environment.json
Result
From variable value
run only TC-2 and TC-5
newman run 1-demo.postman_collection.json --env-var "testCaseIDs=[\"TC-2\",\"TC-5\"]"
Result