ღია წყარო / Rust პაკეტი

browser-tester

browser-tester არის დეტერმინისტული, ბრაუზერის მსგავსი ტესტირების გაშვების გარემო, რომელიც სრულად Rust-შია დაწერილი. ის DOM-ისა და მოვლენების ქცევას ამოწმებს რეალური ბრაუზერის გაშვების გარეშე.

Rust დეტერმინისტული გაშვების გარემო DOM ტესტირება

რისთვის არის ეს Rust პაკეტი კარგი

browser-tester ყურადღებას ამახვილებს პროგნოზირებად ფორმებისა და UI-ის ქცევის ტესტებზე და არა სრული ბრაუზერის გამოსახვის თავსებადობაზე.

მხოლოდ Rust-ის გაშვების გარემო

მუშაობს ერთ Rust პროცესში. არ სჭირდება გარე ბრაუზერის, WebDriver-ის ან Node.js-ის დამოკიდებულება.

დეტერმინისტული შესრულება

შექმნილია განმეორებადი ტესტებისთვის: ფეიკური საათი, დეტერმინისტული შემთხვევითი საწყისი მნიშვნელობა და ტაიმერების პირდაპირი კონტროლის API-ები.

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-ის პასუხები და დიალოგების შედეგები set_fetch_mock, enqueue_confirm_response და enqueue_prompt_response-ით, რომ ტესტები იზოლირებული დარჩეს.

კვალი და დიაგნოსტიკა

როცა ტესტი ჩავარდება, ჩართეთ კვალი-ჟურნალები და ამოიღეთ მოვლენებისა და ტაიმერების ნაკადი. სასარგებლოა მოვლენების თანმიმდევრობისა და ნაგულისხმევი მოქმედების ქცევის გასაკვლევად.

გაშვების გარემოს პოლიტიკა

  • eval განზრახ არ არის მხარდაჭერილი, რათა უსაფრთხოება და დეტერმინისტულობა შენარჩუნდეს.
  • ეს გაშვების გარემო 100%-იან თავსებადობას არ ისახავს მიზნად რეალურ ბრაუზერთან, არამედ პრაქტიკულ ტესტ-სცენარებს.
  • გარე ქსელური I/O მოცულობაში არ შედის; ტესტების დაფარვისთვის გამოიყენეთ fetch სიმულაციები.

თუ თქვენს ტესტ-პაკეტს დამატებითი ბრაუზერის API-ები სჭირდება, გახსენით საკითხი მინიმალური ნიმუშით, რათა განვიხილოთ მოცულობა და პრიორიტეტი.