An enterprise-grade UI and API automation framework built using Playwright and TypeScript. The framework follows industry-standard design principles, emphasizing scalability, maintainability, and reusable components.
This project is an enterprise-grade UI and API automation framework built using Playwright and TypeScript. It follows scalable design principles such as the Page Object Model, reusable services, centralized configuration management, and a generic API client to support maintainable and extensible test automation.
- Build a scalable enterprise automation framework.
- Demonstrate clean architecture and SOLID design principles.
- Support both UI and API automation within a single framework.
- Showcase industry best practices for Playwright and TypeScript.
- ✅ Page Object Model (POM)
- ✅ Page Manager
- ✅ Reusable Base Page
- ✅ Custom Fixtures
- ✅ Generic API Client
- ✅ API Manager
- ✅ CRUD Operations
- ✅ Typed Request & Response Models
- ✅ Configuration Management
- ✅ Global Setup
- ✅ Authentication
- ✅ Logging
- ✅ HTML Reports
| Technology | Purpose |
|---|---|
| Playwright | UI Automation |
| TypeScript | Programming Language |
| Node.js | Runtime |
| GitHub Actions | CI/CD |
| REST API | API Testing |
The framework follows a layered architecture to keep UI automation, API automation, reusable services, and test logic cleanly separated.
- Node.js 20+
- npm
- Playwright browsers
git clone https://github.com/kstvds24/playwright-enterprise-framework.git
cd playwright-enterprise-framework
npm install
npx playwright installRun all tests:
npx playwright testRun API tests:
npx playwright test tests/apiRun UI tests:
npx playwright test tests/uiThe framework generates a detailed HTML report after every execution.
View the latest automated test execution:
- Authentication Manager
- API Schema Validation
- Docker Support
- Allure Reporting
- GitHub Actions CI/CD
- Cross-browser Execution Matrix
- Test Data Builder Pattern
Kaustav Das
Senior SDET
GitHub: Kaustav
This project is licensed under the MIT License.
⭐ If you find this project useful, consider giving it a star on GitHub.


