Playwright-Debugging-Tools
Dieses Kapitel stellt die drei wichtigsten Debugging-Tools von Playwright vor: UI Mode, Trace Viewer und den Debug-Modus auf der Kommandozeile.
Vollständige Einführung in den UI Mode
Der UI Mode ist die in Playwright integrierte grafische Testoberfläche und bietetein All-in-One-Erlebnis zum Erkunden, Ausführen und Debuggen von Tests.
UI Mode starten
npx playwright test --ui
Testliste durchsuchen
Nach dem Start zeigt die linke Seitenleiste alle Testdateien an.
Sie können jede Datei erweitern unddescribeBlock, um jeden Test einzeln auszuführen, anzuzeigen, zu überwachen oder zu debuggen.
Watch-Modus
Nach dem Klicken auf die Schaltfläche „Watch“ überwacht Playwright Dateiänderungen und führt betroffene Tests automatisch erneut aus, sobald der Testcode oder Quellcode aktualisiert wurde.
Timeline-Ansicht
Nach der Testausführung erscheint oben eine Timeline-Ansicht, die Navigation und Aktionen mit unterschiedlichen Farben markiert.
Du kannst den Mauszeiger darüber bewegen, um Snapshots der einzelnen Schritte anzuzeigen, oder doppelklicken, um einen Zeitraum auszuwählen und dessen detaillierte Logs anzuzeigen.
DOM-Snapshot
Beim Klicken auf einen Schritt in der Timeline wird rechts der DOM-Snapshot dieses Moments angezeigt.
Du kannst den tatsächlichen Zustand der Seite vor und nach der Aktion sehen und Probleme schnell erkennen.
Testfilterung
Der UI-Modus unterstützt mehrere Filtermethoden:
- Nach Testnamen suchen, um
- drücken
@tag
filter - Nach Projekt filtern
- Nach Status filtern: bestanden, fehlgeschlagen, übersprungen
Eingehendes Debugging mit dem Trace Viewer
Trace Viewer ist das Aufzeichnungs- und Wiedergabetool von Playwright, mit dem dujeden Schritt eines Tests genau wie beim Debuggen einer Aufzeichnung untersuchen kannst.。
Konfigurieren der Trace-Sammlung
Beispiel
export default defineConfig({
Verwenden Sie: {
// Trace nur beim Wiederholen nach einem Fehler erfassen
trace: 'on-first-retry',
// Optionale Werte:
// 'off' —— Nicht erfassen
// 'on' —— Jedes Mal erfassen
// 'on-first-retry' —— Nur bei der ersten Wiederholung erfassen (empfohlen)
// 'retain-on-failure' —— Trace nur bei Fehler behalten
},
});
Trace öffnen
# 本地打开 npx playwright show-trace path/to/trace.zip
Du kannst es auch auftrace.playwright.devhochladen, um es online anzusehen.
Im Trace enthaltene Informationen
| Inhalt | Beschreibung |
|---|---|
| DOM-Snapshot | Vollständige DOM-Snapshots der Seite vor und nach der Ausführung jedes Schritts |
| Netzwerkanfragen | Alle HTTP-Anfragen und -Antworten (URL, Statuscode, Header, Body) |
| Konsolenprotokolle | Alle von der Browserkonsole ausgegebenen Nachrichten |
| Screenshots | Seitenscreenshots für jeden Schritt |
| Aktionsprotokoll | Aufrufargumente und Ausführungszeit aller Playwright-Aktionen |
| Quellcode | Stelle im Testquellcode, die jeder Aktion entspricht |
Trace zum Lokalisieren von Fehlern verwenden
Finde den fehlgeschlagenen Schritt in der Trace Viewer-Zeitleiste, untersuche den DOM-Zustand und die Netzwerkanfragen der Seite vor und nach diesem Schritt und identifiziere die Ursache des Fehlers.
Trace ist das leistungsstärkste Debugging-Tool. Wenn ein Test in CI fehlschlägt, du ihn aber lokal nicht reproduzieren kannst, kannst du die von CI generierte Trace-Datei herunterladen, um die Ursache des Fehlers offline zu analysieren.
--debug-Modus und page.pause()
--debug-Kommandozeilenmodus
npx playwright test --debug
Funktionen:
- Öffnet automatisch das Playwright Inspector-Fenster
- Operationen einzeln schrittweise durchgehen
- Debuggen in den Browser-DevTools
- Verwenden Sie
F10
(Step Over) undF11
(Step Into), um die Ausführung zu steuern
page.pause() pausiert die Ausführung
Beispiel
test('Test zum Debuggen', async ({ page }) => {
await page.goto('https://www.example.com/');
// Ausführung anhalten und den Inspector öffnen
await page.pause();
// Im Inspector können Sie die nachfolgenden Aktionen schrittweise durchgehen
await page.getByText('EXAMPLE Tutorial').click();
});
Nach der Verwendung vonpage.pause()Wenn Sie den Test ausführen, öffnet Playwright automatisch das Inspector-Fenster, sodass Sie den Seitenzustand Schritt für Schritt untersuchen können.
Auswahl zwischen den drei Debugging-Methoden
| Methode | Anwendungsfall |
|---|---|
| UI-Modus | Tägliche Entwicklung, Durchsuchen der Testliste, schnelles Überprüfen des Teststatus |
| Trace Viewer | Lokalisieren von CI-Fehlern, Analysieren jedes Schritts komplexer Tests |
| --debug / page.pause() | Entwickeln neuer Tests, eingehendes Debuggen bestimmter Schritte |