This project covers the following API testing types:
- API method testing (HTTP behavior validation)
- End-to-end CRUD testing on a persistent backend
- Scenario-based testing using multiple resources (bulk data)
- Negative testing for invalid or incomplete input
This project marks my transition from Senior Manual QA to QA Automation Engineer.
- Build automation skills step by step
- Focus on API and UI automated testing
- Learn automation tools through practice
- 5+ years of Manual QA experience
- Experience in Agile teams
This milestone covers my first complete API testing workflow, from manual exploration to automated validation.
- Endpoint tested:
GET /users/{id} - Scenario: Non-existing user (id = 9999)
- Observed behavior:
- HTTP Status Code: 404 Not Found
- Response body: empty
Manual exploration was done using Postman, and the collection is stored in the postman/ directory.
- Tools used:
- Java
- REST Assured
- JUnit 5
- Automated scenario:
GET /users/9999- Assertion: HTTP 404
The automated test validates that the API behavior observed manually is consistent and can be reliably checked in an automated way.
This milestone covers API testing for endpoints that use query parameters and return collections.
- Endpoint tested:
GET /posts?userId=1 - Scenario: Retrieve posts filtered by userId
- Observed behavior:
- HTTP Status Code: 200 OK
- Response body is a list of posts
- All returned posts have
userId = 1
- Tools used:
- Java
- REST Assured
- JUnit 5
- Automated validations:
- Status code is 200
- All items in the response have
userId = 1usingeveryItem
This test demonstrates data consistency validation for filtered API responses.
This milestone covers API behavior when a query parameter returns no matching data.
- Endpoint tested:
GET /posts?userId=9999 - Scenario: Filter posts by a non-existing userId
- Observed behavior:
- HTTP Status Code: 200 OK
- Response body: empty list (
[])
A Postman test was added to validate that the response array is empty.
- Tools used:
- Java
- REST Assured
- JUnit 5
- Automated validations:
- Status code is 200
- Response body is an empty list using
hasSize(0)
This test validates correct API behavior when a filter does not return any data, a common real-world scenario in backend services.
This milestone covers creating a new resource using an HTTP POST request and validating the response behavior.
- Endpoint tested:
POST /posts - Request body sent as JSON:
titlebodyuserId
- Observed behavior:
- HTTP Status Code: 201 Created
- Response contains the submitted fields
- Response includes a generated
id
Postman tests were added to validate:
- Status code 201
- Presence of the
idfield in the response
- Tools used:
- Java
- REST Assured
- JUnit 5
- Automated validations:
- Status code is 201
- Response contains a non-null
id
This milestone demonstrates creating resources via API requests and validating successful creation behavior, a core scenario for backend and API-driven systems.