Atvērtais pirmkods / Rust bibliotēka

browser-tester

browser-tester ir deterministiska, pārlūkprogrammai līdzīga testēšanas vide, kas pilnībā uzrakstīta Rust valodā. Tā pārbauda DOM un notikumu uzvedību bez nepieciešamības palaist reālu pārlūkprogrammu.

Rust Deterministiska izpildes vide DOM testēšana

Kādām vajadzībām bibliotēka ir piemērota

browser-tester koncentrējas uz prognozējamu veidlapu un lietotāja saskarnes uzvedības testēšanu, nevis uz pilnīgu vizuālā attēlojuma saderību ar dažādām pārlūkprogrammām.

Tikai Rust izpildes vide

Darbojas vienā Rust procesā. Nav nepieciešama ārēja pārlūkprogramma, WebDriver vai Node.js atkarība.

Deterministiska izpilde

Pēc dizaina radīts atkārtojamiem testiem: simulēts pulkstenis, deterministisks gadījumskaitļu ģenerators un skaidras taimeru kontroles API.

DOM un notikumu testēšana

Atbalsta reālistiskus pārlūkprogrammas scenārijus: elementu selektorus, inline skriptu izpildi, notikumu izplatīšanos un DOM atjauninājumus.

Ātra lokālā atgriezeniskā saite

Ātrs lokālās atgriezeniskās saites cikls uz veidlapām orientētiem lietotāja saskarnes testiem, nodrošinot, ka kļūdu ziņojumi koncentrējas uz selektoriem un sagaidāmajām/faktiskajām vērtībām.

Ātrais starts

Izveidojiet testēšanas vidi no HTML, veiciet lietotāja darbības un pārbaudiet DOM rezultātus. Sāciet ar vienkāršu paraugu un paplašiniet to ar taimeru vai imitāciju (mock) API.

Instalēšana

cargo add browser_tester

Pamata piemērs

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(())
}

Galvenā API funkcionalitāte

Harness darbības un apgalvojumi

Galvenās DOM testēšanas darbības: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, kā arī palīglīdzekļi teksta, vērtību, atzīmju un elementu eksistences pārbaudei.

Deterministiski taimeri

Kontrolējiet asinhrono uzvedību ar simulētu pulksteni. Deterministiski virziet laiku uz priekšu, izmantojot `advance_time`, `advance_time_to`, `flush` un taimeru pārbaudes API.

Iebūvētie imitācijas rīki (Mocks)

Inicējiet tīmekļa pieprasījumu (fetch) atbildes un dialoglogu rezultātus ar `set_fetch_mock`, `enqueue_confirm_response` un `enqueue_prompt_response`, lai saglabātu testu izolāciju.

Izsekošana un diagnostika

Iespējojiet izsekošanas žurnālus un iegūstiet notikumu/taimeru izpildes plūsmu testa neveiksmes gadījumā. Noderīgi notikumu secības un noklusējuma darbību atkļūdošanai.

Izpildes vides politika

  • Drošības un determinisma nolūkos `eval` izpilde apzināti netiek atbalstīta.
  • Šī izpildes vide ir paredzēta praktiskiem testēšanas scenārijiem, nevis 100% saderībai ar reālām pārlūkprogrammām.
  • Ārējie tīkla I/O pieprasījumi netiek atbalstīti; testu pārklājumam izmantojiet imitācijas (mock) API.

Ja jūsu testu kopa pieprasa papildu pārlūkprogrammas API, lūdzu, izveidojiet pieteikumu ar minimālu piemēru, lai mēs varētu apspriest prioritātes.