← スキル一覧に戻る

webapp-testing
by DerGueni
HTML Formular Bearbeitung
⭐ 0🍴 0📅 2026年1月25日
SKILL.md
name: WebApp Testing description: Testet HTML-Formulare mit Playwright. UI-Verifizierung, Button-Tests, Formular-Validierung, Screenshots, Console-Logs prüfen. when_to_use: Testen, Test, prüfen, verifizieren, funktioniert, Browser-Test, Playwright, Screenshot version: 1.0.0 auto_trigger: test, testen, prüfen, verifizieren, playwright, screenshot
WebApp Testing für CONSYS
🎯 Zweck
Automatisierte Tests für HTML-Formulare mit Playwright:
- UI-Verifizierung (sieht aus wie erwartet?)
- Funktions-Tests (Buttons, Inputs, Navigation)
- Regressions-Tests (funktioniert nach Änderung noch?)
- Screenshot-Vergleiche
🛠️ Setup
Playwright bereits installiert
C:\Users\guenther.siegert\Documents\0006_All_Access_KNOWLEDGE\.playwright-mcp\
Test-Konfiguration
playwright.config.ts
📋 Test-Workflows
1. Einfacher Button-Test
// tests/button-test.spec.js
const { test, expect } = require('@playwright/test');
test('Button btnSpeichern funktioniert', async ({ page }) => {
// 1. Formular öffnen
await page.goto('http://localhost:8080/frm_va_Auftragstamm.html');
// 2. Warten bis geladen
await page.waitForLoadState('networkidle');
// 3. Button finden und klicken
const btn = page.locator('#btnSpeichern');
await expect(btn).toBeVisible();
await btn.click();
// 4. Erwartetes Ergebnis prüfen
await expect(page.locator('#lblStatus')).toContainText('Gespeichert');
});
2. Formular-Eingabe-Test
test('Formular kann ausgefüllt werden', async ({ page }) => {
await page.goto('http://localhost:8080/frm_MA_Mitarbeiterstamm.html');
// Felder ausfüllen
await page.fill('#txtVorname', 'Max');
await page.fill('#txtNachname', 'Mustermann');
await page.selectOption('#cboAbteilung', '3');
await page.check('#chkAktiv');
// Prüfen ob Werte gesetzt
await expect(page.locator('#txtVorname')).toHaveValue('Max');
await expect(page.locator('#txtNachname')).toHaveValue('Mustermann');
});
3. API-Response-Test
test('API liefert Daten', async ({ page }) => {
// API-Response abfangen
const responsePromise = page.waitForResponse(
response => response.url().includes('/api/mitarbeiter') && response.status() === 200
);
await page.goto('http://localhost:8080/frm_MA_Mitarbeiterstamm.html');
const response = await responsePromise;
const data = await response.json();
expect(data.length).toBeGreaterThan(0);
});
4. Screenshot-Test
test('Formular sieht korrekt aus', async ({ page }) => {
await page.goto('http://localhost:8080/frm_va_Auftragstamm.html');
await page.waitForLoadState('networkidle');
// Screenshot erstellen
await page.screenshot({
path: 'screenshots/frm_va_Auftragstamm.png',
fullPage: true
});
// Oder spezifisches Element
await page.locator('.form-header').screenshot({
path: 'screenshots/header.png'
});
});
5. Console-Error-Test
test('Keine JavaScript-Fehler', async ({ page }) => {
const errors = [];
// Console-Errors sammeln
page.on('console', msg => {
if (msg.type() === 'error') {
errors.push(msg.text());
}
});
await page.goto('http://localhost:8080/frm_va_Auftragstamm.html');
await page.waitForLoadState('networkidle');
// Alle Buttons klicken
const buttons = await page.locator('button').all();
for (const btn of buttons) {
await btn.click({ force: true }).catch(() => {}); // Fehler ignorieren
}
// Prüfen ob Errors aufgetreten
expect(errors).toEqual([]);
});
🔧 Schnell-Befehle
Test ausführen
# Einzelner Test
npx playwright test tests/button-test.spec.js
# Alle Tests
npx playwright test
# Mit UI
npx playwright test --ui
# Debug-Modus
npx playwright test --debug
Screenshot machen
npx playwright screenshot http://localhost:8080/frm_va_Auftragstamm.html screenshot.png
Browser öffnen und interaktiv testen
npx playwright open http://localhost:8080/frm_va_Auftragstamm.html
📝 Test-Checkliste für Formulare
Bei jedem neuen/geänderten Formular prüfen:
- Formular lädt ohne Fehler
- Keine Console-Errors
- Alle Buttons sind klickbar
- API-Calls funktionieren
- Daten werden angezeigt
- Eingabefelder funktionieren
- Select-Boxen haben Optionen
- Navigation funktioniert (Vor/Zurück)
- Speichern funktioniert
- Schließen funktioniert
🚨 Typische Fehler finden
Button reagiert nicht
test('Debug: Button onclick', async ({ page }) => {
await page.goto('http://localhost:8080/form.html');
const btn = page.locator('#btnProblem');
// Hat Button onclick?
const onclick = await btn.getAttribute('onclick');
console.log('onclick:', onclick);
// Ist Button sichtbar?
const visible = await btn.isVisible();
console.log('visible:', visible);
// Ist Button disabled?
const disabled = await btn.isDisabled();
console.log('disabled:', disabled);
});
API-Fehler finden
test('Debug: API Responses', async ({ page }) => {
page.on('response', response => {
if (response.url().includes('/api/')) {
console.log(`${response.status()} ${response.url()}`);
}
});
await page.goto('http://localhost:8080/form.html');
await page.waitForTimeout(3000);
});
📁 Dateipfade
- Tests:
tests/*.spec.js - Config:
playwright.config.ts - Screenshots:
screenshots/ - Reports:
test-results/
✅ Integration mit CONSYS-Workflow
Nach jeder HTML-Änderung:
-
Server starten (falls nicht läuft)
cd 06_Server && python quick_api_server.py -
Test ausführen
npx playwright test tests/[formular].spec.js -
Screenshot vergleichen
- Vorher/Nachher visuell prüfen
-
In CLAUDE2.md dokumentieren
- Test-Ergebnis eintragen
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です