Otevřený zdroj / Kontejner.

testovací nástroj pro prohlížeče.

`browser-tester` je deterministický testovací nástroj, který simuluje chování webového prohlížeče a je implementován výhradně v programovacím jazyce Rust. Ověřuje strukturu DOM (Document Object Model) a chování událostí, aniž by spouštěl skutečný webový prohlížeč.

Rez. Deterministický běhový režim. Testování DOM.

V čem je tento box (nebo balíček) dobrý?

Nástroj browser-tester se zaměřuje na testování předvídatelného chování formulářů a uživatelského rozhraní, spíše než na kompletní kompatibilitu s různými prohlížeči.

Provozní prostředí pouze pro jazyk Rust.

Funguje uvnitř jednoho procesu napsaného v jazyce Rust. Nevyžaduje žádné externí prohlížeče, knihovnu WebDriver ani prostředí Node.js.

Deterministické provádění.

Navrženo pro opakovaná testování: obsahuje simulovaný časovač, deterministický generátor náhodných čísel a explicitní rozhraní pro řízení časování.

Testování DOM a událostí.

Podporuje praktické funkce, které se běžně používají v prohlížečích: selektory, spouštění skriptů přímo v kódu, šíření událostí a aktualizace DOM.

Rychlá zpětná vazba z místa.

Rychlý cyklus zpětné vazby pro testování uživatelského rozhraní zaměřeného na formuláře, přičemž výstup o chybách se soustředí na selektory a očekávané/skutečné hodnoty.

Rychlý start.

Vytvořte testovací prostředí pomocí HTML, definujte interakce a ověřte výsledky v DOM. Začněte s jednoduchým testovacím případem a postupně jej rozšiřujte o funkce, jako jsou časovače a simulace API.

Instalovat.

cargo přidat balíček browser_tester.

Základní příklad.

Hlavní rozhraní API.

Akce a tvrzení v kontextu "Harness".

Základní operace pro testování DOM: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit` a pomocné funkce pro ověřování textu, hodnot, zaškrtnutí a existence prvků.

Deterministické časovače.

Řízení asynchronního chování pomocí simulovaného časovače. Postupujte čas deterministicky pomocí funkcí `advance_time`, `advance_time_to`, `flush` a rozhraní pro kontrolu časovačů.

Vestavěné testovací objekty.

Pro zajištění izolace testů můžete do testů vkládat simulované odpovědi z fetch a výsledky dialogů pomocí funkcí `set_fetch_mock`, `enqueue_confirm_response` a `enqueue_prompt_response`.

Sledování a diagnostika.

Povolte záznamy pro ladění a extrahujte informace o průběhu událostí a časovačů, pokud test selže. To je užitečné pro odhalování problémů se správností pořadí událostí a chováním výchozích akcí.

Zásady provozu.

  • Funkce `eval` je záměrně nepodporována, aby se zachovala bezpečnost a předvídatelnost.
  • Tento běhový režim je zaměřen na praktické testovací scénáře, nikoli na 100% kompatibilitu se skutečnými webovými prohlížeči.
  • Komunikace se vnější sítí není v rámci tohoto rozsahu; pro zajištění pokrytí testů používejte simulace (mocky) pro načítání dat.

Pokud potřebujete další rozhraní pro prohlížeče (browser APIs) pro váš testovací soubor, otevřete prosím nový problém (issue) a přiložte k němu minimální příklad (fixture), abychom mohli prodiskutovat rozsah a prioritu.