A comprehensive end-to-end testing suite built with Playwright and TypeScript, demonstrating modern web application testing practices with automated CI/CD integration.
Developed by: Maria JoΓ£o Sarabando | GitHub
This project showcases a professional-grade E2E testing framework that demonstrates:
- Modern Testing Architecture with Page Object Model
- Cross-Browser Compatibility testing across Chrome, Firefox, Safari
- Mobile Testing for iOS Safari and Android Chrome
- CI/CD Integration with GitHub Actions
- Performance & Accessibility testing capabilities
- Framework: Playwright v1.40.0
- Language: TypeScript 5.0+
- Testing Pattern: Page Object Model
- CI/CD: GitHub Actions
- Code Quality: ESLint + Prettier
- Containerization: Docker support
- β Desktop: Chrome, Firefox, Safari
- β Mobile: iOS Safari, Android Chrome
- β Parallel Execution for optimal performance
- β Headless & Headed modes supported
- Authentication Flows - Login/logout, validation
- Form Testing - Field validation, error handling
- Search Functionality - Filters, sorting, suggestions
- Performance Testing - Load times, memory usage
- Accessibility Testing - ARIA compliance, keyboard navigation
β
15 tests executed across 5 browsers
β
100% pass rate
β‘ 8.3s total execution time
π Parallel execution with 10 workers
- WebKit (Safari): 1.2s - 2.0s β‘
- Mobile Browsers: 1.2s - 1.6s π±
- Desktop Chrome: 2.1s - 4.3s π₯οΈ
- Firefox: 2.1s - 2.8s π¦
- Node.js (v18+)
- npm or yarn
- Git
# Clone the repository
git clone https://github.com/MJ-Sarabando/e2e-testing-playwright.git
cd e2e-testing-playwright
# Install dependencies
npm install
# Install Playwright browsers
npx playwright install --with-deps
# Run tests
npm test# Run tests with UI mode
npm run test:ui
# Run tests in headed mode (see browser)
npm run test:headed
# Debug specific test
npm run test:debug
# Generate test reports
npm run test:report
# Code quality checks
npm run lint
npm run formate2e-testing-playwright/
βββ π .github/workflows/ # CI/CD pipeline configuration
βββ π tests/
β βββ π auth/ # Authentication test suites
β βββ π forms/ # Form validation tests
β βββ π search/ # Search functionality tests
β βββ π performance/ # Performance benchmarks
β βββ π accessibility/ # A11y compliance tests
β βββ π pages/ # Page Object Models
β βββ π utils/ # Test utilities & helpers
βββ π playwright.config.ts # Playwright configuration
βββ π docker-compose.yml # Container orchestration
βββ π Makefile # Development shortcuts
βββ π package.json # Dependencies & scripts
β
Valid login credentials
β Invalid login attempts
π Empty field validation
β¨οΈ Keyboard navigation
π Error message handlingβ
Successful form submission
π§ Email format validation
π Character limit checks
π Special character handling
π§Ή Form state managementπ Basic search operations
π« Empty query handling
π No results scenarios
π·οΈ Category filtering
π Results sorting
π‘ Autocomplete suggestions# Build and run with Docker
docker-compose up playwright-tests
# UI mode in container
docker-compose up playwright-ui
# View reports
docker-compose up playwright-reportThe GitHub Actions workflow includes:
- Cross-browser test execution
- Mobile device testing
- Performance benchmarking
- Accessibility validation
- Code linting & formatting
- TypeScript compilation
- Test coverage reports
- Security vulnerability scanning
- HTML test reports
- Screenshot & video capture
- Test trace recordings
- GitHub Pages deployment
| Metric | Value | Status |
|---|---|---|
| Total Tests | 15 | β |
| Execution Time | 8.3s | β‘ |
| Parallel Workers | 10 | π |
| Browser Coverage | 5 | π |
| Success Rate | 100% | π― |
- TypeScript strict mode configuration
- ESLint & Prettier integration
- Conventional commit messages
- Comprehensive documentation
- Page Object Model implementation
- Data-driven test scenarios
- Cross-browser compatibility
- Mobile-first approach
- GitHub Actions CI/CD
- Docker containerization
- Automated reporting
- Environment configuration
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-test) - Commit changes (
git commit -m 'feat: add amazing test') - Push to branch (
git push origin feature/amazing-test) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Maria JoΓ£o Sarabando
- π LinkedIn: mariajoaosarabando
- π GitHub: MJ-Sarabando
- πΌ Expertise: Test Automation, TypeScript, CI/CD, Quality Assurance
This project demonstrates proficiency in:
- β Modern Test Automation with Playwright
- β TypeScript Development best practices
- β CI/CD Pipeline implementation
- β Cross-Platform Testing expertise
- β Performance Optimization techniques
- β Professional Documentation standards
Built with β€οΈ and β by Maria JoΓ£o Sarabando
π Connect on LinkedIn | π View More Projects
β Star this repository if you found it helpful! β