Skip to main content
Glama

🎭 Playwright MCP - ИИ-управляемая автоматизация тестирования (OrangeHRM)

Playwright TypeScript MCP OrangeHRM

Proof of Concept проект, демонстрирующий автоматизацию браузерного тестирования с помощью ИИ с использованием Playwright, интегрированного с Model Context Protocol (MCP). Тесты написаны на TypeScript с использованием паттерна Page Object Model (POM) и нацелены на демонстрационное приложение OrangeHRM.


📋 Содержание


Related MCP server: MCP Playwright Server

🎯 Обзор

Этот проект демонстрирует, как AI + Playwright могут автоматизировать браузерное тестирование с помощью обычных английских запросов через Model Context Protocol (MCP). Вместо того чтобы писать каждую строку кода автоматизации вручную, вы описываете, что хотите протестировать, на естественном языке, а ИИ помогает генерировать и выполнять автоматизацию.

Ключевые концепции

Компонент

Роль

Аналогия

LLM (Большая языковая модель)

Понимает запросы и генерирует инструкции

🧠 Мозг

Агент

Выполняет задачи автоматически

⚡ Исполнитель

MCP (Model Context Protocol)

Связывает ИИ с реальными инструментами (браузеры, API и т.д.)

🔗 Переводчик


🏗 Архитектура

           Plain English Prompt
                    │
                    ▼
        Large Language Model (LLM)
                    │
          Generates Instructions
                    │
                    ▼
                AI Agent
                    │
         Executes the Instructions
                    │
                    ▼
      Model Context Protocol (MCP)
                    │
     Connects to Real Applications
                    │
                    ▼
          Playwright + Browser
                    │
                    ▼
          Browser Automation

💻 Технологический стек

Технология

Назначение

Playwright ^1.60

Фреймворк для автоматизации браузера

TypeScript

Язык программирования

MCP

Протокол взаимодействия с ИИ

csv-parse

Разбор CSV для тестов с данными

Node.js

Среда выполнения


📁 Структура проекта

├── 📂 pages/                          # Page Object Model classes
│   ├── LoginPage.ts                   # Login page locators & actions
│   └── PimPage.ts                     # PIM module locators & actions
│
├── 📂 tests/                          # Test specifications
│   ├── example.spec.ts                # Sample Playwright test
│   ├── orangehrm-login-data-driven.spec.ts       # Data-driven login (inline)
│   ├── orangehrm-login-data-driven-csv.spec.ts   # Data-driven login (CSV)
│   ├── orangehrm-logout.spec.ts                  # Logout flow test
│   ├── orangehrm-admin-system-users.spec.ts      # Admin module test
│   ├── orangehrm-buzz-post.spec.ts               # Buzz social feed test
│   ├── pim-search.spec.ts                        # PIM employee search
│   └── add-employee.spec.ts                      # Add employee (POM)
│
├── 📂 test_data/                     # Test data files
│   └── loginData.csv                 # CSV test data for login
│
├── 📂 playwright-report/             # HTML test reports
├── 📂 test-results/                  # Test execution artifacts
│
├── 📄 playwright.config.ts           # Playwright configuration
├── 📄 package.json                   # Dependencies & scripts
├── 📄 README.md                      # This file
│
├── 📄 Playwright_MCP_Guide.md        # Detailed MCP concepts guide
├── 📄 PlaywrightMCP_Vs_CLI.md        # MCP vs CLI comparison
├── 📄 playwright-context.md          # MCP test generator context
├── 📄 playwright-context-pom.md      # MCP POM test generator context
├── 📄 prompts.md                     # Sample AI prompts used
└── 📄 notes.md                       # Architecture & concept notes

🧪 Сценарии тестирования

Файл теста

Описание

Паттерн

orangehrm-login-data-driven.spec.ts

Проверка входа с встроенными данными (допустимые и недопустимые учетные данные)

Data-Driven

orangehrm-login-data-driven-csv.spec.ts

Проверка входа с использованием источника данных CSV

Data-Driven (CSV)

orangehrm-logout.spec.ts

Вход, выход и проверка перенаправления на страницу входа

Линейный

orangehrm-admin-system-users.spec.ts

Переход в раздел Admin → проверка страницы System Users

Линейный

orangehrm-buzz-post.spec.ts

Публикация сообщения в разделе Buzz и проверка его появления

Линейный

pim-search.spec.ts

Поиск сотрудников по имени в модуле PIM

Линейный

add-employee.spec.ts

Добавление нового сотрудника с использованием Page Object Model

POM

example.spec.ts

Стандартный пример Playwright

Линейный


🚀 Начало работы

Предварительные требования

Установка

# Clone the repository
git clone https://github.com/pavanoltraining/POC_Playwright_MCP_orangehrm.git

# Navigate to the project directory
cd POC_Playwright_MCP_orangehrm

# Install dependencies
npm install

# Install Playwright browsers
npx playwright install chromium

▶️ Запуск тестов

Запуск всех тестов

npx playwright test

Запуск конкретного файла тестов

npx playwright test tests/orangehrm-login-data-driven.spec.ts

Запуск тестов в режиме UI

npx playwright test --ui

Просмотр HTML-отчёта

npx playwright show-report

Запуск с режимом отладки

npx playwright test --debug

🧩 Page Object Model

Проект использует Page Object Model (POM) для поддерживаемого и переиспользуемого тестового кода.

Пример: LoginPage.ts

export class LoginPage {
  readonly usernameInput = page.getByPlaceholder("Username");
  readonly passwordInput = page.getByPlaceholder("Password");
  readonly loginButton = page.getByRole("button", { name: "Login" });

  async login(username: string, password: string) {
    await this.usernameInput.fill(username);
    await this.passwordInput.fill(password);
    await this.loginButton.click();
  }
}

Пример: PimPage.ts

export class PimPage {
  async navigateToPim() {
    /* ... */
  }
  async openAddEmployee() {
    /* ... */
  }
  async addEmployee(firstName: string, lastName: string) {
    /* ... */
  }
}

📊 Тестирование на основе данных

Встроенные данные

Тесты входа в систему с несколькими учетными данными, определенными встроенно:

Логин

Пароль

Ожидаемый результат

Admin

admin123

Dashboard

fakeuser

fakepass

Invalid credentials

ESSUser1

ess123

Invalid credentials

Данные из CSV

Тесты читают тестовые случаи из test_data/loginData.csv:

Username,Password,Expected
Admin,admin123,Dashboard
fakeuser,fakepass,Invalid credentials
ESSUser1,ess123,Invalid credentials

🤖 Playwright MCP и Playwright CLI

Возможность

Playwright CLI

Playwright MCP

Назначение

Мост между ИИ и Playwright

Мост между ИИ и браузером

Используется

Разработчиками и тестировщиками

ИИ-агентами

Управление

Терминальные команды

Естественный язык

Требуется писать код

Да

Минимально

Генерация кода

Нет

Да (с помощью ИИ)

Автоматизация ИИ

Нет

Да


🌐 Ресурсы


Этот проект создан с ❤️ с использованием Playwright + MCP + AI

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables browser automation and web page interaction through Playwright's accessibility tree, allowing LLMs to navigate, fill forms, click elements, and extract content without requiring vision models or screenshots.
    4,588,713
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to control web browsers through Playwright automation, providing 50+ tools for navigation, interaction, testing, accessibility audits, and visual testing across Chromium, Firefox, and WebKit.
    10
    MIT

View all related MCP servers

Related MCP Connectors

  • AI QA tester — real browsers scan sites for bugs, SEO, perf, and accessibility issues via chat.

  • Browser-backed QA with evidence and fix-ready reports for coding agents.

  • AI-powered browser automation — navigate, click, fill forms, and extract data from any website.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pavanoltraining/POC_Playwright_MCP_orangehrm'

If you have feedback or need assistance with the MCP directory API, please join our Discord server