Fermer

février 22, 2023

Healenium : bibliothèque d’auto-guérison pour les tests automatisés basés sur le sélénium

Healenium : bibliothèque d’auto-guérison pour les tests automatisés basés sur le sélénium


AUTOMATISATION AUTO-RÉPARATION AVEC HEALENIUM – [Part 1]

En raison de la disposition modifiée et des sélecteurs cassés, tous les tests d’interface utilisateur automatisés finissent par rencontrer NoSuchElementException. La construction devient rouge et le test se bloque en conséquence. Cette discussion présente le nouvel outil d’automatisation d’auto-guérison – Healenium qui vous aide à surmonter automatiquement les problèmes d’instabilité des tests automatisés et à passer moins de temps sur la maintenance des tests.

Vous pouvez incorporer Healenium dans votre base de code de test d’automatisation car il s’agit d’un JAR Java autonome. Vous pouvez localiser des contrôles (nouveaux localisateurs) pour les sites Web mis à jour et ajuster vos tests en cours d’exécution en utilisant des méthodes d’apprentissage automatique (ML) pour reconnaître les modifications de pages Web…

BIENFAITS DE HEALINIUM

Améliorer la stabilité des tests automatisés à base de sélénium

Remplacez la valeur de localisateur cassée par celle qui correspond le mieux et corrige les tests lors de l’exécution

Minimiser le temps de maintenance

Réduire le nombre d’échecs de test non liés au produit

Recevez des rapports enrichis

Gérez les contrôles actionnables avec de nouvelles valeurs dans la base de code en un seul clic

CARACTÉRISTIQUES

Healenium nous permet de pallier le problème d’instabilité des tests automatisés et de passer moins de temps sur le support des scripts d’automatisation.

Adopte le test des modifications de l’interface utilisateur

Les capacités d’auto-guérison permettent de remplacer le localisateur « cassé » par une nouvelle valeur et le test fixe en cours d’exécution.

Améliore la stabilité des tests E2E

Les modifications de l’interface utilisateur n’affecteront pas la stabilité du test E2E automatisé

Gère les échecs de test NoSuchElement

Lors de l’exécution, Healenium remplace l’échec du contrôle par une nouvelle valeur qui correspond le mieux et exécute une action avec le contrôle remplacé avec succès

Met à jour la base de code de test

Le plugin IntelliJ IDEA met à jour le contrôle avec de nouvelles valeurs dans la base de code en un seul clic

Prend en charge les fonctionnalités avancées

Healenium prend en charge les exécutions de tests parallèles, les exécutions de tests à distance, les IFrames, les actions et l’intégration Selenide

Visualiser l’état des contrôles

Fournit des rapports détaillés avec des valeurs de contrôle fixes et des captures d’écran

Tester sur mobile

Toutes ces fonctionnalités sont également disponibles pour les tests mobiles

COMMENT ÇA MARCHE?

Comment ça fonctionne

Healenium s’intègre à Test Automation Framework pour des tests Selenium sans friction

Gère les échecs de test NoSuchElement : lors de l’exécution, remplace l’échec du contrôle par une nouvelle valeur qui correspond le mieux et exécute une action avec le contrôle remplacé avec succès ;

Peut être facilement configuré en enveloppant simplement votre pilote Selenium avec SelfHealingDriver. L’utilisation de l’algorithme ML pour l’identification des changements de page aidera à trouver des contrôles (nouveaux localisateurs) pour les pages mises à jour et à corriger vos tests dans un environnement d’exécution.

Les rapports conviviaux et le plug-in Healenium pour IntelliJ IDE offrent une visibilité sur l’état des contrôles et permettent de mettre à jour automatiquement les localisateurs «cassés» dans la base de code.

Outil et technologies impliquées

Healenium se compose de deux parties : l’une est le client qui s’intègre au framework d’automatisation des tests et l’autre partie est un système back-end qui stocke l’état de chaque page de l’interface utilisateur.

Client – healenium-web est disponible en tant que dépendance Gradle/Maven sur le référentiel epam. Ajoutez un plugin pour permettre au rapport Healenium d’obtenir des résultats globaux pour les éléments d’auto-guérison.

Back-end – L’image dockerisée de l’application back-end et de la base de données en tant que Postgres est utilisée pour stocker l’état des pages d’interface utilisateur et l’application maintient l’application de formulaire de transaction DB. Deux fichiers sont utilisés pour configurer le backend : l’un est le fichier Compose contenant à la fois les images docker, le volume requis et la configuration réseau ; l’autre est un fichier SQL qui crée le schéma et accorde des privilèges à l’utilisateur.

Configuration et fonctionnement interne

Le client Healenium se compose d’algorithmes d’auto-guérison utilisant des dépendances de comparaison d’arbres. Chaque fois qu’un test est exécuté, il capture l’état DOM actuel de la page dans un format arborescent au niveau de la base de données et au sein de la structure ; il inclut également le nom de la classe de test, le package, les détails du localisateur et le chemin du nœud.

Pour configurer Healenium, vous devez d’abord configurer le back-end créé pour le grab docker-compose et le fichier init.sql – vous pouvez y accéder à partir de l’emplacement GitHub ici et le placer sous la structure de répertoires et cliquer sur composer – https ://github.com/healenium/healenium-backend/tree/master/example

Accédez à l’emplacement docker-compose > docker-compose up -d. Cela créera le conteneur Postgres avec la base de données Healenium, et le fichier init.sql créera le schéma à l’intérieur de la base de données Healenium. Créez ensuite un conteneur healenium/hlm-backend en tant que client, ce qui créera la table requise sous le schéma healenium, comme indiqué ci-dessous. Après cela, vous pouvez intégrer le framework de test avec healenium et ajouter des dépendances healenium-web. Ces dépendances sont généralement des appels de service vers le serveur principal. Maintenant, nous enveloppons le WebDriver dans le nouveau pilote SelfHealing.

CONCLUSION

Healenium a corrigé avec succès tous les échecs dans les scénarios ci-dessus et s’est avéré être une solution très fiable pour les projets de test utilisant des modèles d’objet de page. Il peut être étendu à l’automatisation mobile à l’aide de l’adaptateur basé sur Appium et Healenium fournit également un plugin pour IntelliJ IDEA IDE pour mettre à jour la base de code avec les nouvelles valeurs des localisateurs. Notre produit était relativement mature et avait une interface utilisateur stable où nous n’avons pas jugé nécessaire d’implémenter la solution Healenium à plus grande échelle car le retour sur investissement perçu était plus faible ; cependant, nous vous recommandons vivement de l’évaluer pour les applications qui subissent des changements fréquents où il offrira une valeur beaucoup plus élevée. De plus, il s’agit d’une implémentation de l’IA dans l’automatisation, ce qui constitue un pas en avant dans la création et la maintenance de suites d’automatisation résilientes.

Ce blog ne contient que l’introduction et quelques étapes rapides pour commencer. Je travaille sur un autre blog pour des tutoriels détaillés et étape par étape pour Healenium.

On se voit là-bas…

Merci d’avoir lu ce blog, si vous avez des questions ou des commentaires, n’hésitez pas à me le faire savoir dans la section des commentaires.

TROUVÉ CELA UTILE ? PARTAGEZ-LE




Source link