mcpField
🎭
🎭 Playwright Test Automation Framework

🎭 Playwright Test Automation Framework

Local
github.com/GoldiSainiDeveloper Tools2Updated 82w ago

About 🎭 Playwright Test Automation Framework

A Playwright and TypeScript test automation framework for organizing end-to-end tests with Page Object Model and external test data. It includes an example registration flow and uses @executeautomation/playwright-mcp-server for recording and playback.

Key features

  1. 01Page Object Model architecture
  2. 02Separate test data from test logic
  3. 03TypeScript support
  4. 04Reusable components and helpers
  5. 05MCP-based recording and playback
  6. 06Automated test script generation

Use cases

  1. 01Running data-driven registration scenarios
  2. 02Adding page objects and test scenarios
  3. 03Recording and replaying tests with MCP

MCP support

Integrates @executeautomation/playwright-mcp-server for test recording and playback.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json Β· Universal config
{
"mcpServers": {
"playwrightMCP_Demo": {
"command": "npx",
"args": [
"-y",
"playwright"
]
}
}
}
Run commandnpx -y playwright

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmplaywright

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

🎭 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:

  1. Valid Registration Flow (Male user)
  2. Female User Registration

Setup

  1. Clone the repository:
git clone <repository-url>
cd playwrightMCP_Demo
  1. Install dependencies:
npm install
  1. 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

  1. 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'
    }
}
  1. 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

  1. Keep page objects focused on page-specific functionality
  2. Maintain test data separately from test logic
  3. Use meaningful scenario names
  4. Follow TypeScript naming conventions
  5. Keep tests independent and atomic

Contributing

  1. Create a new branch for your feature
  2. Add/Update tests and page objects
  3. Update test data if needed
  4. 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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.