Playwright Monitor
End-to-End Browser Tests mit echten User-Flows.
Playwright Monitor
Für kritische Prozesse wie Login, Checkout oder Registrierung reicht ein einfacher HTTP-Check oft nicht aus. Der Playwright Monitor lädt Ihre Website in einem echten Browser (Headless Chromium) und führt ein von Ihnen definiertes Skript aus.
Dies simuliert einen echten Benutzer und deckt JavaScript-Fehler, defekte Buttons oder UI-Probleme auf.
Funktionsweise
Wir führen Ihr Playwright-Skript in unserer sicheren Cloud-Umgebung aus.
- Erfolg: Das Skript läuft ohne Fehler durch.
- Fehler: Eine
expect-Prüfung schlägt fehl oder ein Timeout tritt auf. Wir speichern automatisch einen Screenshot und die Fehlermeldung.
Beispiel: Login Testen
Hier ist ein einfaches Skript, um einen Login-Vorgang zu testen:
import { test, expect } from '@playwright/test';
test('User can login', async ({ page }) => {
// 1. Navigation
await page.goto('https://app.example.com/login');
// 2. Formular ausfüllen (Nutzung von Env-Variablen)
await page.fill('input[name="email"]', 'monitor-user@example.com');
await page.fill('input[name="password"]', process.env.MONITOR_PASSWORD);
// 3. Absenden
await page.click('button[type="submit"]');
// 4. Verifizierung (Warten auf Dashboard-Element)
await expect(page).toHaveURL(/dashboard/);
await expect(page.locator('.welcome-message')).toContainText('Hallo');
});
Umgebungsvariablen (Secrets)
Sie sollten niemals Passwörter, API-Keys oder sensible Daten direkt im Skript speichern ("hardcoden"). Nutzen Sie stattdessen Environment Variables.
Einrichtung
- Navigieren Sie zu den Monitor-Einstellungen.
- Öffnen Sie den Bereich Erweiterte Einstellungen (Advanced Settings).
- Finden Sie den Abschnitt Environment Variables.
- Tragen Sie Schlüssel (Key) und Wert (Value) ein.
- Beispiel Key:
PASSWORD - Beispiel Value:
GeheimesPasswort123!
- Beispiel Key:
Verwendung im Skript
Im Playwright-Code greifen Sie über process.env.KEY auf die Werte zu. Die Werte werden erst zur Laufzeit in der sicheren Worker-Umgebung injiziert.
test('Secure Login', async ({ page }) => {
await page.goto('https://example.com/login');
// Sicherer Zugriff via process.env
await page.fill('#password', process.env.PASSWORD);
await page.click('#submit');
});
Sicherheit
- Die Werte werden verschlüsselt in unserer Datenbank gespeichert.
- Sie sind im Frontend-Editor nach dem Speichern nicht mehr im Klartext einsehbar (je nach Berechtigung).
- Sie tauchen nicht im Screenshot-Log auf (sofern Sie sie nicht explizit
console.loggen).
Tipps für stabile Tests
- Nutzen Sie
data-testidAttribute für Selektoren, wo möglich. - Warten Sie auf Elemente (
expect(locator).toBeVisible()) statt festesleep()Zeiten zu nutzen. - Halten Sie die Szenarien kurz und fokussiert (z.B. nur "Login" statt "Login + Kauf + Logout").