QA The Other WayQualitätssicherung im Zeitalter der KI-Automatisierung. QA The Other Way.
Praktisches QA

Ein Konsolenfehler ist keine unbehandelte Ausnahme.

Sammeln Sie Konsolenmeldungen und Seitenfehler getrennt und prüfen Sie das Ergebnis.

5 Minuten LesezeitQA The Other Way
Zwei Kanäle für Konsolenmeldung und unbehandelte Ausnahme.
Eigene redaktionelle Illustration.
Illustratives Video zu diesem Artikel. Englischer Bildschirmtext; Wählen Sie Untertitel für diese Sprache aus.

Übersetzte Ausgabe. Technische Kennungen bleiben in ihrer ursprünglichen Form.

Sammeln Sie Konsolenmeldungen und Seitenfehler getrennt und prüfen Sie das Ergebnis.
Lokales Beispiel mit erfundenen Daten, keine Kunden- oder Anbieteroberfläche.

Ein Test besteht, obwohl die Seite während der Aktion einen Fehler protokolliert. Ein anderer Lauf wirft eine unbehandelte Ausnahme, während die erwartete Überschrift sichtbar bleibt. Beide Signale brauchen Untersuchung, aber ein Listener für eines beschreibt nicht das andere.

Die Page-API dokumentiert console für Konsolenaufrufe und pageerror für unbehandelte Ausnahmen. ConsoleMessage hat Typ und Text. Erhalten Sie den Kanal, damit eine Fehlermeldung nicht zur erfundenen Ausnahmediagnose wird.

Vor der Aktion zuhören

Unsere erfundene Seite hat einen console.error-Button und einen Button für einen geplanten Error. Keine externen Ressourcen oder Kundendaten. Der Test wartet vor dem Klick und prüft den passenden Kanal.

const pending = page.waitForEvent('console', message =>
  message.type() === 'error' && message.text() === 'demo diagnostic'
);
await page.getByRole('button', { name: 'Log demo error' }).click();
const message = await pending;
expect(message.text()).toBe('demo diagnostic');

Der Code braucht Playwright-Runner, importiertes expect und die lokale Fixture. Das Warten beginnt vor dem Klick für schnelle Ereignisse. Es trifft eine feste erfundene Meldung, nicht jeden echten Fehler. Registrieren Sie pageerror separat.

Der lokale console.error erzeugt die ausgewählte Meldung ohne pageerror. Ein separater geplanter throw erzeugt pageerror mit dem kontrollierten Text. Das bestätigt diese Fixture, nicht jede Browserdiagnose oder Bibliotheksregel.

Sammlung und Freigaberegel trennen

Ein empfangenes Ereignis ist allein keine fehlgeschlagene Assertion. Definieren Sie, welche unerwarteten Ereignisse den Ablauf scheitern lassen, welche bekannten erlaubt sind und wer Ausnahmen besitzt. Enge überprüfbare Erlaubnislisten dürfen nicht den ganzen Kanal abschalten.

Prüfen Sie Ursprung und Aktion vor einer Ursachenzuweisung. Eine Meldung kann einen behandelten Zustand beschreiben, eine Ausnahme andere Arbeit betreffen. Beides allein beweist keine gespeicherte Datenzeile. Behalten Sie Ergebnisassertions.

Geschah Setup oder Navigation vor der Registrierung, ist die Liste für diesen Zeitraum unvollständig. Nennen Sie das Beobachtungsfenster. Eine leere Liste beweist keine saubere Anwendung bei unbeobachtetem Start oder einer anderen Seite.

Diagnoseartefakte schützen

Argumente und Fehlertexte können Datensätze, Tokens oder URLs enthalten. Sammeln Sie nur Benötigtes und redigieren Sie vor dem Teilen. Lesbare Argumente sind keine Erlaubnis zur öffentlichen Serialisierung. Hier gibt es nur feste erfundene Texte.

Prüfen Sie bei generierten Tests Listenerzeitpunkt, Filter und auswertende Assertion. AnyTest beschreibt Erkundung und Tests für menschliche Prüfung. Eine bestimmte Konsolenfunktion wird nicht behauptet. Nennen Sie Kanal, Aktion, Ergebnis und fehlende Evidenz.

Ein Listener auf einer Seite beschreibt kein separat geöffnetes Fenster. Ordnen Sie Daten der Seite und Zeitspanne zu. Prüfen Sie Abdeckungslücken vor einer gemeinsamen Freigabeaussage.

Häufige Fragen

Bedeutet console.error immer eine unbehandelte Ausnahme?

Nein. Meldungen und Ausnahmen verwenden verschiedene Kanäle.

Lässt Zuhören den Test scheitern?

Nein. Eine Assertion oder ausdrückliche Regel muss die Daten auswerten.

Quellen