This project aims to provide a front-end automated testing setup using Playwright, fully containerized with Docker, integrated with GitHub Actions for CI/CD.
A future integration with Cucumber/Gherkin may also be added to support BDD-style test writing.
- Node.js
- Playwright
- Docker
- GitHub Actions
- (Optional / Future) Cucumber.js
📦 playwright-docker
├── 📁 src/
│ ├──📁 tests/ # Test cases
│ │ ├── example.spec.ts
│ │ └── ...
│ ├── 📁 pages/ # Page Objects
│ ├── 📁 docs/ # Test cases description
│ ├── 📁 fixtures/
│ ├── 📁 config/ # Config and report configuration
│ ├── 📁 helpers/ # Helpers and utilitie
├── 📄 package.json
├── 📄 playwright.config.ts
├── 📄 Dockerfile
├── 📄 docker-compose.yml
├── 📄 .github/workflows/playwright.yml
└── 📄 README.md
You can check the tests planned for this project here
The main goals of this project are:
- ✅ Build a scalable and maintainable Playwright test framework.
- 🐳 Run tests consistently across environments using Docker.
- ⚙️ Automate execution through GitHub Actions CI workflows.
- 🥒 Optionally integrate Cucumber/Gherkin for behavior-driven testing.
| Feature | Status | Description |
|---|---|---|
| Playwright base setup | ✅ | Core testing framework using Playwright. |
| Docker integration | ✅ | Containerized environment for consistent execution. |
| GitHub Actions workflow | ✅ | CI pipeline for test automation. |
| Cucumber/Gherkin support | 🔜 | BDD syntax for more readable test scenarios. |
Feature: Login
Scenario: Successful login with valid credentials
Given the user navigates to the login page
When they enter valid username and password
Then they should be redirected to the main dashboard- Follow the Page Object Model (POM) design pattern for better scalability.
- Keep tests independent and deterministic.
- Avoid hard-coded values; prefer environment variables.
- Keep CI/CD pipelines fast, isolated, and reproducible.
Contributions are welcome!
To contribute:
- Create a feature branch (
git checkout -b feature/your-feature-name) - Commit your changes (
git commit -m "Add new feature") - Push the branch (
git push origin feature/your-feature-name) - Open a Pull Request 🚀
This project is licensed under the MIT License.
See the LICENSE file for more information.
💡 Modern, scalable, and CI/CD-ready end-to-end test automation powered by Playwright, Docker, and Allure.
