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.

소스 정보

저장소
G1Joshi/Agent-Skills
최근 소스 활동
2026년 10월 1일 16:38
감지된 SKILL.md 언어
영어
스타
14
포크
2

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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/)
GitHub에서 보기