ਕੇਵਲ Rust runtime
ਇੱਕੋ Rust process ਦੇ ਅੰਦਰ ਚੱਲਦਾ ਹੈ। ਬਾਹਰੀ browser, WebDriver ਜਾਂ Node.js 'ਤੇ ਕੋਈ ਨਿਰਭਰਤਾ ਨਹੀਂ।
ਓਪਨ ਸੋਰਸ / ਕ੍ਰੇਟ
browser-tester ਇੱਕ ਨਿਰਧਾਰਿਤ, ਬ੍ਰਾਊਜ਼ਰ-ਨੁਮਾ test runtime ਹੈ ਜੋ pure Rust ਵਿੱਚ ਲਾਗੂ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਅਸਲੀ browser ਚਾਲੂ ਕੀਤੇ ਬਿਨਾਂ DOM ਅਤੇ event behavior ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ।
browser-tester ਪੂਰੇ browser rendering compatibility ਦੀ ਬਜਾਏ ਭਰੋਸੇਯੋਗ form/UI behavior tests 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਦਾ ਹੈ।
ਇੱਕੋ Rust process ਦੇ ਅੰਦਰ ਚੱਲਦਾ ਹੈ। ਬਾਹਰੀ browser, WebDriver ਜਾਂ Node.js 'ਤੇ ਕੋਈ ਨਿਰਭਰਤਾ ਨਹੀਂ।
ਡਿਜ਼ਾਇਨ ਅਨੁਸਾਰ ਦੁਹਰਾਏ ਜਾ ਸਕਣ ਵਾਲੇ ਟੈਸਟਾਂ ਲਈ ਬਣਾਇਆ ਗਿਆ: ਨਕਲੀ ਘੜੀ, ਨਿਰਧਾਰਿਤ random seed, ਅਤੇ timer control ਲਈ ਸਪਸ਼ਟ APIs.
ਵਿਹਾਰਕ ਬ੍ਰਾਊਜ਼ਰ-ਨੁਮਾ flows ਨੂੰ ਸਹਾਰਾ ਦਿੰਦਾ ਹੈ: selectors, inline script ਚਲਾਉਣਾ, event propagation, ਅਤੇ DOM updates.
Form-ਕੇਂਦਰਿਤ UI ਟੈਸਟਾਂ ਲਈ ਤੇਜ਼ ਸਥਾਨਕ ਫੀਡਬੈਕ ਚੱਕਰ, ਅਤੇ ਗਲਤੀ output ਨੂੰ selectors ਅਤੇ expected/actual values 'ਤੇ ਕੇਂਦਰਿਤ ਰੱਖਦਾ ਹੈ।
HTML ਤੋਂ harness ਬਣਾਓ, interactions ਚਲਾਓ, ਅਤੇ DOM ਨਤੀਜਿਆਂ 'ਤੇ assert ਕਰੋ। ਇੱਕ ਛੋਟੇ 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(())
}
ਮੁੱਖ DOM ਟੈਸਟ ਓਪਰੇਸ਼ਨ: Harness::from_html, type_text, set_checked, click, submit, ਅਤੇ text/value/checked/existence ਲਈ assertion helpers.
ਨਕਲੀ ਘੜੀ ਨਾਲ asynchronous ਵਿਹਾਰ ਨੂੰ ਕਾਬੂ ਕਰੋ। advance_time, advance_time_to, flush ਅਤੇ timer inspection APIs ਨਾਲ ਸਮੇਂ ਨੂੰ deterministic ਢੰਗ ਨਾਲ ਅੱਗੇ ਵਧਾਓ।
set_fetch_mock, enqueue_confirm_response ਅਤੇ enqueue_prompt_response ਨਾਲ fetch responses ਅਤੇ dialog outcomes inject ਕਰੋ ਤਾਂ ਜੋ ਟੈਸਟ ਇਕਾਂਤ ਰਹਿਣ।
ਟੈਸਟ ਫੇਲ੍ਹ ਹੋਣ 'ਤੇ trace logs ਚਾਲੂ ਕਰੋ ਅਤੇ event/timer flow ਨਿਕਾਲੋ। Event order ਅਤੇ default action behavior ਨੂੰ debug ਕਰਨ ਲਈ ਲਾਭਕਾਰੀ।
ਜੇ ਤੁਹਾਨੂੰ ਆਪਣੇ test suite ਲਈ ਵਾਧੂ browser APIs ਦੀ ਲੋੜ ਹੈ, ਤਾਂ scope ਅਤੇ priority 'ਤੇ ਚਰਚਾ ਲਈ ਇੱਕ minimal fixture ਨਾਲ issue ਖੋਲ੍ਹੋ।