An advanced End-to-End (E2E) testing framework designed for full-stack validation. This project focuses on synchronizing UI actions with backend database states, ensuring data integrity across the entire application lifecycle.
- Language: TypeScript (Type-safe automation)
- Testing Framework: Playwright (Chromium, Firefox, WebKit)
- Database: PostgreSQL (Containerized via Docker)
- Environment Management: Dotenv (Secure credential handling)
- Reporting: Allure / Playwright HTML Reporter
- CI/CD: GitHub Actions
- Automated Infrastructure: Seamlessly spins up PostgreSQL via Docker and handles schema initialization through Playwright's Global Setup.
- Page Object Model (POM): Clean and maintainable code architecture.
- Database Validation: Direct SQL querying to verify UI data persistence.
- Automatic Data Cleanup: Implemented
afterEachhooks to ensure a clean database state after every test run. - Professional Reporting: Integrated Allure Reports for visual analytics and failure documentation.
This section documents complex infrastructure challenges encountered during development and the strategic solutions implemented:
Managed a local PostgreSQL port conflict by implementing Port Re-mapping (Host 5433 -> Container 5432), ensuring environment portability.
Adjusted Docker Volume mount points to align with modern DevOps practices for database persistence and major-version upgrades.
Handled Docker volume persistence issues by utilizing docker compose down -v to perform clean state resets during configuration updates.
- Clone the project
- Install dependencies:
npm install - Configure Environment: Add your
.envcredentials. - Spin up database:
docker compose up -d - Run tests:
npx playwright test
Basem Abdelwahab QA Automation Engineer | SDET