{"id":26197165,"url":"https://github.com/m-hammad-faisal/website-tester","last_synced_at":"2026-05-02T11:38:25.680Z","repository":{"id":281946740,"uuid":"946936916","full_name":"M-Hammad-Faisal/Website-Tester","owner":"M-Hammad-Faisal","description":"A robust test automation framework for testing the SauceDemo website, built with Python, Selenium, and Playwright. This project demonstrates advanced automation techniques with a focus on scalability, reliability, and performance.","archived":false,"fork":false,"pushed_at":"2025-03-12T00:47:13.000Z","size":3,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-12T01:31:53.521Z","etag":null,"topics":["automation","playwright","playwright-python","python","saucedemo","selenium","selenium-python"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/M-Hammad-Faisal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-11T22:58:26.000Z","updated_at":"2025-03-11T22:59:39.000Z","dependencies_parsed_at":"2025-03-12T01:31:55.513Z","dependency_job_id":"fc5e4682-f3f8-4a71-b1e8-10e7d02a7bdf","html_url":"https://github.com/M-Hammad-Faisal/Website-Tester","commit_stats":null,"previous_names":["m-hammad-faisal/website-tester"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M-Hammad-Faisal%2FWebsite-Tester","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M-Hammad-Faisal%2FWebsite-Tester/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M-Hammad-Faisal%2FWebsite-Tester/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M-Hammad-Faisal%2FWebsite-Tester/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/M-Hammad-Faisal","download_url":"https://codeload.github.com/M-Hammad-Faisal/Website-Tester/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243141999,"owners_count":20242973,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","playwright","playwright-python","python","saucedemo","selenium","selenium-python"],"created_at":"2025-03-12T02:24:30.856Z","updated_at":"2025-12-25T11:32:30.621Z","avatar_url":"https://github.com/M-Hammad-Faisal.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Website Tester\n\nA robust test automation framework for testing the [SauceDemo](https://www.saucedemo.com/) website, built with Python,\nSelenium, and Playwright. This project demonstrates advanced automation techniques with a focus on scalability,\nreliability, and performance.\n\n## Features\n\n- **50 Automated Tests**: Comprehensive coverage of login, inventory, cart, checkout, logout, error handling, social\n  links, item details, sorting, and performance.\n- **Multi-Browser Support**: Runs tests on Chrome, Firefox, and Edge for both Selenium and Playwright.\n- **Dual Framework**: Supports Selenium and Playwright for flexibility and comparison.\n- **Parallel Execution**: Speeds up test runs using `pytest-xdist` with configurable process counts.\n- **Page Object Model**: Clean, maintainable design with a factory pattern for page abstraction.\n- **Allure Reporting**: Detailed, visually appealing test reports with screenshots.\n- **Logging**: Execution details logged to `logs/test_run.log` for debugging and traceability.\n- **Linting \u0026 Formatting**: Enforces code quality with Flake8 and Black.\n- **CI/CD**: GitHub Actions workflow for automated testing across frameworks and browsers.\n\n## Project Structure\n\n   ```txt\n   website_tester/\n   ├── src/\n   │   ├── pages/           # Page objects and selectors\n   │   ├── tests/           # 50 tests across 10 files\n   │   ├── runners/         # Test runner script\n   │   ├── config/          # Logging and configuration\n   ├── logs/                # Test execution logs\n   ├── allure-results/      # Allure report data\n   ├── screenshots/         # Sample report images\n   ├── requirements.txt     # Dependencies\n   └── .github/workflows/   # CI/CD configuration\n   ```\n\n## Setup\n\n1. **Clone the Repository**:\n   ```bash\n   git clone https://github.com/M-Hammad-Faisal/Website-Tester.git\n   cd Website-Tester\n   ```\n\n2. **Set Up Virtual Environment**:\n   ```bash\n   python -m venv .venv\n   source .venv/bin/activate\n   ```\n\n3. **Install dependencies**:\n    ```bash\n   pip install -r requirements.txt\n   playwright install\n   playwright install firefox\n   playwright install msedge\n   ```\n\n4. Format and Lint Code:\n   ```bash\n   black .            # Format all Python files\n   flake8 .           # Check for linting issues\n   ```\n\n5. **Run tests**:\n   ```bash\n   # Selenium with Firefox, 4 parallel processes\n   python -m src.runners.runner --framework=selenium --browser=firefox --numprocesses=4 --report=allure\n   # Playwright with Edge, auto processes\n   python -m src.runners.runner --framework=playwright --browser=edge --numprocesses=auto --report=allure\n   # Single process (default)\n   python -m src.runners.runner --framework=selenium --browser=chrome --report=allure\n   # View Allure report\n   allure serve allure-results/\n   ```\n\n## Test Suite\n\n- Login: 6 tests\n- Inventory: 5 tests\n- Cart: 5 tests\n- Checkout: 5 tests\n- Logout: 5 tests\n- Error Handling: 5 tests\n- Social Links: 3 tests\n- Item Details: 5 tests\n- Sorting: 4 tests\n- Performance: 7 tests\n\n## CI/CD\n\nAutomated testing runs on every push or pull request via GitHub Actions. See the (\nworkflow)[https://github.com/M-Hammad-Faisal/Website-Tester/.github/workflows/ci.yml] for details. Tests execute\nacross all frameworks and browsers in parallel.\n\n### Sample Report\n\n![Sample Allure Report](./screenshots/allure-report.png?raw=true \"Playwright | Chrome\")\n\nGenerate a report and view it locally:\n\n   ```bash\n   python -m src.runners.runner --framework=playwright --browser=chrome --report=allure\n   allure generate allure-results/ -o allure-report/ --clean\n   allure open allure-report/\n   ```\n\n## Requirements\n\n- Python: 3.12+\n- Dependencies: Listed in requirements.txt\n    - pytest, playwright, selenium, webdriver-manager, allure-pytest, pytest-retry, pytest-xdist, flake8, black\n\n## Usage Examples\n\n- Run with Selenium on Edge:\n\n   ```bash\n   python -m src.runners.runner --framework=selenium --browser=edge --numprocesses=2 --report=allure\n   ```\n\n- Run with Playwright on Firefox, single process:\n\n   ```bash\n   python -m src.runners.runner --framework=playwright --browser=firefox --report=allure\n   ```\n\n- Check logs:\n   ```bash\n   cat logs/test_run.log\n   ```\n\n## Development Notes\n\n- Parallel Execution: Use --numprocesses to leverage pytest-xdist. Set to auto to use all CPU cores.\n- Logging: Logs are stored in logs/ for each run, timestamped with execution details.\n- Extensibility: Add new browsers (e.g., WebKit) or tests by updating runner.py and page objects.\n\n## Contributing\n\nFeel free to fork, submit PRs, or raise issues for enhancements!\n\n## License\n\nMIT License - free to use and modify.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-hammad-faisal%2Fwebsite-tester","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm-hammad-faisal%2Fwebsite-tester","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-hammad-faisal%2Fwebsite-tester/lists"}