Otvorený zdrojový kód / Kontajner.

testovač prehliadača

`browser-tester` je nástroj na testovanie, ktorý funguje ako prehliadač a je implementovaný v jazyku Rust. Overuje správanie DOM (Document Object Model) a udalostí bez spúšťania skutočného prehliadača.

Hrdza. Deterministický čas behu. Testovanie DOM.

Čomu je tento systém najviac schopný.

Nástroj browser-tester sa zameriava na testovanie predvídateľného správania formulárov a používateľského rozhrania, namiesto komplexnej kompatibility s rôznymi prehliadačmi.

Prostredie na spustenie programov, ktoré je postavené výhradne na jazyku Rust.

Funguje v rámci jediného procesu napísaného v jazyku Rust. Nevyžaduje žiadne externé prehliadače, ovládače WebDriver ani závislosti na Node.js.

Deterministické vykonávanie.

Navrhnuté pre opakovateľné testy: zahŕňa falošné hodiny, deterministický generátor náhodných čísel a explicitné API pre ovládanie časovača.

DOM + Testovanie udalostí.

Podporuje praktické funkcie, ktoré pripomínajú prehliadač: výber prvkov, spustenie skriptov priamo v kóde, šírenie udalostí a aktualizácie DOM.

Rýchla spätná väzba z lokálneho prostredia.

Rýchly cyklus spätnej väzby pre testovanie užívateľského rozhrania zameraného na formuláre, pričom výstup o chybách sa sústreďuje na selektory a očakávané/skutočné hodnoty.

Rýchly štart.

Vytvorte testovací rámec pomocou HTML, definujte interakcie a overujte výsledky DOM. Začnite s jednoduchým testovacím prípadom a postupne ho rozširujte o funkcie, ako sú časovače a simulované API.

Inštalujte.

cargo: Pridajte balík s názvom "browser_tester".

Základný príklad.

Hlavné rozhranie API.

Využitie akcií a tvrdení.

Základné testovacie operácie pre DOM: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit` a pomocné funkcie na overovanie textu, hodnôt, stavu "zaškrtnutej" položky a existencie prvkov.

Deterministické časovače.

Ovládajte asynchrónne správanie pomocou simulovaného časovača. Postupujte čas deterministicky pomocou funkcií `advance_time`, `advance_time_to`, `flush` a prostredníctvom API na kontrolu časovača.

Vstavané testovacie objekty.

Použite funkcie `set_fetch_mock`, `enqueue_confirm_response` a `enqueue_prompt_response` na simuláciu odpovedí z fetch a výsledkov dialógov, aby ste zabezpečili izoláciu testov.

Sledovanie a diagnostika.

Zapnite záznamy sledovania a extrahujte informácie o priebehu udalostí/časovačov, ak test zlyhá. Je to užitočné na odladenie poradia udalostí a správania sa predvolených akcií.

Zásady fungovania.

  • Funkcia `eval` je úmyselne nepodporovaná, aby sa zachovala bezpečnosť a predvídateľnosť systému.
  • Tento režim fungovania je zameraný na praktické testovacie scenáre, a nie na 100% kompatibilitu s reálnymi webovými prehliadačmi.
  • Komunikácia so vonkajšou sieťou nie je zahrnutá v rozsahu tejto funkčnosti; na testovanie používajte simulačné objekty (mocky).

Ak potrebujete ďalšie rozhrania API pre prehliadač pre váš testovací súbor, otvorte žiadosť (issue) s jednoduchým príkladom (fixture), aby sme mohli prediskutovať rozsah a prioritu.