Odprtokodni projekt / Knjižnica.

preizkušalec spletnega brskalnika.

"browser-tester" je deterministična testna okolja, ki deluje kot brskalnik in je implementirana izključno v programskem jeziku Rust. Preverja obnašanje DOM (Document Object Model) in dogodkov, ne da bi za to bila potrebna resnična brskalna aplikacija.

Rja. Determinističen čas izvajanja. Testiranje DOM.

Kaj je ta škatla dobra? / Kaj je ta ohišje dobro?

"Browser-tester" se osredotoča na preverjanje predvidljivega obnašanja obrazcev/vmesnikov, namesto na popolno združljivost z različnimi brskalniki.

Samo okolje za izvajanje programov, napisanih v jeziku Rust.

Deluje znotraj enega samega procesa v programskem jeziku Rust. Ne potrebuje zunanjih brskalnikov, knjižnic WebDriver ali platforme Node.js.

Deterministično izvajanje.

Zasnovano za ponavljajoče se teste: vključuje simuliran uravnik, deterministično začetno vrednost za generator naključnih števil in API-je za natančen nadzor časovnika.

DOM + Testiranje dogodkov.

Podpira praktične funkcije, podobne brskalnikom: izbiro elementov, izvajanje skript v vrstici, prenos dogodkov in posodobitve DOM-a.

Hitra lokalna povratna informacija.

Hitro odzivno okolje za testiranje uporabniških vmesnikov, ki so osredotojeni na obrazce, pri čemer je izhodna informacija o napakah usmerjena na izbirnike in pričakovane/dejanske vrednosti.

Hitri začetek.

Ustvarite testno okolje (harness) z uporabo HTML, izvedite interakcije in preverite rezultate DOM. Začnite z majhnim testnim primerom in ga razširite z uporabo časovnikov ali simuliranih API-jev.

Namestite.

cargo dodaj paket browser_tester.

Osnoven primer.

Glavna vmesniška programska oprema (API).

Povezovanje dejanj in trditev.

Osnovne operacije za testiranje DOM: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit` ter pomožne funkcije za preverjanje besedila/vrednosti/stanje "odkljukano"/obstojnosti.

Deterministični časovniki.

Asinhrono obnašanje nadzirajte z uporabo simuliranega časovnika. Napredovanje časa določajte na predvidljiv način z uporabo funkcij `advance_time`, `advance_time_to`, `flush` in API-jev za pregled časovnikov.

Vgrajeni simulirani podatki.

Uporabite funkcije `set_fetch_mock`, `enqueue_confirm_response` in `enqueue_prompt_response`, da simulirate odgovore strežnika in rezultate dialogov, s čimer zagotovite, da bodo testi izolirani.

Sledenje in diagnostika.

Omogočite beleženje sledi in izluščite podatke o zaporedju dogodkov/časovnih intervalov, ko test ne uspe. To je koristno za odpravljanje napak pri zaporedju dogodkov in obnašanju privzetih dejanj.

Politika delovanja.

  • Funkcija "eval" je namerno onemogočena, da bi se ohranila varnost in predvidljivost delovanja.
  • Ta izvedba je zasnovana za praktične testne scenarije in ne zagotavlja 100-odstotne kompatibilnosti z resničnimi brskalniki.
  • Komunikacija z zunanjimi omrežji je izven obsega tega projekta; za testiranje uporabite simulirane funkcije.

Če potrebujete dodatne API-je za brskalnik za vašo testno suito, odprite zahtevo (issue) in priložite minimalen primer uporabe, da se lahko razpravlja o obsegu in prioriteti.