TestNG-Gruppen: Einschließen, Ausschließen mit Beispiel - Selenium Tutorial

Inhaltsverzeichnis:

Anonim

TestNG ist ein Testframework, das verschiedene Arten von Testdesigns abdeckt, z. B. Einheits-, Funktions-, End-to-End-, UI- und Integrationstests.

Sie können ein einzelnes oder mehrere Pakete ausführen (Paket bedeutet hier, eine Gruppe von Klassen in einem geeigneten Director-Format zu kapseln), indem Sie XML erstellen und über maven ausführen.

In diesem Tutorial lernen Sie:

  • TestNG-Gruppen mit Beispiel
  • Festlegen des Maven- und Java-Pfads in der Umgebungsvariablen (für Windows-Benutzer)
  • Einführung in XML und Erstellen von XML-Dateien
  • Ein anderer Mechanismus anstelle der Gruppierung ist "Ausschließen" oder "Einschließen" in Test-XML
  • So führen Sie Code mithilfe einer XML-Datei aus (Videodemo)

TestNG-Gruppen mit Beispiel

Wir verwenden Gruppen in Testng, wenn,

  • Wir möchten Testmethoden nicht separat in verschiedenen Klassen definieren (abhängig von der Funktionalität) und
  • Gleichzeitig möchten Sie einige Testfälle ignorieren (nicht ausführen), als ob sie nicht im Code vorhanden wären.
  • Um dies zu erreichen, müssen wir sie gruppieren. Dies erfolgt mithilfe des in testNG unterstützten Mechanismus "Einschließen" und "Ausschließen".

Im folgenden Beispiel haben wir die Syntax für die Verwendung von Gruppen in der XML-Datei gezeigt.

@Test (groups = {"bonding", "strong_ties"}) 

Hier verwenden wir 2 Gruppennamen, dh "bonding" und "strong_ties" (dies sind logische Namen, die nach Ihren Wünschen geändert werden können).

Das -Tag definiert den Start von Gruppen in XML.

Passen Sie Ihr XML an, um die genannte Gruppe aus den Testklassen auszuwählen. Im Folgenden wird die Syntax zum Deklarieren von Gruppen in XML-Dateien aufgeführt, z

Nehmen wir also an, dass eine Klasse 10 Testmethoden enthält.

Aus ihnen heraus

  • 6 Methoden sind in der Gruppe "Bindung" und markiert
  • 4 sind in der Gruppe "strong_ties"

In Zukunft werden wir den Maven / Java-Pfad festlegen und die Eclipse-IDE verwenden, um die Verwendung von Gruppen mithilfe von XML-Dateien in einem Java-basierten Maven-Projekt zu demonstrieren.

Festlegen des Maven- und Java-Pfads in der Umgebungsvariablen (für Windows-Benutzer)

Weitere Informationen finden Sie unter https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html

https://www.guru99.com/install-java.html

Einführung in XML und Erstellen von XML-Dateien

  • Die XML-Datei (Extensible Markup Language) im Maven-Framework enthält die Informationen eines oder mehrerer Tests und wird durch das Tag definiert .
  • Testinformationen in XML werden durch das Tag dargestellt und können eine oder mehrere TestNG-Klassen enthalten.
  • Eine Java-Klasse, die @ Test-Annotation über den Testmethoden enthält, wird als TestNG-Methoden definiert.

In einer Sequenz werden mehrere Tags verwendet, um eine funktionierende testNG-XML wie , und zu erstellen

  • Das erste ist das -Tag, das einen logischen Namen enthält, der die vollständigen Informationen für testNG definiert, die gemeldet werden, um einen Ausführungsbericht zu generieren.
  • Der zweite ist . Beachten Sie, dass es sich um einen logischen Namen handelt, der die Informationen des Testausführungsberichts wie Bestehen, Nichtbestehen, Überspringen von Testfällen und andere Informationen wie die Gesamtzeit für die Ausführung und Gruppeninformationen enthält
  • Der dritte ist , com.group.guru99 ist das verwendete Paket und der Name der Testklasse ist TC_Class1.

Wir werden dieses XML für kommende Video-Nachteile verwenden.

Ein anderer Mechanismus anstelle der Gruppierung ist "Ausschließen" oder "Einschließen" in Test-XML

Angenommen, Sie finden die Verwendung des Gruppenmechanismus komplex, dann testNG XML erleichtert die Funktionalität zum Ausschließen / Einschließen eines Tests.

Ausschluss- Tag : Syntax für Ausschluss-Tag  Include-Tag : Syntax für Include-Tag 

Hinweis: Wir können mehrere Testfälle gleichzeitig ein- und ausschließen, und dies funktioniert auch mit Gruppen.

So führen Sie Code mithilfe einer XML-Datei aus (Videodemo)

Erläuterung des Java-Codes und von XML mit der Gruppe, schließen Sie das Tag aus und fügen Sie es in XML ein.

  • Szenario : Starten Sie die Guru99-Demo-Banking-Site, überprüfen Sie anschließend einige Elemente auf der Anmeldeseite, geben Sie die Anmeldeinformationen ein und überprüfen Sie einige neue Elemente in der Anwendung erneut, wenn Sie angemeldet sind.

Hinweis : Jeder Schritt, den Sie codieren, sollte in separaten Methoden deklariert werden. Bei der Ausführung werden jedoch Testmethoden abhängig von den Einträgen in der XML-Datei ausgeführt.

Methode 1 : Browser initialisieren und URL starten (tc01LaunchURL ())

Methode 2 : Überprüfen der Überschrift der Anmeldeseite (tc02VerifyLaunchPage ())

Methode 3 : Geben Sie Benutzername und Passwort in das Anmeldeformular ein (tc03EnterCredentials ()).

Methode 4 : Überprüfen Sie das Vorhandensein der Manager-ID im Benutzer-Dashboard (tc04VerifyLoggedInPage ()).

Methode 5 : Überprüfen Sie einige weitere Links auf dem Benutzer-DashBoard (tc05VerifyHyperlinks ()).

Code für unser Szenario:

Paket 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;öffentliche Klasse TC_Class1 {public static final WebDriver webDriver = neuer FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Guru99 Bank']";final String userName_element = "// Eingabe [@ name = 'uid']", password_element = "// Eingabe [@ name = 'Passwort']",signIn_element = "// input [@ name = 'btnLogin']";final String userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [enthält (text (), 'Manager-ID')]";final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Dieser Testfall initialisiert den webDriver* /@Test (groups = {"bonding", "strong_ties"})public void tc01LaunchURL () {webDriver.manage (). window (). maxim ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}}/ *** Überprüft das Vorhandensein von Überschriften auf der Anmeldeseite* /@Test (groups = {"bonding"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplayed (),"Homepage-Überschrift wird nicht angezeigt");System.out.println ("Überschrift der Startseite wird angezeigt");}}/ *** In diesem Testfall werden Benutzername und Passwort eingegeben und dann auf geklickt* Anmeldeschaltfläche* /@Test (groups = {"bonding", "strong_ties"})public void tc03EnterCredentials () {webDriver.findElement (By.xpath (userName_element)). sendKeys (userName_value);webDriver.findElement (By.xpath (password_element)). sendKeys (password_value);webDriver.findElement (By.xpath (signIn_element)). click ();}}/ *** In diesem Testfall wird das Vorhandensein der Manager-ID auf dem DashBoard überprüft* /@Test (groups = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),"Manager-ID-Label wird nicht angezeigt");System.out.println ("Manager-ID-Bezeichnung wird angezeigt");}}/ *** In diesem Testfall wird das Vorhandensein eines Neukunden-Links überprüft* Und FundTransfer-Link im linken Bereich* /@Test (groups = {"bonding"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Neukunden-Hyperlink wird nicht angezeigt");System.out.println ("Neukunden-Hyperlink wird angezeigt");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Überweisungs-Hyperlink wird nicht angezeigt");System.out.println ("Überweisungs-Hyperlink wird angezeigt");}}}}

Bitte beachten Sie: Die Anmeldeinformationen sind nur 20 Tage gültig. Wenn Sie also versuchen, Code auf Ihrem lokalen Computer auszuführen, wird möglicherweise ein ungültiger Anmeldeinformationsfehler angezeigt. Im Folgenden finden Sie Schritte zum Generieren Ihrer Anmeldeinformationen:

  1. Starten Sie http://www.demo.guru99.com
  2. Geben Sie Ihre E-Mail-ID in das Feld ein.
  3. Klicken Sie auf die Eingabetaste und sehen Sie Ihre Anmeldedaten auf dem Bildschirm.

Erklärung des Codes:

Wie oben erwähnt, haben wir 5 Testfälle erstellt, um jede Aktion in unabhängigen Methoden auszuführen.

Sie können beobachten, dass wir jeder Methode einen Gruppenparameter zugeordnet haben, der einen bestimmten Wert enthält.

Grundsätzlich sind dies die Namen der differenzierenden Gruppen, dh "strong_ties" & "bonding".

  • Die erste und dritte Methode sind mit "bonding", "strong_ties" gekennzeichnet. Wenn XML in einer der Gruppen aktualisiert wird, wird dieser Testfall ausgeführt.
  • Die zweite Methode ist nur als "Bonding" -Gruppe gekennzeichnet. Dies bedeutet, dass XML mit der Bonding-Gruppe aktualisiert wird, wenn es aktualisiert wird. Nur in diesem Fall wird dieser Testfall ausgeführt.
  • Der vierte Testfall ist mit der Gruppe strong_ties gekennzeichnet. Dies bedeutet, dass dieser Testfall nur ausgeführt wird, wenn XML mit dem Gruppennamen strong_ties aktualisiert wird.
  • Last but not least wird der fünfte Testfall an die Bonding-Gruppe angehängt. Dies bedeutet, dass dieser Testfall nur ausgeführt wird, wenn XML mit dem Namen der Bonding-Gruppe aktualisiert wird.

Insgesamt haben wir also 4 Szenarien;

  1. Wir möchten alle Testfälle unabhängig vom Gruppennamen ausführen. In diesem Fall entfernen wir das Group-Tag aus der Ausführung von XML.
  1. Wir möchten Testfall wenige Tests ausführen, die sich nur auf eine der Gruppen beziehen, dh strong_ties oder Bindung
  • Siehe:

  • In diesem Video wird der Gruppenparameter beim Ausführen von XML kommentiert. Daher sehen Sie, dass alle Testfälle ausgeführt wurden.
  • In Fortsetzung von Video, jetzt haben wir den Gruppennamen in XML aufgenommen, können Sie nur Testfälle sehen, die für diese Gruppe spezifisch sind und nur ausgeführt werden.
  1. Wir verwenden den Ausschlussmechanismus, um den Testfall auszuschließen:
  • Siehe

  • Sie sehen, dass wir einige Testfälle (tc02) ausgeschlossen haben, indem wir ihren Namen in XML geschrieben haben. Im Endergebnis liefen die genannten Testfälle nicht.
  1. Zuletzt verwenden wir den Include-Testmechanismus, um die Testfälle einzuschließen (tc01LaunchURL, tc03EnterCredentials und tc05VerifyHyperlinks).
    • Siehe

    • In diesem Video sehen Sie, dass in XML erwähnte Testfälle nur während der Testausführung ausgeführt werden.

    Bitte laden Sie den Code von der angegebenen URL herunter, er enthält alle Arten von testXML:

    Laden Sie den obigen Code herunter

    Fazit

    Wir haben hier eine relativ neue Methode zum Ausführen von Testfällen mit XML im Maven-Projekt kennengelernt.

    Wir haben zunächst eine kurze Einführung in testNG gegeben und mit der vollständigen technischen Spezifikation der Gruppen, Ausschließen und Einschließen fortgefahren.