მხოლოდ Rust-ის გაშვების გარემო
მუშაობს ერთ Rust პროცესში. არ სჭირდება გარე ბრაუზერის, WebDriver-ის ან Node.js-ის დამოკიდებულება.
ღია წყარო / Rust პაკეტი
browser-tester არის დეტერმინისტული, ბრაუზერის მსგავსი ტესტირების გაშვების გარემო, რომელიც სრულად Rust-შია დაწერილი. ის DOM-ისა და მოვლენების ქცევას ამოწმებს რეალური ბრაუზერის გაშვების გარეშე.
browser-tester ყურადღებას ამახვილებს პროგნოზირებად ფორმებისა და UI-ის ქცევის ტესტებზე და არა სრული ბრაუზერის გამოსახვის თავსებადობაზე.
მუშაობს ერთ Rust პროცესში. არ სჭირდება გარე ბრაუზერის, WebDriver-ის ან Node.js-ის დამოკიდებულება.
შექმნილია განმეორებადი ტესტებისთვის: ფეიკური საათი, დეტერმინისტული შემთხვევითი საწყისი მნიშვნელობა და ტაიმერების პირდაპირი კონტროლის API-ები.
მხარს უჭერს პრაქტიკულ ბრაუზერის მსგავს ნაკადებს: შემრჩევები, ჩაშენებული სკრიპტის შესრულება, მოვლენების გავრცელება და 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(())
}
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-ით, რომ ტესტები იზოლირებული დარჩეს.
როცა ტესტი ჩავარდება, ჩართეთ კვალი-ჟურნალები და ამოიღეთ მოვლენებისა და ტაიმერების ნაკადი. სასარგებლოა მოვლენების თანმიმდევრობისა და ნაგულისხმევი მოქმედების ქცევის გასაკვლევად.
თუ თქვენს ტესტ-პაკეტს დამატებითი ბრაუზერის API-ები სჭირდება, გახსენით საკითხი მინიმალური ნიმუშით, რათა განვიხილოთ მოცულობა და პრიორიტეტი.