This project contains a set of end-to-end (E2E) automated tests for the Urban Routes taxi booking web application. The tests simulate the complete user flow, from setting up a route and selecting a vehicle type to confirming the trip, including payment method management and adding extras. The main objective is to verify that the application's key functionalities work correctly and that the user experience is fluid.
With a total of 9 tests, the first 8 tests integrate steps to complete the flow up to a certain point, with the ninth test integrating the complete process. This design allows the tests to easily detect errors during the execution of a specific step.
This project utilizes modern technologies and best practices in web automation:
- [Python] - The main programming language used for the development of the test scripts.
- [Selenium WebDriver] - A web browser automation framework that allows simulating user interactions.
- [pytest] - The testing framework used to organize and execute the tests. It offers a clear structure and detailed reporting.
- [Page Object Model (POM) Pattern] - The code structure is based on this design pattern, where web page elements and user actions are encapsulated in classes (UrbanRoutesPage), making the code more modular, reusable, and easy to maintain.
- [Robust Locators] - Various locator types such as By.ID, By.CSS_SELECTOR, and By.XPATH are used to reliably identify and select page elements.
- [Explicit Waits] - The use of WebDriverWait with expected_conditions ensures that page elements are ready for interaction, preventing synchronization failures and improving test stability.
Follow these steps to run the automated tests in your local environment.
Prerequisites: Make sure you have Python and a Chrome browser installed on your system.
Dependency Installation: Open your terminal, navigate to the project directory, and run the following command to install the necessary libraries:
- Bash
- pip install selenium pytest
Ensure that the data.py file in the root directory contains the necessary variables such as origin and destination addresses, phone number, and credit card data for the tests.
Execution: To run all tests, execute the following command in your terminal from the project's root directory:
- [Bash]
- [pytest] - Pytest will automatically detect and execute all defined tests. The result will be displayed in the terminal, indicating whether the tests passed or failed.