Playwright MCP
🎭 Playwright 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 | Фреймворк для автоматизации браузера |
Язык программирования | |
Протокол взаимодействия с ИИ | |
Разбор 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🧪 Сценарии тестирования
Файл теста | Описание | Паттерн |
| Проверка входа с встроенными данными (допустимые и недопустимые учетные данные) | Data-Driven |
| Проверка входа с использованием источника данных CSV | Data-Driven (CSV) |
| Вход, выход и проверка перенаправления на страницу входа | Линейный |
| Переход в раздел Admin → проверка страницы System Users | Линейный |
| Публикация сообщения в разделе Buzz и проверка его появления | Линейный |
| Поиск сотрудников по имени в модуле PIM | Линейный |
| Добавление нового сотрудника с использованием Page Object Model | POM |
| Стандартный пример 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
This server cannot be deployed
Maintenance
Related MCP Connectors
Browser-based QA for AI-built software. Test pages with real browsers via agents.
Approved test intent, reviewed Playwright automation and run evidence, inside your editor.
Agentic testing: HyperExecute jobs, test failure triage, SmartUI visual diffs, a11y audits
Direct access to Cypress tests results and accessibility reports in your AI workflow.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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.6,555,401 npmApache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables 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.17 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to execute browser automation, perform QA tasks, and generate test code through natural language commands using Playwright.7-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to drive Playwright-based browser automation for UI testing, returning JSON/HTML reports with screenshots without server-side LLM or test scripts.1MIT