Բաց կոդ / Crate

browser-tester

browser-tester-ը զննարկչի նման կանխատեսելի թեստավորման կատարման միջավայր է, որը ստեղծված է մաքուր Rust-ով։ Այն ստուգում է DOM-ի և իրադարձությունների վարքը՝ առանց իրական զննարկիչ բացելու։

Rust Կանխատեսելի կատարման միջավայր DOM թեստավորում

Ինչի համար է այս crate-ը հատկապես օգտակար

browser-tester-ը կենտրոնացած է կանխատեսելի ձևաթղթային/UI վարքագծի թեստերի վրա, ոչ թե բրաուզերի ամբողջական արտապատկերման համատեղելիության վրա։

Միայն Rust միջավայր

Աշխատում է մեկ Rust գործընթացի ներսում։ Արտաքին զննարկիչ, WebDriver կամ Node.js կախվածություն պետք չէ։

Կանխատեսելի կատարում

Սկզբունքորեն կառուցված է կրկնելի թեստերի համար՝ կեղծ ժամացույց, կանխատեսելի պատահականության սերմ և ժամաչափերի հստակ կառավարում։

DOM և իրադարձությունների թեստավորում

Աջակցում է բրաուզերի նման գործնական հոսքերի՝ ընտրիչներ, ներդրված սկրիպտների կատարում, իրադարձությունների տարածում և DOM թարմացումներ։

Արագ տեղային հետադարձ կապ

Ձևաթղթերի վրա կենտրոնացած UI թեստերի համար արագ տեղային հետադարձ կապ՝ պահելով ձախողումների արտածումը կենտրոնացած ընտրիչների և սպասվող/իրական արժեքների վրա։

Արագ մեկնարկ

Ստեղծիր շրջանակը HTML-ից, կատարիր փոխազդեցություններ և հաստատիր DOM արդյունքները։ Սկսիր փոքր օրինակից և աստիճանաբար ընդլայնիր ժամաչափերի ու կեղծ 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(())
}

Հիմնական API մակերես

Harness գործողություններ և ստուգումներ

DOM թեստերի հիմնական գործողություններ՝ Harness::from_html, type_text, set_checked, click, submit և օգնարար ստուգումներ տեքստի/արժեքի/նշված լինելու/գոյության համար։

Կանխատեսելի ժամաչափեր

Կառավարիր ասինխրոն վարքագիծը կեղծ ժամացույցով։ Ժամանակը կանխատեսելիորեն առաջ տար advance_time, advance_time_to, flush և ժամաչափերի զննման API-ներով։

Ներկառուցված կեղծումներ

Ներարկիր fetch պատասխաններ և dialog-ի արդյունքներ set_fetch_mock, enqueue_confirm_response և enqueue_prompt_response միջոցով, որպեսզի թեստերը մեկուսացված մնան։

Հետքագրում և ախտորոշում

Միացրու հետքագրային մատյանները և դուրս բեր իրադարձությունների/ժամաչափերի հոսքը, երբ թեստը ձախողվում է։ Օգտակար է իրադարձությունների հերթականությունն ու կանխադրված գործողությունների վարքը վերլուծելու համար։

Կատարման միջավայրի քաղաքականություն

  • eval-ը դիտավորյալ չի աջակցվում՝ անվտանգությունն ու կանխատեսելիությունը պահպանելու համար։
  • Այս կատարման միջավայրը նախատեսված է գործնական թեստային սցենարների համար, ոչ թե իրական բրաուզերի հետ 100% համատեղելիության։
  • Արտաքին ցանցային I/O-ն այս միջավայրի դիրույթից դուրս է. թեստային ծածկույթի համար օգտագործիր fetch կեղծ պատասխաններ։

Եթե քո թեստային հավաքածուին լրացուցիչ զննարկչի API-ներ են պետք, բացիր խնդիրը նվազագույն օրինակի հետ՝ ծավալն ու առաջնահերթությունը քննարկելու համար։