In Postman, you can create a collection of API requests. Those collection can be save into json file as well.
{ "info": { "_postman_id": "9c5a8003-1c58-4207-b843-85f2355aaf4a", "name": "udacity-c2-basic-server", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "item": [ { "name": "exercise", "item": [ { "name": "/cars all", "request": { "method": "GET", "header": [], "body": { "mode": "raw", "raw": "" }, "url": { "raw": "http://localhost:8082/cars/", "protocol": "http", "host": [ "localhost" ], "port": "8082", "path": [ "cars", "" ] } }, "response": [] }, { "name": "/cars filter", "request": { "method": "GET", "header": [], "body": { "mode": "raw", "raw": "" }, "url": { "raw": "http://localhost:8082/cars/?make=toyota", "protocol": "http", "host": [ "localhost" ], "port": "8082", "path": [ "cars", "" ], "query": [ { "key": "make", "value": "toyota" } ] } }, "response": [] }, { "name": "/cars by id", "request": { "method": "GET", "header": [ { "key": "Content-Type", "name": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "" }, "url": { "raw": "http://localhost:8082/cars/2", "protocol": "http", "host": [ "localhost" ], "port": "8082", "path": [ "cars", "2" ] } }, "response": [] }, { "name": "/cars", "request": { "method": "POST", "header": [ { "key": "Content-Type", "name": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{ "make": "ford", "type": "sedan", "model": "focus", "cost": 12, "id": 9 } " }, "url": { "raw": "http://localhost:8082/cars", "protocol": "http", "host": [ "localhost" ], "port": "8082", "path": [ "cars" ] } }, "response": [] } ] }, { "name": "http://localhost:8082/", "event": [ { "listen": "test", "script": { "id": "9b4015b7-faf5-4924-8661-7728ba94e410", "exec": [ "pm.test("Status code is 200", function () {", " pm.response.to.have.status(200);", "});", "", "pm.test("Body matches string", function () {", " pm.expect(pm.response.text()).to.include("Welcome to the Cloud!");", "});" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [], "body": { "mode": "raw", "raw": "" }, "url": { "raw": "http://localhost:8082/", "protocol": "http", "host": [ "localhost" ], "port": "8082", "path": [ "" ] } }, "response": [] }, { "name": "http://localhost:8082/persons/george", "event": [ { "listen": "test", "script": { "id": "277a3edb-b69d-4dcd-9b13-00d00faaca25", "exec": [ "pm.test("Status code is 200", function () {", " pm.response.to.have.status(200);", "});", "", "pm.test("Body matches string", function () {", " pm.expect(pm.response.text()).to.include(`Welcome to the Cloud, george!`);", "});", "" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [], "body": { "mode": "raw", "raw": "" }, "url": { "raw": "http://localhost:8082/persons/:name", "protocol": "http", "host": [ "localhost" ], "port": "8082", "path": [ "persons", ":name" ], "variable": [ { "key": "name", "value": "george" } ] } }, "response": [] }, { "name": "http://localhost:8082/persons/:name Copy", "event": [ { "listen": "test", "script": { "id": "7df7eec7-78b4-46f4-b2f5-2a7b994747e9", "exec": [ "pm.test("Status code is 200", function () {", " pm.response.to.have.status(200);", "});", "", "pm.test("Body matches string", function () {", " var query = {};", " pm.request.url.query.all().forEach((p) => { query[p.key] = p.value});", " ", " pm.expect(pm.response.text()).to.include(`Welcome to the Cloud, ${query['name']}!`);", "});", "" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [], "body": { "mode": "raw", "raw": "" }, "url": { "raw": "http://localhost:8082/persons?name=george", "protocol": "http", "host": [ "localhost" ], "port": "8082", "path": [ "persons" ], "query": [ { "key": "name", "value": "george" } ] } }, "response": [] }, { "name": "http://localhost:8082/persons/", "event": [ { "listen": "test", "script": { "id": "23433ca1-6ffc-4149-9e3c-97514d889ac5", "exec": [ "pm.test("Status code is 200", function () {", " pm.response.to.have.status(200);", "});", "", "pm.test("Body matches string", function () {", " pm.expect(pm.response.text()).to.include(`Welcome to the Cloud, james!`);", "});", "" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "name": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{ "name": "james" }" }, "url": { "raw": "http://localhost:8082/persons", "protocol": "http", "host": [ "localhost" ], "port": "8082", "path": [ "persons" ] } }, "response": [] }, { "name": "400 http://localhost:8082/persons/:name", "event": [ { "listen": "test", "script": { "id": "444e71e3-ae8c-469a-9da1-22aa3ee0792d", "exec": [ "pm.test("Status code is 400", function () {", " pm.response.to.have.status(400);", "});" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [], "body": { "mode": "raw", "raw": "" }, "url": { "raw": "http://localhost:8082/persons/", "protocol": "http", "host": [ "localhost" ], "port": "8082", "path": [ "persons", "" ] } }, "response": [] } ], "event": [ { "listen": "prerequest", "script": { "id": "6f442aeb-7c6b-401b-a76d-03a2c7b2cca9", "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "id": "fae73fa3-4d3b-4528-a1af-a150ef18a902", "type": "text/javascript", "exec": [ "" ] } } ], "variable": [ { "id": "0db39ab1-774e-4108-8078-7a4d7df27657", "key": "endpoint", "value": "http://localhost:8082", "type": "string" } ] }
You can run the test against each request:
Also you can run the test against all the requests: