Automation framework for testing the API of the educational service
Stellar Burgers.
The project demonstrates:
- Clean API test architecture
- Separation of test logic and API clients
- POJO-based request models
- Test data generation using Faker
- Validation of positive and negative scenarios
- Integration with Allure reporting
✔ Successful user registration
✔ Duplicate user registration validation
✔ Required fields validation (missing email, password, or name)
✔ Successful login with existing user
✔ Login with incorrect password
✔ Login with incorrect email
✔ Create order with authorization
✔ Create order without authorization
✔ Create order with ingredients
✔ Create order without ingredients
✔ Create order with invalid ingredient hash
The project follows a layered structure:
src
├── main
│ ├── client → API Clients (UserClient, OrderClient)
│ ├── models → Request body POJOs
│ └── utils → Test data generator (UserGenerator)
│
└── test
├── UserCreateTest
├── UserLoginTest
├── CreateOrderTest
└── BaseTest → Base configuration and test setup
- API request logic separated from test classes
- Request bodies implemented using POJO models
- Random test data generated using Faker
- API clients encapsulate REST interactions
- Allure
@Stepannotations used for better reporting - Cleanup logic implemented via
@After - Reusable base test configuration
| Tool | Purpose |
|---|---|
| Java 11 | Core language |
| JUnit 4 | Test framework |
| Rest Assured | HTTP client for API testing |
| Allure | Test reporting |
| Java Faker | Random test data generation |
| Maven | Build & dependency management |
| Lombok | Boilerplate reduction |
Run all tests using Maven:
mvn clean test
Generate interactive test report:
mvn allure:serve
The report includes:
- Detailed execution steps
- Request and response logs
- Test execution timeline
- Failure analysis
- REST API testing fundamentals
- Validation of positive and negative scenarios
- Understanding of HTTP status codes
- Clean test architecture
- Maintainable test automation framework
- Experience working with API reporting tools
Nikita Makoveev