Source ouverte / Boîte.

testeur de navigateur.

`browser-tester` est un environnement de test qui simule le fonctionnement d'un navigateur, implémenté en Rust pur. Il permet de valider le comportement du DOM et des événements sans nécessiter le lancement d'un navigateur réel.

Rouille. Temps d'exécution déterministe. Tests DOM.

Ce que ce boîtier est capable de faire.

Le logiciel "browser-tester" se concentre sur les tests du comportement prévisible des formulaires et de l'interface utilisateur, plutôt que sur la compatibilité complète du rendu dans les différents navigateurs.

Environnement d'exécution basé uniquement sur Rust.

Fonctionne entièrement au sein d'un seul processus Rust. Aucune dépendance externe à un navigateur, à WebDriver ou à Node.js.

Exécution déterministe.

Conçu pour des tests reproductibles : horloge simulée, générateur de nombres aléatoires déterministe et API de contrôle de temporisation explicites.

Tests DOM et événements.

Prend en charge les fonctionnalités pratiques similaires à celles d'un navigateur : sélection d'éléments, exécution de scripts intégrés, propagation des événements et mises à jour du DOM.

Retour d'information rapide et local.

Cycle de retour d'information rapide pour les tests d'interface utilisateur axés sur les formulaires, tout en veillant à ce que les messages d'erreur mettent en évidence les sélecteurs et les valeurs attendues/réelles.

Démarrage rapide.

Créez un environnement de test à partir de code HTML, simulez des interactions et vérifiez les résultats du DOM. Commencez avec un environnement de test simple et étendez-le en utilisant des temporisateurs et des API simulées.

Installer.

cargo ajouter browser_tester.

Exemple de base.

Surface principale de l'API.

Actions et affirmations liées.

Opérations de test DOM de base : `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, et fonctions utilitaires pour les vérifications de texte, de valeur, de cases à cocher et de présence.

Compteurs déterministes.

Contrôlez le comportement asynchrone à l'aide d'une fausse horloge. Faites progresser le temps de manière déterministe en utilisant les fonctions `advance_time`, `advance_time_to`, `flush` et les API d'inspection des minuteurs.

Simulations intégrées.

Pour isoler les tests, utilisez les fonctions `set_fetch_mock`, `enqueue_confirm_response` et `enqueue_prompt_response` pour simuler les réponses de l'API et les résultats des dialogues.

Suivi et diagnostic.

Activez les journaux de traçage et extrayez les informations relatives au déroulement des événements et des temporisateurs lorsqu'un test échoue. Cela est utile pour déboguer l'ordre des événements et le comportement des actions par défaut.

Politique d'exécution.

  • La fonction `eval` n'est intentionnellement pas prise en charge afin de garantir la sécurité et la prédictibilité du système.
  • Cette version logicielle est conçue pour simuler des scénarios de test concrets, et non pour garantir une compatibilité totale avec tous les navigateurs.
  • Les opérations d'entrée/sortie réseau externes ne sont pas prises en compte ; utilisez des simulations de récupération de données pour assurer la couverture des tests.

Si vous avez besoin d'API de navigateur supplémentaires pour votre suite de tests, veuillez ouvrir une demande (issue) en fournissant un exemple minimal pour discuter de la portée et de la priorité.