A scalable and maintainable UI automation framework built using Python, Selenium WebDriver, and Pytest for the LambdaTest Ecommerce Playground. This project was developed for learning and implementing modern test automation practices using industry-standard design patterns and tools.
- Cross-browser support (Chrome & Firefox)
- Headless and Normal execution modes
- Page Object Model (POM) design pattern
- Centralized configuration management using
config.ini - Automatic driver management with
webdriver-manager - Explicit and configurable wait strategies
- Structured logging and debugging support
- Pytest markers for selective test execution
- Allure Reporting integration
- Pytest HTML Reporting
- Parallel execution support using
pytest-xdist - CI/CD ready for GitHub Actions and Jenkins
LambdaTest Ecommerce Playground
https://ecommerce-playground.lambdatest.io/
| Technology | Purpose |
|---|---|
| Python 3.x | Programming Language |
| Selenium WebDriver | Browser Automation |
| Pytest | Test Framework |
| WebDriver Manager | Driver Management |
| Allure Reports | Advanced Reporting |
| Pytest HTML | HTML Reporting |
| Logging | Test Execution Logs |
Pytest_Automation_Project
│
├── configuration/ # Configuration files
├── pages/ # Page Object Classes
├── tests/ # Test Cases
├── utils/ # Utility Classes
├── actions/ # Reusable Actions
├── data_provider/ # Test Data
├── logs/ # Log Files
├── reports/ # Generated Reports
├── conftest.py # Fixtures & Driver Setup
├── pytest.ini # Pytest Configuration
├── requirements.txt
├── .gitignore
└── README.md
Clone the repository:
git clone <repository-url>
cd Pytest_Automation_ProjectInstall dependencies:
pip install -r requirements.txtUpdate the configuration/config.ini file:
[browser]
browser = firefox
mode = normal
[application]
url = https://ecommerce-playground.lambdatest.io/index.php?route=common/home
title = Your Store
[timeouts]
implicit_wait = 10
explicit_wait = 15
page_load_timeout = 30pytestpytest -vpytest tests/test_launch.py -vpytest -m smoke
pytest -m regression
pytest -m sanity
pytest -m "sanity and regression"Run tests using multiple workers:
pytest -n 4pytest --html=reports/report.html --self-contained-htmlpytest --alluredir=allure-results
allure serve allure-results@pytest.mark.smoke
@pytest.mark.regression
def test_homepage_verification(driver):
drv, wait = driver
# Test Logic HereContributions are welcome.
- Fork the repository
- Create a feature branch
- Follow the existing POM structure
- Add proper logging and assertions
- Test changes in Chrome and Firefox
- Submit a Pull Request
- API Testing Integration
- Docker Execution Support
- Cloud Execution (LambdaTest / BrowserStack)
- Data-Driven Testing with Excel and JSON
- Advanced Reporting Dashboard
- Test Analytics Integration
- Tamil Kumar
- Prasanna Venkatesh K
- Rishwanth
- Samiha
- Jothika
This project is intended for learning and educational purposes.
Built with Python, Selenium, and Pytest for modern UI test automation.
Happy Testing! 🚀