Skip to main content

postman

Expert Postman assistance covering API collection design, pre-request scripts, Newman CI/CD test automation, mock servers, and environment variable management. Use when creating automated API test suites, running collections via Newman CLI, managing environment secrets, or generating API documentation.

Informations de source

Dépôt
G1Joshi/Agent-Skills
Dernière activité de la source
1 octobre 2026 à 16:38
Langue détectée de SKILL.md
anglais
Étoiles
14
Forks
2

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
postman
description
Expert Postman assistance covering API collection design, pre-request scripts, Newman CI/CD test automation, mock servers, and environment variable management. Use when creating automated API test suites, running collections via Newman CLI, managing environment secrets, or generating API documentation.
# Postman Postman is an API platform for building and using APIs, providing automated collection testing, mock servers, environment management, and Newman CLI integration for CI/CD. ## When to Use - **REST, GraphQL, & gRPC API Testing**: Designing requests, inspecting headers, and verifying streaming payloads. - **Automated CI/CD API Regression Suites**: Running Postman Collections in automated pipelines using the Newman CLI. - **Dynamic Authentication Handling**: Scripting OAuth 2.0 token refreshes, HMAC signatures, and AWS SigV4 in Pre-request scripts. - **Mock Servers & API Documentation**: Creating instant mock endpoints and publishing interactive team API documentation. ## Quick Start ### 1. Test Script in Postman ```javascript // Tests tab in Postman Request pm.test("Status code is 200 OK", function () { pm.response.to.have.status(200); }); pm.test("Response time is under 400ms", function () { pm.expect(pm.response.responseTime).to.be.below(400); }); pm.test("Token returned and set in environment", function () { const jsonData = pm.response.json(); pm.expect(jsonData.access_token).to.be.a("string"); pm.environment.set("AUTH_TOKEN", jsonData.access_token); }); ``` ### 2. Run via Newman CLI ```bash npm install -g newman newman run collection.json -e environment.json --reporters cli,junit ``` ## Core Concepts ### Pre-Request Script: Automated JWT / HMAC Signature Generating dynamic cryptographic signatures and injecting timestamps before request execution: ```javascript // Pre-request Script (PM API) const timestamp = Math.floor(Date.now() / 1000).toString(); const apiKey = pm.environment.get("API_KEY"); const apiSecret = pm.environment.get("API_SECRET"); const requestBody = pm.request.body.raw || ""; // Generate SHA256 HMAC const message = `${pm.request.method}\n${pm.request.url.getPath()}\n${timestamp}\n${requestBody}`; const signature = CryptoJS.HmacSHA256(message, apiSecret).toString( CryptoJS.enc.Hex, ); pm.request.headers.add({ key: "X-Auth-Key", value: apiKey }); pm.request.headers.add({ key: "X-Auth-Timestamp", value: timestamp }); pm.request.headers.add({ key: "X-Auth-Signature", value: signature }); ``` ### Automated Response Assertions & Variable Extraction Validating HTTP response code, schema, and saving output for downstream requests: ```javascript // Tests Script pm.test("Status code is 200 OK", function () { pm.response.to.have.status(200); }); pm.test("Response contains valid user session", function () { const json = pm.response.json(); pm.expect(json).to.have.property("access_token"); pm.expect(json.expires_in).to.be.above(0); // Propagate access token to active environment pm.environment.set("AUTH_TOKEN", json.access_token); }); pm.test("Response time is under 300ms", function () { pm.expect(pm.response.responseTime).to.be.below(300); }); ``` ### Newman CLI Execution in CI/CD Pipeline Executing collection tests headlessly and generating JUnit reports: ```bash # Run Postman collection with environment and HTML/JUnit reports npx newman run ./collections/auth-api-tests.json \ -e ./environments/staging.postman_environment.json \ --reporters cli,junit \ --reporter-junit-export ./reports/newman-results.xml \ --bail \ --env-var "BASE_URL=https://staging-api.example.com" ``` ## Common Patterns ### Pre-Request HMAC Signature Generation **Problem**: API requests require timestamp and SHA-256 HMAC signature headers calculated per request. **Solution**: Generate headers dynamically in the **Pre-request Script** tab. ```javascript const secret = pm.environment.get("API_SECRET"); const timestamp = Math.floor(Date.now() / 1000).toString(); const payload = pm.request.body.raw || ""; const message = `${timestamp}.${pm.request.method}.${payload}`; const signature = CryptoJS.HmacSHA256(message, secret).toString(); pm.request.headers.add({ key: "X-Timestamp", value: timestamp }); pm.request.headers.add({ key: "X-Signature", value: signature }); ``` ### Chained API Testing (Login -> Create -> Delete) **Problem**: Execute multi-step end-to-end user workflows using dynamically extracted identifiers. **Solution**: Set variables in `pm.collectionVariables` and trigger conditional next requests via `postman.setNextRequest()`. ```javascript // Step 1: Capture created resource ID const res = pm.response.json(); pm.collectionVariables.set("ITEM_ID", res.id); // Conditionally skip to cleanup on error if (pm.response.code !== 201) { postman.setNextRequest("Cleanup Endpoint"); } ``` ## Best Practices **Do**: - Parameterize environment URLs, tenant IDs, and credentials using `{{base_url}}` variables. - Store sensitive credentials in Environment variables with type **Secret** to mask values from UI and exports. - Run collections via Newman in CI/CD workflows to prevent regressions before deployment. - Organize collections by domain resource with clear folder-level authorization inheritance. **Don't**: - Hardcode raw JWT tokens or passwords directly in request headers or body payloads. - Commit environment files containing active production API keys to public repositories. - Duplicate authentication headers manually; configure Auth at the Collection level. ## Troubleshooting | Error | Cause | Solution | | --------------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- | | `SSL Error: Self-signed certificate in certificate chain` | Target endpoint uses local dev or untrusted SSL certificate | Turn off **SSL certificate verification** in Postman Settings > General, or pass `--insecure` to Newman. | | Variable not substituting (`{{API_URL}}` remains literal) | Active environment not selected in dropdown or variable misspelled | Ensure environment dropdown in top-right is selected and scope matches (`environment` vs `collectionVariables`). | | Newman exit code failure in CI pipeline | Assertion failed in collection run | Check test summary output; run Newman with `--bail` to stop on first failure or inspect JUnit XML report. | ## References - [Postman Documentation](https://learning.postman.com/docs/introduction/overview/)
Voir sur GitHub