░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░ ██████╗ ██████╗ ███████╗████████╗███╗ ███╗ █████╗ ███╗ ██╗ ░
░ ██╔══██╗██╔═══██╗██╔════╝╚══██╔══╝████╗ ████║██╔══██╗████╗ ██║ ░
░ ██████╔╝██║ ██║███████╗ ██║ ██╔████╔██║███████║██╔██╗ ██║ ░
░ ██╔═══╝ ██║ ██║╚════██║ ██║ ██║╚██╔╝██║██╔══██║██║╚██╗██║ ░
░ ██║ ╚██████╔╝███████║ ██║ ██║ ╚═╝ ██║██║ ██║██║ ╚████║ ░
░ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ░
░ A P I T E S T I N G J O U R N E Y ░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
Postman_API_Testing/
│
├── 📁 collections/
│ ├── 📮 get-requests/ → GET method practice & assertions
│ ├── 📝 post-requests/ → POST with request body & validation
│ ├── ✏️ put-patch-requests/ → UPDATE operations
│ └── 🗑️ delete-requests/ → DELETE operations & status checks
│
├── 📁 environments/
│ ├── 🌍 dev-environment/ → Dev base URLs & variables
│ └── 🚀 prod-environment/ → Production environment setup
│
├── 📁 test-scripts/
│ ├── ✅ status-code-tests/ → 200, 201, 400, 401, 404, 500
│ ├── 🔍 response-body-tests/ → JSON field & value assertions
│ └── ⏱️ response-time-tests/ → Performance threshold checks
│
├── 📁 newman/ → Newman CLI automation reports
│
└── 📄 README.md
| 📮 HTTP Methods GET · POST · PUT PATCH · DELETE |
✅ Status Codes 2xx · 3xx · 4xx · 5xx 200 · 201 · 400 · 401 404 · 500 |
🔍 Assertions Status Code · Body Headers · Response Time JSON Schema |
| 🌍 Environments Variables · Globals Dev · Staging · Prod Dynamic Values |
🔐 Authentication Basic Auth · API Key Bearer Token · OAuth 2.0 JWT |
📦 Collections Organizing Requests Folders · Pre-request Scripts Collection Runner |
| 📝 Request Body JSON · Form Data Raw · Binary GraphQL |
⚙️ Pre-request Scripts Dynamic Data Token Generation Setup Logic |
🤖 Newman CLI Automation · CI/CD HTML Reports Command Line Runs |
✅ Status Code Assertion
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});🔍 Response Body Assertion
pm.test("Response has user id", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.id).to.not.be.null;
pm.expect(jsonData.name).to.eql("Xavier");
});⏱️ Response Time Check
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});🔐 Set Bearer Token Dynamically
var jsonData = pm.response.json();
pm.environment.set("auth_token", jsonData.token);HTTP Methods (GET/POST) ████████████████████ 100% ✅
Status Code Testing ████████████████████ 100% ✅
PUT / PATCH / DELETE ████████████████░░░░ 80% 🔄
Response Body Assertions ████████████████░░░░ 80% 🔄
Environment Variables ██████████████░░░░░░ 70% 🔄
Authentication Testing ████████████░░░░░░░░ 60% 🔄
Pre-request Scripts ██████████░░░░░░░░░░ 50% 🔄
Collection Runner ████████░░░░░░░░░░░░ 40% 🔄
Newman CLI Automation ██████░░░░░░░░░░░░░░ 30% 🔄
CI/CD Integration ████░░░░░░░░░░░░░░░░ 20% 🔄
| Tool | Purpose |
|---|---|
| 📮 Postman | API testing & collection management |
| 🤖 Newman | CLI runner for Postman collections |
| 🌐 REST APIs | Practice endpoints for testing |
| 🐙 GitHub | Version control & portfolio |