| Variable Name | Variable Value |
|---|---|
| baseUrl | https://restful-booker.herokuapp.com |
| username | admin |
| password | password123 |
| response_time_sla_ms | 5000 |
| token | bd8b923ba19dbee |
| booking_id | 902 |
| seed_booking_id | 1 |
| run_id | 1786245748202 |
| generated_email | qa.1786245748202@example.test |
Production-style API automation collection covering health, authentication, CRUD lifecycle, negative paths, schema checks, and CI evidence reporting for the Restful Booker public API.
| Summary Item | Total | Failed |
|---|---|---|
| Requests | 26 | 0 |
| Prerequest Scripts | 26 | 0 |
| Test Scripts | 26 | 0 |
| Assertions | 88 | 0 |
| Skipped Tests | 0 | - |
Validates the API health endpoint before deeper tests run.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| ping returns Created status | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 2 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Checks the discovery endpoint and stores one seed booking ID when available.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| booking list responds successfully | 1 | 0 | 0 |
| response body is an array | 1 | 0 | 0 |
| booking id contract is stable when records exist | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Creates a valid token used by update and delete requests.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| auth request succeeds | 1 | 0 | 0 |
| auth response contains token | 1 | 0 | 0 |
| token does not look like a placeholder | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Documents the API's known bad-credentials behavior without poisoning the valid token.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| invalid auth returns handled response | 1 | 0 | 0 |
| invalid auth does not return a token | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Creates a booking from iteration data and stores the generated booking ID.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| create booking succeeds | 1 | 0 | 0 |
| create response includes booking id and booking object | 1 | 0 | 0 |
| created booking echoes submitted guest data | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Reads the booking created in the previous step and validates persistence.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| read created booking succeeds | 1 | 0 | 0 |
| created booking has expected schema | 1 | 0 | 0 |
| created booking values are persisted | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Validates authenticated PUT update behavior.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| full update succeeds | 1 | 0 | 0 |
| full update persists submitted fields | 1 | 0 | 0 |
| price and deposit data types are respected | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Validates authenticated PATCH behavior and guards against accidental data loss.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| partial update succeeds | 1 | 0 | 0 |
| patched field is updated | 1 | 0 | 0 |
| unpatched identity fields remain stable | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Deletes the booking created by the current iteration.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| delete booking returns accepted deletion status | 1 | 0 | 0 |
| booking id was available before deletion | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Confirms cleanup by attempting to read the deleted booking.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| deleted booking is not found | 1 | 0 | 0 |
| deleted booking response is intentionally empty or not found text | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Verifies query endpoint shape without assuming public test data is stable.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| filtered booking query succeeds | 1 | 0 | 0 |
| filtered query returns an array contract | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Negative read check for a non-existent booking.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| unknown booking id returns not found | 1 | 0 | 0 |
| unknown booking does not return JSON booking payload | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Security check proving protected mutation requires authentication.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| unauthenticated update is forbidden | 1 | 0 | 0 |
| forbidden response does not expose booking data | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Validates the API health endpoint before deeper tests run.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| ping returns Created status | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 2 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Checks the discovery endpoint and stores one seed booking ID when available.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| booking list responds successfully | 1 | 0 | 0 |
| response body is an array | 1 | 0 | 0 |
| booking id contract is stable when records exist | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Creates a valid token used by update and delete requests.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| auth request succeeds | 1 | 0 | 0 |
| auth response contains token | 1 | 0 | 0 |
| token does not look like a placeholder | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Documents the API's known bad-credentials behavior without poisoning the valid token.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| invalid auth returns handled response | 1 | 0 | 0 |
| invalid auth does not return a token | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Creates a booking from iteration data and stores the generated booking ID.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| create booking succeeds | 1 | 0 | 0 |
| create response includes booking id and booking object | 1 | 0 | 0 |
| created booking echoes submitted guest data | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Reads the booking created in the previous step and validates persistence.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| read created booking succeeds | 1 | 0 | 0 |
| created booking has expected schema | 1 | 0 | 0 |
| created booking values are persisted | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Validates authenticated PUT update behavior.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| full update succeeds | 1 | 0 | 0 |
| full update persists submitted fields | 1 | 0 | 0 |
| price and deposit data types are respected | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Validates authenticated PATCH behavior and guards against accidental data loss.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| partial update succeeds | 1 | 0 | 0 |
| patched field is updated | 1 | 0 | 0 |
| unpatched identity fields remain stable | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 4 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Deletes the booking created by the current iteration.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| delete booking returns accepted deletion status | 1 | 0 | 0 |
| booking id was available before deletion | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Confirms cleanup by attempting to read the deleted booking.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| deleted booking is not found | 1 | 0 | 0 |
| deleted booking response is intentionally empty or not found text | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Verifies query endpoint shape without assuming public test data is stable.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| filtered booking query succeeds | 1 | 0 | 0 |
| filtered query returns an array contract | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Negative read check for a non-existent booking.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| unknown booking id returns not found | 1 | 0 | 0 |
| unknown booking does not return JSON booking payload | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|
Security check proving protected mutation requires authentication.
| Name | Passed | Failed | Skipped |
|---|---|---|---|
| unauthenticated update is forbidden | 1 | 0 | 0 |
| forbidden response does not expose booking data | 1 | 0 | 0 |
| response time is below configured SLA | 1 | 0 | 0 |
| Total | 3 | 0 | 0 |
| Test Name | Assertion Error |
|---|