Atvirasis kodas / Dėžė.

naršyklės testavimo įrankis.

„browser-tester“ yra deterministinė, naršyklei panaši testavimo aplinka, sukurta gryna Rust kalba. Ji patikrina DOM (dokumentų objekto modelio) ir įvykių elgseną, nenaudojant tikrojo naršyklės.

Rūdys. Deterministinis vykdymo laikas. DOM testavimas.

Kam šis įpakavimas yra skirtas? / Ką šis įpakavimas leidžia padaryti?

„Browser-tester“ yra skirtas testuoti tikslų formų ir vartotojo sąsajos elgsenos aspektus, o ne visą naršyklės atvaizdavimo suderinamumą.

„Rust“ kalbos vykdymo aplinka, kurioje veikia tik „Rust“ kodas.

Veikia viduje vieno „Rust“ proceso. Nereikalauja jokio išorinio naršyklės, „WebDriver“ ar „Node.js“ komponento.

Deterministinis vykdymas.

Sukurta taip, kad būtų lengva atlikti pakartotinus testus: naudojamos fiktyvos (simuliacijos), nustatomas tikslus atsitiktinumo šaltinis ir teikiami aiškūs laiko valdymo įrankiai.

DOM ir įvykių testavimas.

Palaiko praktinius naršyklės veikimo principus: pasirinkimo mechanizmus, inline skriptų vykdymą, įvykių skleidimą ir DOM (dokumentų objekto modelio) atnaujinimus.

Greitas atsiliepimas iš vietos.

Greitas atsiliepimų ciklas formų pagrindu paremtų vartotojo sąsajos testų atlikimui, kartu užtikrinant, kad klaidos būtų aiškiai susietos su pasirinktais elementais ir tikimomis/faktinėmis reikšmėmis.

Greitasis pradžios vadovas.

Sukurkite testavimo aplinką naudodami HTML, vykdykite veiksmus ir patikrinkite DOM struktūrą. Pradėkite nuo mažo testavimo scenarijaus ir papildykite jį naudojant laikmačius arba simuliuojamas API.

Įdiegti.

Pridėti paketą "browser_tester" į "cargo" projektą.

Paprastas pavyzdys.

Pagrindinis API sąsajos paviršius.

Integruoti veiksmus ir teiginius.

Pagrindinės DOM testavimo funkcijos: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit` ir pagalbinės funkcijos tekstui, vertei, pažymėjimui ir egzistavimui patikrinimui.

Deterministiniai laikmačiai.

Asinkroninius procesus galima valdyti naudojant simuliuojamą laikrodį. Laiką galima tiksliai keisti naudojant funkcijas `advance_time`, `advance_time_to`, `flush` ir API, skirtas laikrodžio būsenos patikrinimui.

Integruotos imitacijos.

Naudokite funkcijas `set_fetch_mock`, `enqueue_confirm_response` ir `enqueue_prompt_response`, kad įterptumėte duomenis, gautus iš tinklo, ir dialogo rezultatus, taip užtikrindami, jog testai būtų atskirti ir nepriklausomi.

Diagnostika ir gedimų paieška.

Aktyvinkite žinučių registravimą ir ištraukite informaciją apie įvykių seką bei laikmačius, kai testas nepavyksta. Tai naudinga, kai reikia išspręsti problemas, susijusias su įvykių tvarka ir numatytųjų veiksmų elgsena.

Vykdymo politika.

  • „eval“ funkcija yra sąmoningai neįdiegiama, siekiant užtikrinti saugumą ir nuspėjamumą.
  • Ši testavimo aplinka skirta praktiniams testavimo scenarijams, o ne užtikrina 100% suderinamumą su tikraisiais narvočius.
  • Išorinių tinklų įvestis ir išvestis nėra apimta šioje srityje; testavimo tikslais naudokite imitacinius duomenų gavimo mechanizmus.

Jei jūsų testavimo rinkiniui reikia papildomų naršyklės API, atidarykite užklausą ir pateikite minimalų testavimo scenarijų, kad aptartumėte apimtį ir prioritetus.