Fermer

avril 5, 2024

Explorer le framework de test d’automatisation Web Prism sur Java-Selenium

Explorer le framework de test d’automatisation Web Prism sur Java-Selenium


Introduction

PRISM se distingue comme une solution complète qui mérite d’être explorée dans le vaste paysage des frameworks de tests pour le Web, les mobiles et les API. Ce blog se concentre sur le framework de tests Web de PRISM, méticuleusement conçu sur la base robuste de la bibliothèque Selenium, le framework TestNG, avec Java comme langage contraignant. En tirant parti de Maven comme outil de gestion des dépendances pour le projet, PRISM offre une approche rationalisée et efficace des tests Web, garantissant la fiabilité et l’évolutivité dans chaque scénario de test. Examinons en profondeur comment PRISM permet aux développeurs de tests de réaliser des prouesses exceptionnelles en matière de tests.

Structure du cadre

Pour comprendre le framework et l’utiliser, nous devons comprendre la structure ci-dessus ou vous pouvez ajouter des éléments tout en utilisant le framework en fonction des exigences de votre projet.

Forfait de base

Le package de base contient trois fichiers :

  • BaseLib
  • NavigateurFactory
  • Gestionnaire d’étendue

BaseLib : C’est une classe qui s’étendra aux classes enfants qui sont des classes de script de test. Il contient une méthode qui contient des annotations du framework testNG qui sont les paramètres BeforeSuite, BeforeTest, BeforeClass, BeforeMethod, AfterMethod, AfterClass, AfterTest et AfterSuite.

Note:

  1. Deux autres notations utiliseront Test et DataProvider dans notre classe de test. Nous utilisons ItestListener.
  2. Pour une meilleure compréhension de l’ordre d’exécution des notations et ListenersClass dans le package Listene (ItestListner), il est recommandé de passer par le framework TestNG annotations. Dans la méthode du framework PRISM, exécutez-la selon la priorité ou l’ordre de notation dans le framework TestNG.

Classe BrowserFactory: Cette classe consiste en une méthode qui lance un pilote en fonction des exigences, comme un pilote pour Chrome, Firefox, des pilotes distants ou un pilote ayant la capacité d’une pile de navigateur de type cloud, Lambda, etc. Elle a également une fonction pour calmer le navigateur. Dans notre script de test, nous appelons principalement cette méthode dans notre classe parent, c’est-à-dire la BaseLib.java classe. Nous initions les pilotes à tous les niveaux, comme au niveau du test, au niveau de la classe et au niveau de la méthode. Cela dépend de nos besoins ou de l’exécution parallèle de cas de test basés sur l’exécution de la méthode, de la classe et du niveau de test. Concentrez-vous sur la ségrégation ou l’indépendance du script de test afin qu’il n’entrave pas l’exécution des tests.

Classe ExtentManager : Cette classe se compose de méthodes qui initialisent les propriétés des objets ExtentReports et ExtentHtmlReporter et reviennent là où elles se trouvent en classe pour l’initialisation et l’utilisation dans l’ensemble de l’exécution du test ; il s’initialise principalement sur BeforeSuite et est utilisé dans l’ensemble du processus, comme la journalisation de l’état des tests comme les échecs, les réussites, les sauts, etc.

Comment cela se passe

Nous écrivons notre script de test dans le package Test en étendant BaseLib et en utilisant la méthode réutilisable de notre logique métier, c’est-à-dire écrite dans le package pageObjects. Pour notre commodité de dénomination, nous terminons la classe de logique métier par une page dans leur nom comme : FiltersOnSummaryViewPageForBookingPage.java

Ces logiques sont des scénarios que nous testons, et nous affirmons ces résultats d’exécution dans notre classe de script de test qui se terminent par Test dans leur nom comme FiltersOnSummaryViewPageForBookingTest.java. Vous pouvez voir les deux exemples comme indiqué ci-dessous les images

Dans le cas ci-dessus, nous parlons de méthodes réutilisables de la classe de logique métier. Lors de l’exécution de cette méthode, nous obtenons le résultat qui est testé ou affirmé à l’endroit où cette méthode a été appelée par un scénario de test qui se trouve dans le fichier Test. classe de script.

Pour comprendre cela, nous devons savoir comment ces méthodes sont implémentées et comment leurs résultats sont affirmés par le script de test.

Pour écrire une logique de test comme le clic, le défilement, la saisie, le glisser-déposer, etc., nous avons déjà du code ou des fonctions réutilisables qui ont été construits à l’aide de la fonction sélénium et avons un enregistreur afin que nous puissions déboguer. Dans PRISM, nous avons nommé cela comme un SéléniumHelper classe dans le paquet séléniumUtils. Si on n’a pas de fonction particulière pour certaines opérations, on fait une fonction réutilisable dans CommonUtility classe cette classe, nous la construirons si nous en avons besoin dans le paquet séléniumUtils.

Lorsque nous utilisons une fonction du SéléniumHelper classe, il enregistrera cette opération. Si nous utilisons la fonction clic, elle enregistrera automatiquement l’enregistreur dans la console, RP ou dans le fichier comme vous le mentionnez dans le connexion.xml du dossier ressources dans ce dossier, vous trouvez également le fichier reportportal.properties. Dans le rapportportal.propriétés fichier, nous fournirons le lien UUID du lien vers le portail de reporting pour l’utilisateur qui peut se connecter à ce portail de reporting. Nom du projet du portail de reporting sur lequel votre journal de projet sera généré. Le nom du déjeuner portant ce nom doit être visible sur le portail de reporting.

Paquet Utilib

Ce package est comme un couteau suisse ; cela contient presque toutes les classes nécessaires à l’automatisation, comme la classe pour le déclenchement du courrier, les lecteurs de fichiers comme le lecteur CSV, le lecteur Excel, le lecteur de feuilles Google, le lecteur de fichiers de propriétés, les générateurs aléatoires pour les nombres, les alphabets, les aplhnumériques, etc., le capteur de capture d’écran, le fichier gestionnaire, JiraOperation pour le journal des bogues, HealthCheckUtils, Zip Directory, fournisseur de données.

Fichier DataProviderSource est utilisé dans Test Script en utilisant l’annotation TestNG, c’est-à-dire fournisseur de données.

Dans cette méthode, nous définissons comment nous obtiendrons les données dans l’image ci-dessus ; nous pouvons voir que nous l’obtenons à partir d’un lecteur Excel. Ces données sont renvoyées sous la forme d’un tableau d’objets et, à l’endroit où nous les avons appelées explicitement, elles peuvent être converties en n’importe quelle forme 2D de structure de données. Comme nous le souhaitons, nous pouvons le convertir en HashTable.

TestNG.xml est utilisé pour exécuter ces classes de test

  1. Première référence
  2. Deuxième référence
  3. Troisième référence avec références parallèles

Pom.xml est le cœur du projet maven ; il gère les dépendances nécessaires à la création et à l’exécution du projet. Si le projet perd son Pom, alors il ne peut être exécuté que si des dépendances ou des bibliothèques externes sont déjà présentes dans votre projet. Dans PRISM POM, nous ajoutons plugin maven-surefire qui déclenche le TestNG, et nous ajoutons également la propriété System pour Portail de rapport comme le montre l’image ci-dessous

Avantage

Solutions d’automatisation complètes

PRISME offre un avantage distinct en fournissant toutes les bibliothèques et le code essentiels requis pour l’automatisation, évitant ainsi aux développeurs de tests d’avoir à construire des configurations entières à partir de zéro. Cela permet non seulement de gagner un temps précieux, mais améliore également la productivité en permettant aux développeurs de se concentrer sur l’affinement des cas de test et l’amélioration de la couverture des tests.

Exploiter les technologies de pointe du marché

L’un des principaux atouts de PRISM réside dans son fondement sur Selenium et Java, deux piliers de l’automatisation qui bénéficient d’une part de marché importante. Selenium, réputé pour sa robustesse et sa polyvalence dans l’automatisation du Web, compte une clientèle stupéfiante de 50,79 % aux États-Unis, réaffirmant son adoption généralisée et sa fiabilité. Associé à Java, un langage adopté par plus de 56 % des applications de production, PRISM exploite la force collective de ces technologies pour fournir des solutions d’automatisation transparentes qui répondent à diverses exigences et scénarios.

Gestion de projet simplifiée avec Maven

De plus, PRISM s’intègre parfaitement à Maven, servant d’outil de gestion des dépendances qui simplifie la configuration du projet et garantit une exécution fluide. La popularité de Maven est évidente au vu de sa clientèle, dont 50,48 % proviennent des États-Unis, ce qui souligne son attrait mondial et son efficacité dans la gestion des dépendances des projets. Suivi de près par l’Inde et le Royaume-Uni, Maven apparaît comme la pierre angulaire des projets d’automatisation dans le monde entier, facilitant une collaboration efficace et l’évolutivité des projets.

Conclusion

Adopter PRISME pour l’automatisation annonce une nouvelle ère d’efficience et d’efficacité dans les tests de logiciels. En exploitant les atouts de Selenium, Java et Maven, PRISM permet aux développeurs de tests de surmonter les défis et d’accélérer le rythme du développement. À mesure que le paysage de l’automatisation évolue, l’adoption de Prism garantit un avantage concurrentiel et permet aux organisations de garder une longueur d’avance dans un environnement en évolution rapide.






Source link