Playwright MCP
🎭 Playwright MCP - KI-gestützte Testautomatisierung (OrangeHRM)
Ein Proof-of-Concept-Projekt, das KI-gestützte Browser-Testautomatisierung mit Playwright demonstriert, integriert mit dem Model Context Protocol (MCP). Die Tests sind in TypeScript unter Verwendung des Page Object Model (POM)-Entwurfsmusters geschrieben und zielen auf die OrangeHRM-Demoanwendung ab.
📋 Inhaltsverzeichnis
Related MCP server: MCP Playwright Server
🎯 Überblick
Dieses Projekt zeigt, wie KI + Playwright Browser-Tests mithilfe von einfachen englischen Eingabeaufforderungen über das Model Context Protocol (MCP) automatisieren kann. Anstatt jede Zeile Automatisierungscode manuell zu schreiben, beschreibst du in natürlicher Sprache, was du testen möchtest, und die KI hilft, die Automatisierung zu generieren und auszuführen.
Kernkonzepte
Komponente | Rolle | Analogie |
LLM (Large Language Model) | Versteht Anfragen & generiert Anweisungen | 🧠 Gehirn |
Agent | Führt Aufgaben automatisch aus | ⚡ Ausführender |
MCP (Model Context Protocol) | Verbindet KI mit echten Tools (Browser, APIs usw.) | 🔗 Übersetzer |
🏗 Architektur
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💻 Technologie-Stack
Technologie | Zweck |
Playwright ^1.60 | Browser-Automatisierungsframework |
Programmiersprache | |
KI-zu-Tool-Kommunikationsprotokoll | |
CSV-Parsing für datengesteuerte Tests | |
Node.js | Laufzeitumgebung |
📁 Projektstruktur
├── 📂 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🧪 Testszenarien
Testdatei | Beschreibung | Muster |
| Login-Validierung mit Inline-Daten (gültige + ungültige Anmeldedaten) | Datengesteuert |
| Login-Validierung mit CSV-Datenquelle | Datengesteuert (CSV) |
| Anmelden, Abmelden und Weiterleitung zur Anmeldeseite überprüfen | Linear |
| Navigieren zu Admin → Systembenutzer-Seite überprüfen | Linear |
| Nachricht im Buzz-Feed veröffentlichen und deren Erscheinen überprüfen | Linear |
| Mitarbeiter nach Namen im PIM-Modul suchen | Linear |
| Neuen Mitarbeiter mit Page Object Model hinzufügen | POM |
| Standard-Playwright-Beispieltest | Linear |
🚀 Erste Schritte
Voraussetzungen
Installation
# 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▶️ Tests ausführen
Alle Tests ausführen
npx playwright testEine bestimmte Testdatei ausführen
npx playwright test tests/orangehrm-login-data-driven.spec.tsTests im UI-Modus ausführen
npx playwright test --uiHTML-Bericht anzeigen
npx playwright show-reportMit Debug-Modus ausführen
npx playwright test --debug🧩 Page Object Model
Das Projekt verwendet das Page Object Model (POM)-Entwurfsmuster für wartbaren und wiederverwendbaren Testcode.
Beispiel: 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();
}
}Beispiel: PimPage.ts
export class PimPage {
async navigateToPim() {
/* ... */
}
async openAddEmployee() {
/* ... */
}
async addEmployee(firstName: string, lastName: string) {
/* ... */
}
}📊 Datengesteuertes Testen
Inline-Datengesteuert
Tests führen die Anmeldung mit mehreren Inline definierten Anmeldedaten durch:
Benutzername | Passwort | Erwartetes Ergebnis |
Admin | admin123 | Dashboard |
fakeuser | fakepass | Ungültige Anmeldedaten |
ESSUser1 | ess123 | Ungültige Anmeldedaten |
CSV-Datengesteuert
Tests lesen Testfälle aus test_data/loginData.csv:
Username,Password,Expected
Admin,admin123,Dashboard
fakeuser,fakepass,Invalid credentials
ESSUser1,ess123,Invalid credentials🤖 Playwright MCP vs. Playwright CLI
Funktion | Playwright CLI | Playwright MCP |
Zweck | Befehlszeilentool für Playwright | KI-Brücke zwischen LLM und Playwright |
Verwendet von | Entwickler & Tester | KI-Agenten |
Eingabe | Terminalbefehle | Eingabeaufforderungen in natürlicher Sprache |
Browsersteuerung | Direkt über Playwright-Skripte | Über KI + MCP-Server |
Erfordert Programmierung | Ja | Minimale Programmierung |
Generiert Code | Nein | Ja (KI-generiert) |
Führt Tests aus | Ja | Ja |
Verwendet Accessibility Tree | Nein | Ja |
Unterstützt KI-Automatisierung | Nein | Ja |
Am besten geeignet für | Traditionelle Automatisierung | KI-gestützte Automatisierung |
📚 Ressourcen
📄 Lizenz
Dieses Projekt dient ausschließlich Bildungs- und Demonstrationszwecken.
Mit ❤️ erstellt mit Playwright + MCP + KI
This server cannot be installed
Maintenance
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
- 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.4,588,713Apache 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.10MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to execute browser automation, perform QA tasks, and generate test code through natural language commands using Playwright.5
- 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.MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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