Oprogramowanie open source / Biblioteka.

tester przeglądarki.

"browser-tester" to deterministyczne środowisko testowe, naśladujące działanie przeglądarki, zaimplementowane w czystym języku Rust. Służy do weryfikacji działania DOM i obsługi zdarzeń, bez konieczności uruchamiania prawdziwej przeglądarki.

Rdza. Deterministyczny czas działania. Testy DOM.

Do czego jest przydatne to oprogramowanie.

Narzędzie "browser-tester" koncentruje się na testach przewidywalnego działania formularzy i interfejsu użytkownika, a nie na pełnej kompatybilności z różnymi przeglądarkami.

Środowisko uruchomieniowe działające wyłącznie w języku Rust.

Działa wewnątrz pojedynczego procesu Rust. Nie wymaga zewnętrznych przeglądarek, sterowników WebDriver ani środowiska Node.js.

Determinowane wykonanie.

Zaprojektowany z myślą o powtarzalnych testach: zawiera wirtualny zegar, deterministyczny generator liczb losowych oraz interfejsy API do precyzyjnej kontroli czasu.

DOM + Testowanie zdarzeń.

Obsługuje typowe funkcje przypominające działanie przeglądarki: selektory, wykonywanie skryptów w linii, propagację zdarzeń oraz aktualizacje DOM.

Szybka i lokalna informacja zwrotna.

Szybki cykl testowania interfejsu użytkownika, skoncentrowany na formularzach, przy jednoczesnym utrzymaniu czytelnych komunikatów o błędach, które skupiają się na selektorach oraz wartościach oczekiwanych i rzeczywistych.

Szybki start.

Utwórz środowisko testowe za pomocą HTML, zdefiniuj interakcje i weryfikuj wyniki manipulacji DOM. Zacznij od prostego zestawu testów i stopniowo rozszerzaj go, dodając funkcje takie jak timery i symulacje API.

Zainstaluj.

cargo: dodaj komponent "browser_tester".

Podstawowy przykład.

Główna powierzchnia interfejsu API.

Akcje i stwierdzenia związane z wykorzystaniem potencjału.

Podstawowe operacje testowe DOM: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, oraz funkcje pomocnicze do weryfikacji zawartości tekstowej, wartości, stanu "zaznaczonego" oraz obecności elementów.

Determinystyczne timery.

Kontroluj asynchroniczne zachowanie za pomocą wirtualnego zegara. Ustawiaj czas w sposób deterministyczny, korzystając z funkcji `advance_time`, `advance_time_to`, `flush` oraz interfejsów do inspekcji timerów.

Wbudowane obiekty zastępcze.

Aby zapewnić izolację testów, można użyć funkcji `set_fetch_mock`, `enqueue_confirm_response` i `enqueue_prompt_response` do symulowania odpowiedzi serwera i wyników dialogów.

Śledzenie i diagnostyka.

Włącz logi śledzenia i wyodrębnij informacje o kolejności zdarzeń i działania timerów, gdy test się nie powiedzie. Przydatne do debugowania kolejności zdarzeń i domyślnego zachowania akcji.

Polityka działania.

  • Funkcja `eval` jest celowo wyłączona, aby zapewnić bezpieczeństwo i przewidywalność działania.
  • To środowisko uruchomieniowe zostało zaprojektowane z myślą o testach w praktycznych scenariuszach, a nie o pełnej kompatybilności z przeglądarkami internetowymi.
  • Komunikacja z zewnętrznymi sieciami nie jest objęta zakresem tego projektu; do celów testowania należy używać symulacji (mocków) funkcji pobierania danych.

Jeśli potrzebujesz dodatkowych interfejsów API dla przeglądarki do przeprowadzenia testów, otwórz zgłoszenie (issue) zawierające minimalny przykład konfiguracji, aby omówić zakres i priorytety.