Среда выполнения, работающая только с языком Rust.
Работает внутри одного процесса, написанного на языке Rust. Не требует внешних браузеров, WebDriver или Node.js.
Открытый исходный код / Контейнер.
`browser-tester` – это среда для тестирования, имитирующая работу браузера, реализованная на языке Rust. Она проверяет корректность работы DOM и обработчиков событий, не требуя запуска настоящего браузера.
Инструмент browser-tester предназначен для тестирования предсказуемого поведения форм и пользовательского интерфейса, а не для проверки полной совместимости с различными браузерами.
Работает внутри одного процесса, написанного на языке Rust. Не требует внешних браузеров, WebDriver или Node.js.
Разработана для проведения повторяемых тестов: включает в себя имитацию работы часов, детерминированный генератор случайных чисел и API для явного управления таймером.
Поддерживает практичные функции, аналогичные работе веб-браузера: выбор элементов, выполнение скриптов, обработку событий и обновление структуры DOM.
Быстрый цикл обратной связи для тестирования пользовательских интерфейсов, ориентированных на формы, при этом вывод об ошибках фокусируется на селекторах и ожидаемых/фактических значениях.
Создайте тестовый стенд с использованием HTML, настройте взаимодействие с ним и проверяйте результаты, отображаемые в DOM. Начните с простого тестового сценария и постепенно расширяйте его, добавляя функции, такие как таймеры и эмуляторы API.
Установить.
Добавить в манифест cargo: 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) с минимальным примером кода, чтобы обсудить область применения и приоритетность.