This project focuses on the implementation of automated testing for a Car Rental Web Application. The web application allows users to search for, order, add, and remove cars available for rent. This repository contains both UI tests using Selenium, organized using the Page Object Model (POM), and API tests using OkHttp.
The goal of this project is to ensure the functionality and reliability of the car rental service by automating the testing process, reducing manual effort, and ensuring the stability of key features. The project also utilizes DTOs (Data Transfer Objects) to handle data efficiently between the client and server in API testing.
- Java: Programming language used for writing tests.
- Maven: Build automation tool used for managing project dependencies.
- TestNG: Testing framework used for organizing and running tests.
- Selenium WebDriver: Framework for automating web UI interactions.
- Page Object Model (POM): Design pattern to enhance maintainability of UI tests by abstracting web elements and actions into separate page objects.
- OkHttp: HTTP client for making API requests and validating responses.
- Swagger: Tool for API documentation and testing.
- DTO (Data Transfer Object): Object used to transfer data between client and server in API tests efficiently.
- Lombok: Library that reduces boilerplate code (e.g., getters, setters, constructors).
- Gson: Library for serializing Java objects to JSON and deserializing JSON to Java objects.
- IntelliJ IDEA: Integrated development environment (IDE) used for Java development.
- Search Functionality: Verifies that users can search for available rental cars based on various filters.
- Car Booking: Ensures that users can successfully book a car for a defined period.
- Add Cars: Tests the functionality for adding new cars to the fleet.
- Page Object Model: Uses the POM pattern to structure the UI tests, making them easier to maintain and scale.
- Get Car Details: Ensures that the API correctly returns details for a specific rental car.
- Add Cars: Verifies the ability to add a new car to the rental fleet via the API.
- Remove Cars: Tests the API's ability to remove a car from the rental system.
- DTO Usage: Uses DTOs to manage and transfer car data efficiently between the client and server during API interactions.