how use testng framework
Dans les derniers tutoriels, nous avons mis en lumière les commandes WebDriver de base et couramment utilisées. Nous avons également appris les stratégies de localisation des éléments de l'interface utilisateur et leur inclusion dans les scripts de test. Et par conséquent, nous avons développé notre très premier script de test d'automatisation WebDriver .
En allant de l'avant avec ce didacticiel, nous discuterons de tout sur TestNG, ses fonctionnalités et ses applications.
TestNG est un framework avancé conçu de manière à tirer parti des avantages des développeurs et des testeurs. Pour les personnes utilisant déjà JUnit, TestNG ne semble pas différent avec certaines fonctionnalités avancées. Avec le début des frameworks, JUnit a gagné un énorme popularité parmi les applications Java, les développeurs Java et les testeurs Java, avec une amélioration remarquable de la qualité du code.
Voir également=> Tutoriel JUnit et son utilisation dans les scripts Selenium
Bien qu'il s'agisse d'un cadre simple à utiliser et simple, JUnit a ses propres limites qui donnent lieu à la nécessité d'apporter TestNG dans l'image. TestNG a été créé par un programmeur renommé nommé «Cedric Beust». TestNG est un framework open source qui est distribué sous la licence logicielle Apache et est facilement disponible pour téléchargement.
Parler de notre exigence d'introduire TestNG avec WebDriver est qu'il fournit un format de résultat de test efficace qui peut, à son tour, être partagé avec les parties prenantes pour avoir un aperçu de la santé du produit / de l'application, éliminant ainsi l'inconvénient de l'incapacité de WebDriver à générer rapports d'essai. TestNG a un mécanisme de gestion des exceptions intégré qui permet au programme de s'exécuter sans s'arrêter de manière inattendue.
TestNG et JUnit appartiennent à la même famille de Frameworks d'unités où TestNG est une version étendue de JUnit et est plus largement utilisé à l'ère actuelle des tests.
Ce que vous apprendrez:
- Caractéristiques de TestNG
- Installation de TestNG dans Eclipse
- Création d'un exemple de projet TestNG
- Créer une classe TestNG
- Exécution du script TestNG
- Rapports HTML
- Définition de la priorité dans TestNG
- Procédure pas à pas du code
- Annotations TestNG
- Conclusion
- lecture recommandée
Caractéristiques de TestNG
- Prise en charge des annotations
- Prise en charge du paramétrage
- Méthodologie d'exécution avancée qui ne nécessite pas la création de suites de tests
- Prise en charge des tests pilotés par les données à l'aide de fournisseurs de données
- Permet à l'utilisateur de définir des priorités d'exécution pour les méthodes de test
- Prend en charge l'environnement sécurisé contre les menaces lors de l'exécution de plusieurs threads
- Prend facilement en charge l'intégration avec divers outils et plug-ins tels que les outils de construction (Ant, Maven, etc.), l'environnement de développement intégré (Eclipse).
- Facilite l'utilisateur avec des moyens efficaces de génération de rapports à l'aide de ReportNG
Il existe divers avantages qui rendent TestNG supérieur à JUnit. Certains d'entre eux sont:
- Annotations avancées et faciles
- Les modèles d'exécution peuvent être définis
- Exécution simultanée de scripts de test
- Les dépendances de cas de test peuvent être définies
Les annotations sont précédées d'un symbole «@» dans TestNG et JUnit.
Alors maintenant, commençons avec la partie installation et implémentation.
Grille en ligne pour l'automatisation des tests de sélénium
# 1) Test Lambda
Le framework TestNG est mieux utilisé avec un cloud Selenium Grid tel que LambdaTest qui vous aide à exécuter des tests parallèles sur plus de 2000 navigateurs et systèmes d'exploitation réels, sans aucun souci de maintenance d'une grille Selenium en interne.
Vous pouvez obtenir une variété de journaux tels que les journaux de commandes, les journaux réseau, les journaux Selenium bruts, les métadonnées, etc. ainsi qu'un enregistrement vidéo complet de votre script de test Selenium pour le débogage.
LambdaTest propose également des intégrations avec plusieurs outils CI / CD tels que Jenkins, Travis CI, CircleCI, etc. pour des tests continus. LambdaTest vous permet également d'intégrer de nombreux outils de gestion de projet pour faciliter la journalisation des bogues.
=> Visitez le site Web de LambdaTestInstallation de TestNG dans Eclipse
Suivez les étapes ci-dessous pour tester le téléchargement et l'installation sur eclipse:
Étape 1: Lancez eclipse IDE -> Cliquez sur l'option Aide dans le menu -> Sélectionnez l'option «Eclipse Marketplace ..» dans la liste déroulante.
Étape 2: Entrez le mot-clé «TestNG» dans la zone de texte de recherche et cliquez sur le bouton «Aller» comme indiqué ci-dessous.
Étape 3: Dès que l'utilisateur clique sur le bouton «Aller», les résultats correspondant à la chaîne de recherche seront affichés. Maintenant, l'utilisateur peut cliquer sur le bouton Installer pour installer TestNG.
Étape 4: Dès que l'utilisateur clique sur le bouton Installer, l'utilisateur est invité avec une fenêtre pour confirmer l'installation. Cliquez sur le bouton «Confirmer».
Étape 5: Dans l'étape suivante, l'application vous invite à accepter la licence puis cliquez sur le bouton «Terminer».
Étape 6: L'installation est lancée maintenant et la progression peut être vue comme suit:
Il nous est conseillé de redémarrer notre éclipse afin de refléter les modifications apportées.
Au redémarrage, un utilisateur peut vérifier l'installation de TestNG en accédant à «Préférences» à partir de l'option «Fenêtre» dans la barre de menus. Reportez-vous à la figure suivante pour la même chose.
(Cliquez sur l'image pour l'agrandir)
Création d'un exemple de projet TestNG
Commençons par la création du projet TestNG dans l'IDE Eclipse.
Étape 1: Cliquez sur l'option Fichier dans le menu -> Cliquez sur Nouveau -> Sélectionnez un projet Java.
Étape 2: Entrez le nom du projet comme «DemoTestNG» et cliquez sur le bouton «Suivant». Pour conclure, cliquez sur le bouton «Terminer» et votre projet Java est prêt.
Étape 3: L'étape suivante consiste à configurer la bibliothèque TestNG dans le projet Java nouvellement créé. Pour la même chose, cliquez sur l'onglet «Bibliothèques» sous Configurer le chemin de construction. Cliquez sur «Ajouter une bibliothèque» comme indiqué ci-dessous.
Étape 4: L'utilisateur serait soumis à une boîte de dialogue lui incitant à sélectionner la bibliothèque à configurer. Sélectionnez TestNG et cliquez sur le bouton «Suivant» comme indiqué ci-dessous dans l'image. À la fin, cliquez sur le bouton «Terminer».
Le TestNG est maintenant ajouté au projet Java et les bibliothèques requises peuvent être vues dans l'explorateur de packages lors du développement du projet.
Ajoutez toutes les bibliothèques et fichiers JAR Selenium téléchargés dans le chemin de construction du projet, comme illustré dans le didacticiel précédent.
Créer une classe TestNG
Maintenant que nous avons effectué toute la configuration de base pour commencer la création du script de test à l'aide de TestNG. Créons un exemple de script à l’aide de TestNG.
Étape 1: Développez le projet «DemoTestNG» et accédez au dossier «src». Cliquez avec le bouton droit sur le package «src» et accédez à Nouveau -> Autre.
Étape 2: Développez l'option TestNG et sélectionnez l'option de classe «TestNG» et cliquez sur le bouton «Suivant».
Étape 3: Fournissez les détails requis comme suit. Spécifiez le dossier Source, le nom du package et le nom de la classe TestNG et cliquez sur le bouton Terminer. Comme il ressort de l'image ci-dessous, l'utilisateur peut également vérifier diverses notations TestNG qui seraient reflétées dans le schéma de classe de test. Les annotations TestNG seront discutées plus tard dans cette session.
La classe TestNG mentionnée ci-dessus serait créée avec le schéma par défaut.
Maintenant que nous avons créé la base de base du script de test TestNG, injectons maintenant le code de test réel. Nous utilisons le même code que nous avons utilisé dans la session précédente.
Scénario:
- Lancez le navigateur et ouvrez «gmail.com».
- Vérifiez le titre de la page et imprimez le résultat de la vérification.
- Entrez le nom d'utilisateur et le mot de passe.
- Cliquez sur le bouton Connexion.
- Fermez le navigateur Web.
Code:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
Explication du code par rapport à TestNG
1) @Test - @Test est l'un des Annotations TestNG . Cette annotation permet à l'exécution du programme de savoir que la méthode annotée comme @Test est une méthode de test. Pour pouvoir utiliser différentes annotations TestNG, nous devons importer le package ' importer org.testng.annotations. * ».
deux) Il n'y a pas besoin de la méthode main () lors de la création de scripts de test à l'aide de TestNG. L'exécution du programme se fait sur la base d'annotations.
3) Dans une instruction, nous avons utilisé la classe Assert tout en comparant la valeur attendue et la valeur réelle. La classe Assert est utilisée pour effectuer diverses vérifications. Pour pouvoir utiliser différentes assertions, nous devons importer ' importer org.testng.Assert ».
Exécution du script TestNG
Le script de test TestNG peut être exécuté de la manière suivante:
=> Faites un clic droit n'importe où dans la classe dans l'éditeur ou la classe java dans l'explorateur de paquets, sélectionnez l'option «Exécuter en tant que» et cliquez sur «TestNG Test».
Le résultat de TestNG est affiché dans deux fenêtres:
- Fenêtre de la console
- Fenêtre de résultat TestNG
Reportez-vous aux screencasts ci-dessous pour les fenêtres de résultats:
meilleur cadre de test unitaire pour java
(Cliquez sur l'image pour l'agrandir)
Rapports HTML
TestNG est livré avec une grande capacité de générer des rapports HTML lisibles et compréhensibles par l'utilisateur pour les exécutions de test. Ces rapports peuvent être consultés dans l’un des navigateurs et peuvent également être consultés à l’aide de la prise en charge intégrée du navigateur d’Eclipse.
Pour générer le rapport HTML, suivez les étapes ci-dessous:
Étape 1: Exécutez la classe TestNG nouvellement créée. Actualisez le projet contenant la classe TestNG en faisant un clic droit dessus et en sélectionnant l'option «Actualiser».
Étape 2: Un dossier nommé «test-output» doit être généré dans le projet au niveau du dossier «src». Développez le dossier «test-output» et ouvrez le fichier «emailable-report.html» avec le navigateur Eclipse. Le fichier HTML affiche le résultat de l'exécution récente.
Étape 3: Le rapport HTML doit être ouvert dans l'environnement eclipse. Reportez-vous à l'image ci-dessous pour la même chose.
Actualisez la page pour voir les résultats des nouvelles exécutions, le cas échéant.
Définition de la priorité dans TestNG
Extrait de code
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
Procédure pas à pas du code
Si un script de test est composé de plusieurs méthodes de test, la priorité et la séquence d'exécution peuvent être définies à l'aide de l'annotation TestNG «@Test» et en définissant une valeur pour le paramètre «priority».
Dans l'extrait de code ci-dessus, toutes les méthodes sont annotées avec l'aide @Test et les priorités sont définies sur 0, 1 et 2. Ainsi, l'ordre d'exécution dans lequel les méthodes de test seraient exécutées est:
- Méthode 1
- Méthode2
- Méthode3
Prise en charge des annotations
Un certain nombre d'annotations sont fournies dans TestNG et JUnit. La différence subtile est que TestNG fournit des annotations plus avancées à JUnit.
Annotations TestNG
Voici la liste des annotations les plus utiles et les plus favorables dans TestNG:
Annotation | Description |
---|---|
@Après les cours | L'annotation informe le système que la méthode annotée comme @AfterClass doit être exécutée après l'exécution de la dernière méthode de test dans la même classe de test |
@Test | L'annotation informe le système que la méthode annotée comme @Test est une méthode de test |
@BeforeSuite | L'annotation informe le système que la méthode annotée comme @BeforeSuite doit être exécutée avant d'exécuter les tests dans toute la suite |
@AfterSuite | L'annotation informe le système que la méthode annotée comme @AfterSuite doit être exécutée après l'exécution des tests dans toute la suite |
@BeforeTest | L'annotation informe le système que la méthode annotée comme @BeforeTest doit être exécutée avant d'exécuter une méthode de test dans la même classe de test |
@AfterTest | L'annotation informe le système que la méthode annotée comme @AfterTest doit être exécutée après l'exécution de toute méthode de test dans la même classe de test |
@Avant les cours | L'annotation informe le système que la méthode annotée comme @BeforeClass doit être exécutée avant d'exécuter la première méthode de test dans la même classe de test |
@BeforeMethod | L'annotation informe le système que la méthode annotée comme @BeforeMethod doit être exécutée avant d'exécuter toute méthode de test dans la même classe de test |
@AfterMethod | L'annotation notifie au système que la méthode annotée comme @AfterMethod doit être exécutée après l'exécution de toute méthode de test dans la même classe de test |
@BeforeGroups | L'annotation informe le système que la méthode annotée en tant que @BeforeGroups est une méthode de configuration qui inscrit un groupe et qui doit être exécutée avant d'exécuter la première méthode de test du groupe |
@AfterGroups | L'annotation informe le système que la méthode annotée comme @AfterGroups est une méthode de configuration qui inscrit un groupe et qui doit être exécutée après l'exécution de la dernière méthode de test du groupe |
Remarque : La plupart des annotations mentionnées ci-dessus peuvent également être utilisées dans le cadre JUnit 3 et JUnit 4.
Conclusion
Grâce à ce tutoriel, nous avons essayé de vous familiariser avec un framework de test basé sur Java nommé TestNG. Nous avons commencé la session avec l'installation du framework et avons évolué avec la création du script et les sujets avancés. Nous avons discuté de toutes les annotations fournies par TestNG. Nous avons implémenté et exécuté notre premier script de test TestNG à l'aide d'annotations et d'instructions d'assert.
Résumé de l'article:
- TestNG est un framework avancé conçu de manière à tirer parti des avantages des développeurs et des testeurs.
- TestNG est un framework open source qui est distribué sous la licence logicielle Apache et est facilement disponible pour téléchargement.
- TestNG est considéré comme supérieur à JUnit en raison de ses fonctionnalités avancées.
- Caractéristiques de TestNG
- Prise en charge des annotations
- Méthodologie d'exécution avancée qui ne nécessite pas la création de suites de tests
- Prise en charge du paramétrage
- Prise en charge des tests pilotés par les données à l'aide de fournisseurs de données
- Définition des priorités d'exécution des méthodes de test
- Prend en charge l'environnement sécurisé contre les menaces lors de l'exécution de plusieurs threads
- Prend facilement en charge l'intégration avec divers outils et plug-ins tels que les outils de construction (Ant, Maven, etc.), l'environnement de développement intégré (Eclipse).
- Facilite l'utilisateur avec des moyens efficaces de génération de rapports à l'aide de ReportNG
- Avantages de TestNG par rapport à JUnit
- Ajout d'annotations avancées et faciles
- Les modèles d'exécution peuvent être définis
- Exécution simultanée de scripts de test
- Les dépendances de cas de test peuvent être définies
- TestNG est disponible gratuitement et peut être facilement installé dans l'IDE Eclipse à l'aide d'Eclipse Market.
- Lors de l'installation, TestNG serait disponible sous forme de bibliothèque dans l'environnement Eclipse.
- Créez un nouveau projet Java et configurez le chemin de construction à l'aide d'une bibliothèque TestNG.
- Créez une nouvelle classe TestNG en développant le projet TestNG créé et accédez à son dossier «src». Cliquez avec le bouton droit sur le package «src» et accédez à Nouveau -> Autre. Sélectionnez l'option de classe TestNG.
- @Test est l'une des annotations fournies par TestNG. Cette annotation permet à l'exécution du programme de savoir que la méthode annotée comme @Test est une méthode de test. Pour pouvoir utiliser différentes annotations TestNG, nous devons importer le package ' importer org.testng.annotations. * ».
- Il n'y a pas besoin de la méthode main () lors de la création de scripts de test à l'aide de TestNG.
- Nous utilisons la classe Assert en comparant la valeur attendue et la valeur réelle. La classe Assert est utilisée pour effectuer diverses vérifications. Pour pouvoir utiliser différentes assertions, nous devons importer ' importer org.testng.Assert ».
- Si un script de test est composé de plusieurs méthodes de test, la priorité et la séquence d'exécution peuvent être définies à l'aide de l'annotation TestNG «@Test» et en définissant une valeur pour le paramètre «priority».
- TestNG a la capacité de générer automatiquement des rapports d'exécution de test lisibles par l'homme. Ces rapports peuvent être consultés dans l’un des navigateurs et peuvent également être consultés à l’aide de la prise en charge intégrée du navigateur d’Eclipse.
Tutoriel suivant # 13 : Pour aller de l'avant avec les prochains didacticiels de la série Selenium, nous nous concentrerons sur la gestion des différents types d'éléments Web disponibles sur les pages Web. Donc, dans le prochain tutoriel, nous concentrerons notre attention sur les «menus déroulants» et appliquerons leurs stratégies de manipulation. Nous aborderons également la classe Select de WebDriver et ses méthodes pour sélectionner des valeurs dans les listes déroulantes.
Une remarque pour les lecteurs : Alors que notre prochain didacticiel de la série Selenium est en mode de traitement, les lecteurs peuvent commencer à créer leurs propres scripts WebDriver de base à l'aide du framework TestNG.
Pour des scripts et des concepts plus avancés, incluez autant d'annotations et d'assertions dans vos classes TestNG et exécutez-les à l'aide de l'environnement TestNG. Analysez également les rapports HTML générés par TestNG.
lecture recommandée
- Comment utiliser Firebug pour créer des scripts Selenium - Tutoriel Selenium # 4
- Introduction au framework JUnit et à son utilisation dans Selenium Script - Tutoriel Selenium # 11
- Apprenez à utiliser les annotations TestNG dans Selenium (avec des exemples)
- Tutoriel Cucumber Selenium: Intégration Cucumber Java Selenium WebDriver
- Comment localiser des éléments dans les navigateurs Chrome et IE pour créer des scripts Selenium - Tutoriel Selenium # 7
- Création du framework Selenium et accès aux données de test à partir d'Excel - Tutoriel Selenium # 21
- Création de génériques et de suites de tests - Tutoriel Selenium # 22
- Tutoriels Eclipse détaillés pour les débutants