Åben kildekode / Container.

browser-tester

"browser-tester" er en deterministisk testplatform, der efterligner en webbrowser og er implementeret udelukkende i Rust. Den validerer DOM-struktur og hændelsesforløb uden at starte en rigtig webbrowser.

Rust. Deterministisk kørselstid. DOM-testning.

Hvad denne pakke er god til.

"Browser-tester" fokuserer på tests af forudsigelig funktionalitet i formularer og brugergrænseflader, snarere end på fuld kompatibilitet med forskellige browseres gengivelse.

Runtime-miljø kun til Rust.

Kører inden for en enkelt Rust-proces. Ingen eksterne afhængigheder af browsere, WebDriver eller Node.js.

Deterministisk udførelse.

Designet til gentagne tests: inkluderer en simuleret urfunktion, en deterministisk tilfældig startværdi og eksplicitte API'er til tidsstyring.

DOM- og eventtestning.

Understøtter praktiske funktioner, der minder om en webbrowser: selektorer, udførelse af indlejret kode, håndtering af hændelser og opdateringer af DOM (Document Object Model).

Hurtig, lokal feedback.

Hurtig feedback-cyklus for UI-tests, der fokuserer på formularer, samtidig med at fejlmeddelelserne er koncentreret om de anvendte selektorer og de forventede/faktiske værdier.

Hurtig start.

Opret et testmiljø ved hjælp af HTML, udfør interaktioner og verificer DOM-resultater. Start med en simpel teststruktur og udvid den med timere og simulerede API'er.

Installer.

cargo add browser_tester

Simpelt eksempel.

Hovedgrænseflade for API'et.

Udnyt handlinger og påstande.

Grundlæggende DOM-testoperationer: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, samt hjælpefunktioner til at verificere tekst/værdi/tilstand/eksistens.

Deterministiske timere.

Styr asynkron adfærd med en simuleret ur. Fremryk tiden på en forudsigelig måde ved hjælp af funktionerne `advance_time`, `advance_time_to`, `flush` og API'erne til inspektion af timere.

Indbyggede mock-objekter.

Brug `set_fetch_mock`, `enqueue_confirm_response` og `enqueue_prompt_response` til at simulere svar fra hentningsoperationer og dialogresultater, så dine tests forbliver isolerede.

Sporing og diagnosticering.

Aktiver sporingslogfiler og hent information om hændelser/timer, når en test fejler. Dette er nyttigt til fejlfinding af hændelsesrækkefølgen og standardadfærd.

Kørselspolitik.

  • Funktionen "eval" er bevidst ikke understøttet for at bevare sikkerheden og forudsigeligheden.
  • Denne testplatform er designet til at simulere praktiske testsituationer, og den garanterer ikke 100% kompatibilitet med rigtige webbrowsere.
  • Eksterne netværksinput/output er ikke omfattet; brug simuleret data ("mock data") for at sikre tilstrækkelig testdækning.

Hvis du har brug for yderligere browser-API'er til din testsuite, kan du oprette en sag (issue) med et minimalt eksempel for at diskutere omfang og prioritet.