Assert the contract, not just the status
A 200 response can still contain the wrong ID, missing properties, or unexpected data types. The collection checks meaningful fields as well as status codes.
QA CASE STUDY / API TESTING
A practical review of the Postman + Newman portfolio project: how the scenarios were chosen, which response risks were covered, and what the latest recorded CI execution demonstrated. This is an independent portfolio project against the public JSONPlaceholder demo API, not client or production work.
01 / EXECUTION SNAPSHOT
The successful GitHub Actions run on 11 October 2026 executed the collection against the public demo service.
This is one execution snapshot, not a performance benchmark or a guarantee of future results. The same run recorded a 323 ms total collection duration and individual response times from 15–76 ms.
02 / TEST OBJECTIVE
A successful HTTP status alone doesn't confirm a response is usable. The checks also validate response format, required fields, types, values, and selected negative paths.
03 / RISK-BASED COVERAGE
Validate status, JSON content type, non-empty list response, required user fields and their types, and the requested ID for a single-user response.
Check service-specific not-found behaviour instead of assuming every invalid resource returns the same response shape across all APIs.
Check the documented success status and verify returned IDs and relevant fields match the request or intended updated values.
Validate the expected success response while tolerating either an empty body or an empty JSON object, both observed as compatible response forms for this demo.
Check content type and a configurable response-time threshold alongside the business-relevant body assertions. Timing checks here are lightweight guardrails, not load or stress testing.
04 / TEST DESIGN DECISIONS
A 200 response can still contain the wrong ID, missing properties, or unexpected data types. The collection checks meaningful fields as well as status codes.
Missing-resource behavior and delete response bodies can differ by API. Expectations are documented against JSONPlaceholder and should be re-baselined if the target changes.
The collection runs locally with Newman and in GitHub Actions, with a JUnit report artifact available from the run.
JSONPlaceholder simulates write operations. Successful POST, PUT, and DELETE responses do not prove that data persisted on the server. Authentication, security penetration, and load testing are outside this project's scope.
05 / REPRODUCIBLE EVIDENCE
06 / RELATED UI AUTOMATION
Recent recorded workflow results are listed below; use the run logs to inspect exact scenarios and evidence.
All three projects use public demo environments. Results represent particular runs and can change as the demos, credentials, network, or repository configuration change.