Skip to content

marius-test/selenium_automation_framework

Repository files navigation

selenium_automation_framework

Target website: https://www.saucedemo.com/

This project implements a scalable, maintainable Selenium automation framework using Python, Pytest, and the Page Object Model (POM) design pattern.

The goal is to automate and verify all major functionalities of the Saucedemo e-commerce site with clean test structure, detailed reporting, logging, and CI/CD integration. It provides hands-on experience developing advanced test framework features.

The framework is structured for clarity, reusability, and modular growth, allowing easy expansion as new features or test requirements are introduced.

👉 For exploratory Selenium automation testing across a wide range of web functionalities, see my companion project: selenium_automation_testing


Framework Features

  • Page Object Model (POM) for test scalability and maintainability
  • Pytest with fixtures for flexible test execution and setup/teardown
  • Driver factory for browser setup abstraction
  • Allure and pytest-html reports for rich and customizable test reporting
  • Test configuration management via CLI options or config files
  • Headless/visible browser modes and future multi-browser support
  • CI/CD using GitHub Actions and optional Docker containerization
  • Screenshot on test failure planned for better debugging

Tools and Libraries

  • Python - main programming language
  • Pytest - test execution framework
  • pytest-html - lightweight HTML report generator for pytest
  • Selenium WebDriver - browser automation
  • webdriver-manager - automatic browser driver downloads
  • Allure - rich test reporting and visualization tool
  • Docker - for isolated, consistent test environments
  • Visual Studio Code - main IDE
  • PyCharm - secondary IDE
  • GitHub - version control system
  • GitHub Actions - continuous integration pipeline

Notes

This project is part of my ongoing QA automation journey. It reflects real-world framework practices like modular design, layered architecture, clear separation of concerns, and external integrations.

It's being built step-by-step, documenting and automating everything from the ground up, including virtual environment setup, logging, data handling, and reporting.


Status

🚧 This project is currently in progress, with regular improvements as features are implemented and test coverage increases. 🚧