Playwright Test Automation Framework
by GoldiSaini
A data-driven test automation framework built with Playwright and TypeScript, leveraging @executeautomation/playwright-mcp-server for enhanced test recording and playback. It features the Page Object Model design pattern for scalable and maintainable automated testing.
Last updated: N/A
š Playwright Test Automation Framework
š A powerful, data-driven test automation framework built with Playwright and TypeScript, leveraging @executeautomation/playwright-mcp-server for enhanced test recording and playback capabilities. Features Page Object Model design pattern for scalable and maintainable automated testing.
Playwright TypeScript Node.js MCP Server
⨠Highlights
- šļø Page Object Model - Clean and maintainable test architecture
- š Data-Driven Testing - Easily scale tests with external test data
- š§ TypeScript Support - Robust type checking and better IDE integration
- ā»ļø Reusable Components - Modular design for maximum code reuse
- šÆ Easy Maintenance - Centralized locators and data management
- š Scalable Design - Effortlessly add new test scenarios
- š„ MCP Server Integration - Enhanced test recording and playback functionality
š Key Features
- Structured and organized test architecture
- Separation of test data from test logic
- Powerful helper methods for common operations
- Easy-to-follow page object pattern implementation
- Comprehensive test data management
- Ready-to-use registration flow example
- Test recording and playback using MCP Server
- Automated test script generation
Framework Structure
tests/
āāā data/ # Test Data Layer
ā āāā interfaces/
ā ā āāā TestData.ts # Data type definitions
ā āāā TestDataHelper.ts # Helper class for data management
ā āāā testData.ts # Test scenarios data
āāā pages/ # Page Objects
ā āāā BasePage.ts # Base page with common functionality
ā āāā LoginPage.ts # Login page object
ā āāā RegistrationPage.ts # Registration page object
āāā specs/ # Test Specifications
āāā registration.spec.ts # Test cases
Features
- Page Object Model: Separates test logic from page interactions
- Data-Driven Testing: Test data is separated from test logic
- TypeScript: Strong typing and better IDE support
- Reusable Components: Common functionality in base classes
- Easy Maintenance: Centralized locators and data management
- Scalable: Easy to add new test scenarios and page objects
Test Data Structure
The framework uses a structured approach to manage test data:
interface TestScenario {
name: string;
login: LoginData;
registration: RegistrationData;
}
Current test scenarios:
- Valid Registration Flow (Male user)
- Female User Registration
Setup
- Clone the repository:
git clone <repository-url>
cd playwrightMCP_Demo
- Install dependencies:
npm install
- Install Playwright browsers:
npx playwright install
Running Tests
Run all tests:
npx playwright test
Run specific test file:
npx playwright test tests/specs/registration.spec.ts
Run tests in headed mode:
npx playwright test --headed
Adding New Test Scenarios
- Add new test data in
tests/data/testData.ts
:
{
name: 'Your Scenario Name',
login: {
email: '[email protected]'
},
registration: {
firstName: 'First',
lastName: 'Last',
address: 'Address',
email: '[email protected]',
phone: '1234567890',
gender: 'Male' | 'Female',
country: 'Country Name'
}
}
- The test will automatically execute for new scenarios.
Framework Components
Page Objects
- BasePage: Contains common methods and utilities
- LoginPage: Handles login functionality
- RegistrationPage: Manages registration form interactions
Data Management
- TestData.ts: Contains test scenarios
- TestDataHelper: Provides methods to access and manage test data
- Interfaces: Defines structure for test data
Best Practices
- Keep page objects focused on page-specific functionality
- Maintain test data separately from test logic
- Use meaningful scenario names
- Follow TypeScript naming conventions
- Keep tests independent and atomic
Contributing
- Create a new branch for your feature
- Add/Update tests and page objects
- Update test data if needed
- Submit a pull request
Dependencies
- Playwright
- TypeScript
- Node.js
- @executeautomation/playwright-mcp-server - For enhanced test recording and playback
- @playwright/test - Core testing framework
Support
For any questions or issues, please create a new issue in the repository.