A robust, scalable UI test automation framework for OrangeHRM using Python, Selenium, and PyTest.
- Page Object Model (POM) design pattern
- Modular and maintainable architecture
- Parallel test execution support
- Allure reporting integration
- Type hints and comprehensive logging
- Screenshot capture on test failures
- Dynamic wait handling
- CI/CD ready
- Python 3.8+
- pip (Python package manager)
- Chrome/Firefox browser
- Clone the repository:
git clone <repository-url>
cd orangehrm-automation- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txtpytestpytest -n autopytest --alluredir=./allure-results
allure serve ./allure-resultspytest tests/test_login.py├── tests/ # Test cases
├── pages/ # Page Object classes
├── utils/ # Utility functions
├── configs/ # Configuration files
├── constants/ # Static data and constants
├── fixtures/ # PyTest fixtures
├── requirements.txt # Project dependencies
└── README.md # Project documentation
- Update
configs/config.pyfor environment-specific settings - Modify
constants/selectors.pyfor web element locators - Adjust timeouts in
constants/timeouts.py
- HTML reports:
pytest --html=report.html - Allure reports:
allure serve ./allure-results
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.