Nyílt forráskód / Csomag.

böngésző-tesztelő eszköz

A "browser-tester" egy determinisztikus, böngészőhöz hasonló tesztkörnyezet, amely tisztán Rust nyelven van implementálva. A DOM (Document Object Model) és az események viselkedését ellenőrzi anélkül, hogy egy valódi böngészőt indítana el.

Rozsda. Determinisztikus futási idő. DOM-tesztelés.

Mire alkalmas ez a csomag?

A browser-tester főként a felhasználói felület és a űrlapok előrejelzett működésének tesztelésére összpontosít, nem pedig a böngészők teljes kompatibilitásának ellenőrzésére.

Csak Rust-tal működő futtatókörnyezet.

A futás egyetlen Rust folyamaton belül történik. Nincs szükség külső böngészőre, WebDriverre vagy Node.js-re.

Determinált végrehajtás.

Olyan tesztek végrehajtására tervezték, amelyek könnyen megismételhetők: tartalmazza a szimulált időzítőt, a determinisztikus véletlenszám-generátort és a kifejezetten a vezérlésre szolgáló API-kat.

DOM-elemek és események tesztelése.

Támogatja a böngészőhöz hasonló, gyakorlati felhasználási módokat: válogatást, beépített szkriptvégrehajtást, események terjedését és a DOM (Document Object Model) frissítését.

Gyors, helyi visszajelzés.

Gyors visszajelzés a felhasználói felület teszteléséhez, különösen űrlapok esetében, miközben a hibák leírása a választható elemekre és a várt/tényleges értékekre összpontosít.

Gyors kezdés.

Hozzon létre egy tesztkörnyezetet HTML-ből, futtassa interakciókat, és ellenőrizze a DOM elemek állapotát. Kezdjen egy egyszerű teszttel, majd bővítse azt időzítővel és szimulált API-kkal.

Telepítés.

A "cargo" parancshoz hozzáadott parancs: "browser_tester".

Alapvető példa.

Fő API felület.

Harness Actions + Assertions: A Harness akciók és állítások kombinációja.

A DOM-tesztek alapvető műveletei: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, valamint segédfunkciók a szöveg/érték/jelölés/lét lére vonatkozó ellenőrzésekhez.

Determinisztikus időzítők.

A nem szinkron működést egy hamis óra segítségével lehet szabályozni. Az időt determinisztikusan lehet előrevinni a `advance_time`, `advance_time_to`, `flush` és a timer-rel kapcsolatos vizsgálati funkciók segítségével.

Beépített tesztelési segédletek.

A tesztek elkülönítésének biztosítása érdekében használja a `set_fetch_mock`, `enqueue_confirm_response` és `enqueue_prompt_response` függvényeket a lekérdezések eredményeinek és a párbeszéd kimeneteinek szimulálására.

Hibakeresés és diagnosztika.

Engedélyezze a nyomkövetési naplókat, és rögzítse az események/időzítők sorrendjét, amikor egy teszt sikertelenséghez vezet. Ez hasznos lehet az események sorrendjének és az alapértelmezett műveletek működésének hibaelhárításához.

Futtatási szabályzat.

  • A `eval` függvény használata szándékosan nem támogatott, a biztonság és a megbízhatóság megőrzése érdekében.
  • Ez a futtatókörnyezet a gyakorlati tesztelési forgatókönyvekre összpontosít, nem pedig a böngészőkkel való 100%-os kompatibilitásra.
  • A külső hálózatokkal való kommunikáció nem tartozik a jelenlegi keretrendszerbe; a teszteléshez használjon helyettesítő adatforrásokat.

Ha a tesztelési keretrendszeréhez további böngésző API-kra van szüksége, nyisson egy új problémát, és mutasson be egy egyszerű, minimális példát, hogy megvitathassuk a hatókörét és a prioritását.