Comprehensive test automation suite for Saucedemo.com using three powerful frameworks: Playwright, Selenium WebDriver, and Robot Framework.
- Features
- Tech Stack
- Project Structure
- Installation
- Usage
- CI/CD Pipeline
- Docker Support
- Test Reports
- Contributing
- Multi-Framework Testing: Playwright (JavaScript), Selenium (Python), Robot Framework
- Cross-Browser Support: Chrome, Firefox, Safari/WebKit
- CI/CD Integration: Automated testing with GitHub Actions
- Docker Support: Containerized test environment
- Parallel Execution: Tests run concurrently across frameworks
- Comprehensive Reports: HTML reports with screenshots for all frameworks
- Headless Mode: Optimized for CI/CD environments
| Framework | Language | Version | Purpose |
|---|---|---|---|
| Playwright | JavaScript | 1.57.0 | Modern E2E testing |
| Selenium | Python | 4.39.0 | Traditional browser automation |
| Robot Framework | Python | 7.4.1 | Keyword-driven testing |
| Pytest | Python | Latest | Test runner for Selenium |
| Node.js | - | 24.x | Runtime for Playwright |
| Python | - | 3.12 | Runtime for Selenium & Robot |
automation-project-saucedemo/
βββ .github/
β βββ workflows/
β βββ ci.yml # GitHub Actions CI/CD pipeline
βββ playwright_tests/ # Playwright test suite
β βββ tests/
β βββ playwright.config.js
β βββ package.json
βββ selenium_tests/ # Selenium test suite
β βββ tests/
β βββ data.json
β βββ requirements.txt
βββ robot_tests/ # Robot Framework test suite
β βββ tests/
β βββ resources/
β βββ data/
β βββ requirements.txt
βββ Dockerfile # Multi-framework container
βββ .gitignore
βββ README.md
- Node.js 24.x or higher
- Python 3.12 or higher
- Git
git clone https://github.com/YOUR_USERNAME/saucedemo-test-automation.git
cd saucedemo-test-automationcd playwright_tests
npm install
npx playwright install --with-depscd selenium_tests
pip install -r requirements.txtcd robot_tests
pip install -r requirements.txtcd playwright_tests
npm test # Run all tests
npm run test:headed # Run in headed mode
npm run report # View test reportcd selenium_tests
pytest tests/ -v # Run all tests
pytest tests/ --html=report.html --self-contained-html # With HTML reportcd robot_tests
robot --variable BROWSER:chrome --outputdir results tests/The project uses GitHub Actions for automated testing:
- β
Triggers on every
pushandpull_request - β Runs tests in parallel across 3 frameworks
- β Tests on multiple browsers (Chrome, Firefox, WebKit)
- β Generates and uploads test reports as artifacts
- β Provides detailed test summaries
View the pipeline: .github/workflows/ci.yml
docker build -t saucedemo-tests .# Run all tests
docker run --rm saucedemo-tests
# Run specific framework
docker run --rm saucedemo-tests run-playwright
docker run --rm saucedemo-tests run-selenium
docker run --rm saucedemo-tests run-robot
# Interactive mode
docker run --rm -it saucedemo-tests /bin/bashTest reports are automatically generated and available as GitHub Actions artifacts:
- Playwright: HTML report with traces and screenshots
- Selenium: Pytest HTML report
- Robot Framework: Log, report, and output XML files
Reports are retained for 30 days after each test run.
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Malek Harbaoui
- GitHub: @malek-harbaoui
- Saucedemo.com - Test application
- Playwright - Modern web testing framework
- Selenium - Browser automation
- Robot Framework - Keyword-driven testing
Made with β€οΈ by Malek Harbaoui
β Star this repo if you find it useful!