TestNG est un cadre de test qui couvre différents types de conceptions de test telles que les tests unitaires, fonctionnels, de bout en bout, d'interface utilisateur et d'intégration.
Vous pouvez exécuter un ou plusieurs packages (package signifie ici encapsuler un groupe de classes dans un format de directeur approprié) en créant du XML et en l'exécutant via maven.
Dans ce didacticiel, vous apprendrez-
- Groupes TestNG avec exemple
- Définir le chemin maven et Java dans la variable d'environnement (pour l'utilisateur Windows)
- Introduction à XML et comment créer des fichiers XML
- Un autre mécanisme au lieu du regroupement est «exclure» ou «inclure» dans le test XML
- Comment exécuter du code à l'aide d'un fichier XML (démo vidéo)
Groupes TestNG avec exemple
Nous utilisons des groupes dans Testng quand,
- Nous ne voulons pas définir les méthodes de test séparément dans différentes classes (en fonction de la fonctionnalité) et
- En même temps, vous voulez ignorer (ne pas exécuter) certains cas de test comme s'ils n'existaient pas dans le code.
- Donc, pour réaliser cela, nous devons les regrouper. Cela se fait en utilisant les mécanismes "inclure" et "exclure" pris en charge dans testNG.
Dans l'exemple ci-dessous, nous avons montré la syntaxe d'utilisation des groupes dans le fichier XML.
@Test (groupes = {"liaison", "strong_ties"})
Ici, nous utilisons 2 noms de groupe à savoir "bonding" et "strong_ties" (ce sont des noms logiques qui peuvent être modifiés selon votre souhait).
La balise
Personnalisez votre XML pour sélectionner le groupe mentionné dans les classes de test. Vous trouverez ci-dessous la syntaxe de la déclaration des groupes dans un fichier XML, par exemple
Supposons donc qu'il existe 10 méthodes de test dans une classe.
Hors d'eux,
- 6 méthodes sont étiquetées dans le groupe "liaison" et
- 4 font partie du groupe "strong_ties"
À l'avenir, nous allons définir le chemin maven / Java et utiliser l'EDI Eclipse pour démontrer l'utilisation de groupes à l'aide de fichiers XML dans un projet maven basé sur Java.
Définir le chemin maven et Java dans la variable d'environnement (pour l'utilisateur Windows)
Veuillez vous référer à https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html
https://www.guru99.com/install-java.html
Introduction à XML et comment créer des fichiers XML
- Le fichier XML (Extensible Markup Language) du framework Maven contient les informations d'un ou plusieurs tests et est défini par la balise
. - Les informations de test en XML sont représentées par la balise
et peuvent contenir une ou plusieurs classes TestNG. - Une classe Java qui contient l' annotation @Test au-dessus des méthodes de test est définie comme méthodes TestNG.
Plusieurs balises sont utilisées dans une séquence pour créer un xml testNG fonctionnel comme
- La première est la balise
, qui contient un nom logique qui définit les informations complètes à testerNG rapportées pour générer un rapport d'exécution. - Le deuxième est
, notez qu'il s'agit d'un nom logique qui contient les informations du rapport d'exécution de test telles que réussite, échec, saut de cas de test et d'autres informations telles que le temps total d'exécution et les informations de groupe - Le troisième est
, com.group.guru99 est le package utilisé et le nom de la classe de test est TC_Class1.
xml version = "1.0" encoding = "UTF-8"?>
Nous utiliserons ce XML pour les prochains inconvénients de la vidéo.
Un autre mécanisme au lieu du regroupement est "exclure" ou "inclure" dans le test XML
Supposons que vous trouviez l'utilisation du mécanisme de groupe complexe, puis testNG XML facilite la fonctionnalité pour exclure / inclure un test.
Exclure la balise: Syntaxe de la balise d'exclusionInclure la balise: Syntaxe de la balise d'inclusion
Remarque: nous pouvons inclure / exclure plusieurs cas de test une fois à la fois, et cela fonctionne également avec les groupes.
Comment exécuter du code à l'aide d'un fichier XML (démo vidéo)
Explication du code Java et XML avec le groupe, exclure et inclure la balise dans XML.
- Scénario : Lancez le site bancaire de démonstration Guru99, vérifiez quelques éléments sur la page de connexion, puis entrez les informations d'identification et revérifiez quelques éléments nouveaux sur l'application lorsque vous êtes connecté.
Remarque : Chaque étape que vous codez doit être déclarée dans des méthodes distinctes, mais une fois exécutée, elle exécutera des méthodes de test en fonction des entrées du fichier XML.
Méthode 1 : initialiser le navigateur et lancer l'URL (tc01LaunchURL ())
Méthode 2 : vérifier l'en-tête de la page de connexion (tc02VerifyLaunchPage ())
Méthode 3 : Entrez le nom d'utilisateur et le mot de passe sur le formulaire de connexion (tc03EnterCredentials ())
Méthode 4 : vérifier la présence de l'ID du gestionnaire sur le tableau de bord de l'utilisateur (tc04VerifyLoggedInPage ())
Méthode 5 : Vérifiez quelques liens supplémentaires sur le tableau de bord utilisateur (tc05VerifyHyperlinks ())
Code pour notre scénario:
package com.group.guru99;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Test;classe publique TC_Class1 {public static final WebDriver webDriver = new FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Guru99 Bank']";string final userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// entrée [@ name = 'btnLogin']";chaîne finale userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [contains (text (), 'Manger Id')]";final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Ce cas de test initialisera le WebDriver* /@Test (groupes = {"liaison", "strong_ties"})public void tc01LaunchURL () {webDriver.manage (). window (). maximiser ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Vérifiera la présence de l'en-tête sur la page de connexion* /@Test (groupes = {"liaison"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplayed (),"L'en-tête de la page d'accueil n'est pas affiché");System.out.println ("L'en-tête de la page d'accueil est affiché");}/ *** Ce cas de test entrera le nom d'utilisateur, le mot de passe et cliquera ensuite sur* bouton de connexion* /@Test (groupes = {"liaison", "strong_ties"})public void tc03EnterCredentials () {webDriver.findElement (By.xpath (userName_element)). sendKeys (userName_value);webDriver.findElement (By.xpath (élément_mot de passe)). sendKeys (valeur_mot de passe);webDriver.findElement (By.xpath (signIn_element)). click ();}/ *** Ce cas de test vérifiera la présence de l'ID du responsable sur DashBoard* /@Test (groupes = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),"L'étiquette d'ID de gestionnaire n'est pas affichée");System.out.println ("L'étiquette de l'ID du responsable est affichée");}/ *** Ce cas de test vérifiera la présence de la présence du lien Nouveau client* Et le lien FundTransfer dans le panneau de gauche* /@Test (groupes = {"liaison"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Le lien hypertexte du nouveau client ne s'affiche pas");System.out.println ("Le lien hypertexte du nouveau client est affiché");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Le lien hypertexte de transfert de fonds n'est pas affiché");System.out.println ("Le lien hypertexte de transfert de fonds est affiché");}}
Remarque: les informations d'identification ne sont valides que pendant 20 jours, donc si vous essayez d'exécuter du code sur votre ordinateur local, vous risquez donc de faire face à une erreur d'informations d'identification non valides. Veuillez trouver ci-dessous les étapes pour générer vos identifiants de connexion:
- Lancez http://www.demo.guru99.com
- Entrez votre adresse e-mail dans la case.
- Cliquez sur Entrée et voyez vos informations de connexion à l'écran.
Explication du code:
Comme mentionné ci-dessus, nous avons créé 5 cas de test pour effectuer chaque action dans des méthodes indépendantes.
Vous pouvez observer qu'à chaque méthode, nous avons associé un paramètre de groupe contenant une valeur.
Fondamentalement, ce sont les noms des groupes de différenciation, c'est-à-dire "strong_ties" et "bonding".
- La première et la troisième méthodes sont étiquetées «bonding», «strong_ties», ce qui signifie que si XML est mis à jour dans l'un des groupes, ce scénario de test s'exécutera.
- La deuxième méthode n'est étiquetée que pour le groupe "liaison", cela signifie que si XML est mis à jour avec le groupe de liaison. Seulement dans ce cas, ce cas de test s'exécutera.
- Le quatrième cas de test est étiqueté avec le groupe strong_ties, ce qui signifie que ce cas de test ne s'exécutera que si XML est mis à jour avec le nom de groupe strong_ties.
- Le dernier scénario de test, mais non le moindre, est attaché au groupe de liaison, ce qui signifie que ce scénario de test ne fonctionnera que si XML est mis à jour avec le nom du groupe de liaison.
Donc, globalement, nous avons 4 scénarios;
- Nous voulons exécuter tous les cas de test quel que soit le nom du groupe. Dans ce cas, nous supprimerons la balise Group de l'exécution de XML.
- Nous voulons exécuter quelques tests de cas de test qui ne sont liés qu'à l'un ou l'autre des groupes, c'est-à-dire strong_ties ou liaison
- Se il vous plaît se référer:
- Dans cette vidéo, le paramètre de groupe est commenté à partir de l'exécution de XML. Par conséquent, vous verrez que tous les cas de test ont été exécutés.
- Dans la continuité de la vidéo, maintenant que nous avons inclus le nom du groupe dans XML, vous ne pouvez voir que les cas de test spécifiques à ce groupe en cours d'exécution.
- Nous utilisons le mécanisme d'exclusion pour exclure le cas de test:
- Se il vous plaît se référer
- Vous voyez que nous avons utilisé exclure quelques cas de test (tc02) en écrivant leur nom dans le XML en cours d'exécution. Dans le résultat final, les cas de test mentionnés n'ont pas été exécutés.
- Enfin, nous utilisons un mécanisme de test d'inclusion pour inclure les cas de test (tc01LaunchURL, tc03EnterCredentials et tc05VerifyHyperlinks)
- Se il vous plaît se référer
- Dans cette vidéo, vous verrez que les cas de test mentionnés dans XML ne s'exécutent que pendant l'exécution du test.
Veuillez télécharger le code à partir de l'URL mentionnée, il contiendra tous les types de testXML:
Téléchargez le code ci-dessus
Conclusion
Nous avons appris ici une manière relativement nouvelle d'exécuter des cas de test en utilisant XML dans le projet Maven.
Nous avons commencé par fournir une brève introduction sur testNG et avons continué avec la spécification technique complète des groupes, exclure et inclure.