Отворен код / Контейнер.

тестер за браузъри

"browser-tester" е детерминирана среда за тестване, наподобяваща браузър, разработена изцяло на език Rust. Тя проверява поведението на DOM (Document Object Model) и събитията, без да стартира реален браузър.

Ръжда. Детерминирано време на изпълнение. Тестване на DOM (Document Object Model).

Какви са предимствата на този контейнер?

Инструментът "browser-tester" се фокусира върху тестове за предвидимо поведение на формуляри и потребителски интерфейси, а не върху пълната съвместимост с различните браузъри при визуализация.

Изпълнителна среда, базирана само на езика Rust.

Функционира в рамките на един процес на Rust. Не изисква външни браузъри, WebDriver или зависимости от Node.js.

Детерминирано изпълнение.

Проектиран за повтаряеми тестове: включва фалшив часовник, детерминиран генератор на случайни числа и API за прецизен контрол на таймера.

Тестване на DOM и събития.

Поддържа практични функции, подобни на тези на браузърите: селектори, изпълнение на скриптове, разпространение на събития и актуализации на DOM.

Бърза обратна връзка от местни източници.

Бърз цикъл на обратна връзка за тестове на потребителски интерфейси, ориентирани към формуляри, като същевременно изходните данни при грешки са фокусирани върху селекторите и очакваните/фактически стойности.

Бърз старт.

Създайте тестова среда с помощта на HTML, изпълнявайте тестови сценарии и проверявайте резултатите в DOM. Започнете с малък примерен код и го разширете с помощта на таймери и фалшиви API.

Инсталирайте.

cargo: добавяне на браузър тестер.

Основен пример.

Основен интерфейс на API.

Използвайте действия и твърдения.

Основни операции за тестване на 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`, за да симулирате отговори от заявки и резултати от диалози, като по този начин изолирате тестовете.

Проследяване и диагностика.

Активирайте регистрирането на събития и извличайте информация за последователността на събитията/таймерите, когато тестът се провали. Това е полезно за отстраняване на грешки, свързани с реда на събитията и поведението на действията по подразбиране.

Политика за изпълнение.

  • Функцията "eval" е умишлено не е поддържана, за да се запази сигурността и предвидимостта на системата.
  • Тази среда за изпълнение е предназначена за практически тестови сценарии, а не за пълна съвместимост с реални браузъри.
  • Входно-изходните операции с външни мрежи не са включени в обхвата; използвайте фалшиви данни за тестване.

Ако имате нужда от допълнителни API за браузъри за вашия набор от тестове, отворете заявка (issue) с минимален примерен код, за да обсъдим обхвата и приоритета.