Середовище виконання, що працює виключно з мовою програмування Rust.
Працює всередині одного процесу Rust. Не потребує зовнішніх браузерів, WebDriver або залежностей від Node.js.
Відкритий вихідний код / Контейнер.
`browser-tester` – це тестове середовище, що імітує роботу браузера, реалізоване на чистому Rust. Воно перевіряє структуру DOM та поведінку подій, не запускаючи при цьому реальний браузер.
Інструмент browser-tester зосереджений на тестуванні передбачуваної поведінки форм та інтерфейсу користувача, а не на перевірці сумісності з різними браузерами у плані повної візуалізації.
Працює всередині одного процесу Rust. Не потребує зовнішніх браузерів, WebDriver або залежностей від Node.js.
Розроблено для проведення повторюваних тестів: передбачено імітацію роботи годинника, детерміноване значення для генерації випадкових чисел та чітко визначені API для керування таймером.
Підтримує практичні функції, подібні до роботи веб-браузера: селектори, виконання скриптів у середовищі виконання, передачу подій та оновлення DOM.
Швидкий цикл зворотного зв'язку для тестування інтерфейсів користувача, орієнтованих на форми, при цьому вивід про помилки зосереджений на селекторах та очікуваних/фактичних значеннях.
Створіть тестове середовище за допомогою HTML, реалізуйте взаємодії та перевіряйте результати, що відображаються в DOM. Почніть з невеликого тестового набору та поступово розширюйте його, додаючи таймери та імітації API.
Встановити.
Додайте модуль "browser_tester" до списку залежностей.
Базовий приклад.
Основні операції тестування DOM: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, а також допоміжні функції для перевірки тексту, значень, стану "відмічено" та наявності елементів.
Керуйте асинхронною поведінкою за допомогою імітованого годинника. Змінюйте час детерміновано, використовуючи функції `advance_time`, `advance_time_to`, `flush` та API для перевірки таймерів.
Використовуйте функції `set_fetch_mock`, `enqueue_confirm_response` та `enqueue_prompt_response`, щоб імітувати відповіді від сервера та результати діалогів, забезпечуючи ізоляцію тестових сценаріїв.
Увімкніть журнали трасування та витягуйте інформацію про послідовність подій/таймерів, коли тест завершується з помилкою. Це корисно для налагодження порядку подій та поведінки дій за замовчуванням.
Якщо вам потрібні додаткові API для браузера для вашого набору тестів, відкрийте запит (issue) з мінімальним прикладом коду, щоб обговорити обсяг робіт та пріоритетність.