Izvođenje isključivo u Rustu
Izvodi se unutar jednog Rust procesa. Bez ovisnosti o vanjskom pregledniku, WebDriveru ili Node.js-u.
Otvoreni kod / Rust biblioteka
browser-tester je determinističko okruženje za testiranje slično pregledniku, implementirano u potpunom Rustu. Omogućuje provjeru DOM-a i ponašanja događaja bez pokretanja stvarnog preglednika.
browser-tester se fokusira na predvidljivo ponašanje obrazaca i korisničkog sučelja, a ne na potpunu kompatibilnost s renderskim prikazom preglednika.
Izvodi se unutar jednog Rust procesa. Bez ovisnosti o vanjskom pregledniku, WebDriveru ili Node.js-u.
Dizajnirano za ponovljive testove: simulirani sat, deterministički generator slučajnih brojeva (seed) i API za izravnu kontrolu tajmera.
Podržava uobičajene scenarije preglednika: selektore, ugrađeno izvođenje skripti, propagaciju događaja i ažuriranje DOM-a.
Brzi ciklus povratnih informacija za testiranje sučelja usmjerenog na obrasce, uz jasan prikaz grešaka fokusiran na selektore i očekivane/stvarne vrijednosti.
Stvorite ispitni sustav iz HTML-a, pokrenite interakcije i provjerite rezultate DOM-a. Počnite s jednostavnim HTML predloškom, pa ga proširite pomoću tajmera i simuliranih API-ja.
Instalacija
cargo add browser_tester
Osnovni primjer
use browser_tester::Harness;
fn main() -> browser_tester::Result<()> {
let html = r#"..."#;
let mut h = Harness::from_html(html)?;
h.type_text("#name", "Alice")?;
h.click("#submit")?;
h.assert_text("#result", "Hello, Alice")?;
Ok(())
}
Osnovne operacije testiranja DOM-a: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit` te pomoćne funkcije za provjeru teksta, vrijednosti, stanja označenosti i postojanja.
Kontrolirajte asinkrono ponašanje pomoću simuliranog sata. Upravljajte vremenom na deterministički način pomoću funkcija `advance_time`, `advance_time_to`, `flush` i API-ja za provjeru tajmera.
Simulirajte odgovore mrežnih zahtjeva i ishode dijaloga pomoću `set_fetch_mock`, `enqueue_confirm_response` i `enqueue_prompt_response` kako bi testovi ostali izolirani.
Omogućite zapisnike praćenja i izdvojite redoslijed događaja i rad tajmera kada test ne uspije. Korisno za uklanjanje pogrešaka u redoslijedu događaja i ponašanju zadane radnje.
Ako su vam za testni skup potrebni dodatni API-ji preglednika, otvorite zahtjev (issue) s minimalnim primjerom kako bismo raspravili o prioritetu.