Open source / Container.

browser-testtool

"browser-tester" is een deterministische testomgeving die de werking van een webbrowser simuleert en is volledig geïmplementeerd in Rust. Het valideert het gedrag van de DOM (Document Object Model) en gebeurtenissen zonder een echte webbrowser te starten.

Rust. Deterministische runtime. DOM-testen.

Waar deze container goed in is.

De browser-tester richt zich op het testen van voorspelbaar gedrag van formulieren en gebruikersinterfaces, in plaats van op de volledige compatibiliteit met verschillende browsers.

Runtime-omgeving die alleen Rust-code ondersteunt.

Werkt binnen een enkel Rust-proces. Geen externe browser, WebDriver of Node.js-afhankelijkheden nodig.

Deterministische uitvoering.

Ontworpen voor reproduceerbare tests: met functies zoals een gesimuleerde klok, een deterministische willekeurige startwaarde en expliciete API's voor timerbesturing.

DOM- en event-testen.

Ondersteunt praktische workflows die lijken op die van een webbrowser: selectoren, inline scriptuitvoering, eventpropagatie en DOM-updates.

Snelle, lokale feedback.

Een snelle feedbackcyclus voor UI-tests die zich richten op formulieren, waarbij de foutmeldingen gericht zijn op de selectoren en de verwachte/werkelijke waarden.

Snelle start.

Maak een testomgeving met behulp van HTML, voer interacties uit en controleer de resultaten in de Document Object Model (DOM). Begin met een eenvoudige testopstelling en breid deze uit met timers en gesimuleerde API's.

Installeren.

cargo: voeg browser_tester toe.

Eenvoudig voorbeeld.

Hoofdinterface van de API.

Harnas Acties + Verklaringen.

Kernfunctionaliteiten voor DOM-tests: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, en hulpmiddelen voor het verifiëren van tekst, waarden, selectievakjes en het bestaan van elementen.

Deterministische timers.

Controleer asynchroon gedrag met een gesimuleerde klok. Versnel de tijd op een voorspelbare manier met behulp van de functies `advance_time`, `advance_time_to`, `flush` en de API voor het inspecteren van timers.

Ingebouwde testomgevingen.

Gebruik `set_fetch_mock`, `enqueue_confirm_response` en `enqueue_prompt_response` om antwoorden van API-aanvragen en resultaten van dialogen te simuleren, zodat uw tests geïsoleerd blijven.

Traceerbaarheid en diagnostiek.

Schakel traceerlogbestanden in en extraheer de volgorde van gebeurtenissen en timers wanneer een test mislukt. Dit is nuttig voor het opsporen van problemen met de volgorde van gebeurtenissen en het standaardgedrag van acties.

Uitvoeringsbeleid.

  • De functie "eval" wordt opzettelijk niet ondersteund om de veiligheid en voorspelbaarheid te waarborgen.
  • Deze testomgeving is gericht op praktische testscenario's en garandeert geen 100% compatibiliteit met echte browsers.
  • Externe netwerkcommunicatie valt buiten de scope; gebruik mock-objecten voor het testen.

Als u aanvullende browser-API's nodig heeft voor uw testomgeving, kunt u een melding indienen met een minimale testopstelling om de reikwijdte en prioriteit te bespreken.