Nur-Rust-Laufzeitumgebung.
Funktioniert innerhalb eines einzigen Rust-Prozesses. Es werden keine externen Browser, WebDriver- oder Node.js-Abhängigkeiten benötigt.
Open Source / Container.
`browser-tester` ist eine deterministische Testlaufzeit, die die Funktionalität eines Browsers simuliert und in reinem Rust implementiert ist. Sie überprüft das Verhalten von DOM-Elementen und Ereignissen, ohne einen echten Browser zu starten.
"browser-tester" konzentriert sich auf Tests, die das vorhersehbare Verhalten von Formularen und Benutzeroberflächen überprüfen, anstatt die vollständige Kompatibilität mit verschiedenen Browsern zu testen.
Funktioniert innerhalb eines einzigen Rust-Prozesses. Es werden keine externen Browser, WebDriver- oder Node.js-Abhängigkeiten benötigt.
Konzipiert für wiederholbare Tests: Mit Funktionen wie einer simulierten Uhr, einem deterministischen Zufallszahlengenerator und expliziten API-Schnittstellen zur Zeitsteuerung.
Unterstützt praktische Abläufe, die denen eines Webbrowsers ähneln: Selektoren, Ausführung von Inline-Skripten, Ereignisweitergabe und DOM-Aktualisierungen.
Ein schneller Feedback-Zyklus für UI-Tests, die sich auf Formulare konzentrieren, wobei die Fehlermeldungen klar auf die verwendeten Selektoren und die erwarteten/tatsächlichen Werte beschränkt sind.
Erstellen Sie ein Test-Framework mit HTML, führen Sie Interaktionen aus und überprüfen Sie die Ergebnisse im DOM. Beginnen Sie mit einer einfachen Testumgebung und erweitern Sie diese mit Timer- und Mock-APIs.
Installieren.
cargo: Füge das Modul "browser_tester" hinzu.
Grundlegendes Beispiel.
Kernfunktionen für DOM-Tests: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit` sowie Hilfsfunktionen für die Überprüfung von Text, Werten, Kontrollkästchen und der Existenz von Elementen.
Steuern Sie asynchrones Verhalten mithilfe einer simulierten Uhr. Verwenden Sie die Funktionen `advance_time`, `advance_time_to`, `flush` und die APIs zur Überprüfung von Timern, um die Zeit deterministisch vorwärts zu bewegen.
Verwenden Sie die Funktionen `set_fetch_mock`, `enqueue_confirm_response` und `enqueue_prompt_response`, um die Ergebnisse von HTTP-Anfragen und Dialogen in Ihren Tests zu simulieren und so die Tests voneinander zu isolieren.
Aktivieren Sie die Protokollierung von Debug-Informationen und erfassen Sie den Ablauf von Ereignissen und Timern, wenn ein Test fehlschlägt. Dies ist nützlich zur Fehlersuche bei der Reihenfolge von Ereignissen und dem Verhalten von Standardaktionen.
Wenn Sie zusätzliche Browser-APIs für Ihre Testumgebung benötigen, eröffnen Sie bitte einen entsprechenden Antrag und fügen Sie ein minimales Beispiel hinzu, um den Umfang und die Priorität zu besprechen.