ఓపెన్ సోర్స్ / క్రేట్

browser-tester

browser-tester అనేది pure Rust లో అమలు చేసిన నిర్ణీత బ్రౌజర్-లాంటి పరీక్ష రన్‌టైమ్. నిజమైన బ్రౌజర్‌ను ప్రారంభించకుండా DOM మరియు ఈవెంట్ ప్రవర్తనను ధృవీకరిస్తుంది.

Rust నిర్ణీత రన్‌టైమ్ DOM పరీక్ష

ఈ క్రేట్ ఏ పనికి బాగా సరిపోతుంది

browser-tester అంచనా వేయగల ఫారమ్ / UI ప్రవర్తన పరీక్షలపై దృష్టి పెడుతుంది, పూర్తి బ్రౌజర్ రెండరింగ్ అనుకూలత కంటే.

కేవలం Rust రన్‌టైమ్

ఒకే Rust ప్రాసెస్‌లో నడుస్తుంది. బాహ్య బ్రౌజర్, WebDriver, లేదా Node.js ఆధారత అవసరం లేదు.

నిర్ణీత అమలు

పునరావృతమయ్యే పరీక్షల కోసం రూపొందించబడింది: నకిలీ గడియారం, నిర్ణీత యాదృచ్ఛిక విత్తనం, మరియు timer నియంత్రణ కోసం స్పష్టమైన APIs.

DOM + ఈవెంట్ పరీక్ష

ప్రయోగాత్మక బ్రౌజర్-లాంటి ప్రవాహాలకు మద్దతు ఇస్తుంది: selectors, inline script అమలు, ఈవెంట్ వ్యాప్తి, మరియు DOM నవీకరణలు.

వేగవంతమైన స్థానిక ఫీడ్‌బ్యాక్

ఫారమ్-కేంద్రీకృత UI పరీక్షల కోసం వేగవంతమైన స్థానిక ప్రతిస్పందన చక్రం ఇస్తుంది; విఫలత అవుట్‌పుట్ selectors మరియు ఆశించిన / నిజమైన విలువలపై కేంద్రీకృతమై ఉంటుంది.

త్వరిత ప్రారంభం

HTML నుండి హార్నెస్‌ను సృష్టించి, పరస్పర చర్యలను నడిపి, DOM ఫలితాలను ధృవీకరించండి. చిన్న fixture తో ప్రారంభించి timer / mock APIs తో విస్తరించండి.

ఇన్‌స్టాల్ చేయండి

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, మరియు text / value / checked / existence కోసం ధృవీకరణ సహాయకాలు.

నిర్ణీత timers

నకిలీ గడియారంతో అసమకాలిక ప్రవర్తనను నియంత్రించండి. advance_time, advance_time_to, flush, మరియు timer inspection APIs ద్వారా సమయాన్ని నిర్ణీతంగా ముందుకు జరపండి.

అంతర్నిర్మిత mocks

set_fetch_mock, enqueue_confirm_response, మరియు enqueue_prompt_response తో fetch ప్రతిస్పందనలు మరియు డైలాగ్ ఫలితాలను చేర్చి పరీక్షలను వేరు గా ఉంచండి.

ట్రేస్ మరియు నిర్ధారణ

పరీక్ష విఫలమైనప్పుడు ట్రేస్ లాగ్లను ప్రారంభించి ఈవెంట్ / టైమర్ ప్రవాహాన్ని పొందండి. ఈవెంట్ క్రమం మరియు డిఫాల్ట్ చర్య ప్రవర్తనను డీబగ్ చేయడానికి ఉపయోగపడుతుంది.

రన్‌టైమ్ విధానం

  • భద్రత మరియు నిర్ణీతత్వాన్ని కాపాడటానికి eval ను ఉద్దేశపూర్వకంగా మద్దతు ఇవ్వము.
  • ఈ రన్‌టైమ్ లక్ష్యం ప్రయోగాత్మక పరీక్ష సందర్భాలు; 100% నిజమైన బ్రౌజర్ అనుకూలత కాదు.
  • బాహ్య నెట్‌వర్క్ I/O ఈ పరిధిలో లేదు; పరీక్ష కవరేజ్ కోసం fetch mockలను ఉపయోగించండి.

మీ పరీక్షా సమాహారం కోసం అదనపు బ్రౌజర్ APIs అవసరమైతే, పరిధి మరియు ప్రాధాన్యం గురించి చర్చించడానికి కనిష్ఠ fixture తో issue తెరవండి.