Муҳити танҳо бо Rust
Дар як раванди ягонаи Rust иҷро мешавад. Ба браузери беруна, WebDriver ё вобастагии Node.js ниёз надорад.
browser-tester бештар ба санҷиши рафтори пешгӯишавандаи форма ва UI тамаркуз мекунад, на ба мутобиқати пурраи намоиши браузер.
Дар як раванди ягонаи Rust иҷро мешавад. Ба браузери беруна, WebDriver ё вобастагии Node.js ниёз надорад.
Аз оғоз барои санҷишҳои такроршаванда сохта шудааст: соати сохта, тухми тасодуфии пешгӯишаванда ва API-ҳои возеҳи идоракунии таймер.
Ҷараёнҳои амалии ба браузер монандро дастгирӣ мекунад: selector-ҳо, иҷрои inline script, паҳншавии рӯйдодҳо ва навсозии DOM.
Давраи зудии бозхурд барои санҷишҳои UI-и ба форма нигаронидашуда, дар ҳоле ки баромади хато ба selector-ҳо ва арзишҳои expected/actual тамаркуз мекунад.
Аз HTML harness созед, ҳамкориҳоро иҷро кунед ва натиҷаҳои DOM-ро санҷед. Аз fixture-и хурд оғоз кунед ва баъд бо API-ҳои таймер/мок васеъ кунед.
Насб
cargo add browser_tester
Намунаи асосӣ
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(())
}
Амалиётҳои асосии санҷиши DOM: Harness::from_html, type_text, set_checked, click, submit ва ёрирасонҳои санҷиш барои text/value/checked/existence.
Рафтори асинхрониро бо соати сохтагӣ идора кунед. Вақтро бо advance_time, advance_time_to, flush ва API-ҳои санҷиши таймер ба таври детерминистӣ пеш баред.
Бо set_fetch_mock, enqueue_confirm_response ва enqueue_prompt_response ҷавобҳои fetch ва натиҷаҳои диалогро ворид кунед, то санҷишҳо ҷудо бимонанд.
Ҳангоми нокомии санҷиш журналҳои trace-ро фаъол кунед ва ҷараёни рӯйдодҳо ва таймерҳоро бароред. Барои ислоҳи тартиби рӯйдодҳо ва рафтори амали пешфарз муфид аст.
Агар барои маҷмӯаи санҷишии шумо API-ҳои иловагии браузер лозим бошанд, issue-еро бо fixture-и хурд кушоед, то доира ва авлавият баррасӣ шаванд.