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.
Otevřený zdroj / Kontejner.
`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č.
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.
Funguje uvnitř jednoho procesu napsaného v jazyce Rust. Nevyžaduje žádné externí prohlížeče, knihovnu WebDriver ani prostředí Node.js.
Navrženo pro opakovaná testování: obsahuje simulovaný časovač, deterministický generátor náhodných čísel a explicitní rozhraní pro řízení časování.
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ý 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.
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 add browser_tester
Základní příklad.
#include "browser_tester/harness.h"
int main() {
std::string html = R"(...)";
browser_tester::Harness h = browser_tester::Harness::from_html(html);
h.type_text("#name", "Alice");
h.click("#submit");
h.assert_text("#result", "Hello, Alice");
return 0;
}
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ů.
Ří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čů.
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`.
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í.
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.