how use testng framework
In den letzten Tutorials haben wir die grundlegenden und häufig verwendeten WebDriver-Befehle beleuchtet. Wir haben auch die Lokalisierungsstrategien von UI-Elementen und deren Aufnahme in die Testskripte kennengelernt. Und deshalb haben wir unsere sehr entwickelt erstes WebDriver Automation-Testskript .
In diesem Tutorial werden wir alles über TestNG, seine Funktionen und seine Anwendungen diskutieren.
TestNG ist ein Voraus-Framework Entwickelt, um die Vorteile sowohl der Entwickler als auch der Tester zu nutzen. Für Benutzer von JUnit scheint TestNG mit einigen erweiterten Funktionen nicht anders zu sein. Mit dem Beginn der Frameworks gewann JUnit einen enormen Gewinn Popularität bei Java-Anwendungen, Java-Entwicklern und Java-Testern, wobei die Codequalität erheblich gesteigert wird.
Siehe auch=> JUnit Tutorial und seine Verwendung in Selenium-Skripten
Obwohl JUnit ein einfach zu bedienendes und unkompliziertes Framework ist, hat es seine eigenen Einschränkungen, die die Notwendigkeit des Bringens mit sich bringen TestNG ins Bild. TestNG wurde von einem renommierten Programmierer namens 'Cedric Beust' erstellt. TestNG ist ein Open Source Framework, das unter der Apache Software License vertrieben wird und zum Download zur Verfügung steht.
Über unsere Anforderung, TestNG mit WebDriver einzuführen, geht hervor, dass es ein effizientes und effektives Testergebnisformat bietet, das wiederum mit den Stakeholdern geteilt werden kann, um einen Einblick in den Zustand des Produkts / der Anwendung zu erhalten, wodurch der Nachteil der Unfähigkeit von WebDriver zur Generierung beseitigt wird Testberichte. TestNG verfügt über einen integrierten Ausnahmebehandlungsmechanismus, mit dem das Programm ausgeführt werden kann, ohne unerwartet beendet zu werden.
Sowohl TestNG als auch JUnit gehören zur selben Familie von Unit Frameworks, in denen TestNG eine erweiterte Version von JUnit ist und in der aktuellen Test-Ära häufiger verwendet wird.
Was du lernen wirst:
- Merkmale von TestNG
- TestNG-Installation in Eclipse
- Erstellung eines TestNG-Beispielprojekts
- TestNG-Klasse erstellen
- Ausführen des TestNG-Skripts
- HTML-Berichte
- Festlegen der Priorität in TestNG
- Code-exemplarische Vorgehensweise
- TestNG-Anmerkungen
- Fazit
- Literatur-Empfehlungen
Merkmale von TestNG
- Unterstützung für Anmerkungen
- Unterstützung für die Parametrierung
- Erweiterte Ausführungsmethode, für die keine Testsuiten erstellt werden müssen
- Unterstützung für datengesteuertes Testen mit Datenanbietern
- Ermöglicht dem Benutzer das Festlegen von Ausführungsprioritäten für die Testmethoden
- Unterstützt eine bedrohungssichere Umgebung, wenn mehrere Threads ausgeführt werden
- Unterstützt problemlos die Integration mit verschiedenen Tools und Plug-Ins wie Build-Tools (Ant, Maven usw.) und Integrated Development Environment (Eclipse).
- Erleichtert dem Benutzer die effektive Erstellung von Berichten mithilfe von ReportNG
Es gibt verschiedene Vorteile, die TestNG JUnit überlegen machen. Einige von ihnen sind:
- Erweiterte und einfache Anmerkungen
- Ausführungsmuster können eingestellt werden
- Gleichzeitige Ausführung von Testskripten
- Testfallabhängigkeiten können festgelegt werden
Anmerkungen wird sowohl in TestNG als auch in JUnit ein '@' -Symbol vorangestellt.
Beginnen wir nun mit dem Installations- und Implementierungsteil.
Online-Raster für die Automatisierung von Selentests
# 1) LambdaTest
Das TestNG-Framework wird am besten mit einem Cloud-Selenium-Grid wie LambdaTest verwendet, mit dem Sie parallele Tests auf über 2000 realen Browsern und Betriebssystemen durchführen können, ohne ein internes Selenium-Grid warten zu müssen.
Sie können eine Vielzahl von Protokollen wie Befehlsprotokolle, Netzwerkprotokolle, Selenium-Rohprotokolle, Metadaten usw. sowie eine vollständige Videoaufzeichnung Ihres Selenium-Testskripts zum Debuggen abrufen.
LambdaTest bietet auch Integrationen mit mehreren CI / CD-Tools wie Jenkins, Travis CI, CircleCI usw. für kontinuierliche Tests. Mit LambdaTest können Sie auch zahlreiche Projektmanagement-Tools für eine einfache Fehlerprotokollierung integrieren.
=> Besuchen Sie die LambdaTest-WebsiteTestNG-Installation in Eclipse
Führen Sie die folgenden Schritte aus, um TestNG herunterzuladen und auf Eclipse zu installieren:
Schritt 1:: Starten Sie die Eclipse-IDE -> Klicken Sie im Menü auf die Option Hilfe -> Wählen Sie in der Dropdown-Liste die Option „Eclipse Marketplace ..“.
Schritt 2:: Geben Sie das Schlüsselwort 'TestNG' in das Suchtextfeld ein und klicken Sie wie unten gezeigt auf die Schaltfläche 'Los'.
Schritt 3:: Sobald der Benutzer auf die Schaltfläche 'Los' klickt, werden die mit der Suchzeichenfolge übereinstimmenden Ergebnisse angezeigt. Jetzt kann der Benutzer auf die Schaltfläche Installieren klicken, um TestNG zu installieren.
Schritt 4:: Sobald der Benutzer auf die Schaltfläche Installieren klickt, wird der Benutzer mit einem Fenster aufgefordert, die Installation zu bestätigen. Klicken Sie auf die Schaltfläche 'Bestätigen'.
Schritt 5:: Im nächsten Schritt werden Sie von der Anwendung aufgefordert, die Lizenz zu akzeptieren und dann auf die Schaltfläche „Fertig stellen“ zu klicken.
Schritt 6:: Die Installation wird jetzt gestartet und der Fortschritt kann wie folgt angezeigt werden:
Es wird empfohlen, unsere Sonnenfinsternis neu zu starten, um die vorgenommenen Änderungen widerzuspiegeln.
Nach dem Neustart kann ein Benutzer die TestNG-Installation überprüfen, indem er in der Menüleiste unter „Fenster“ zu „Einstellungen“ navigiert. Siehe die folgende Abbildung für das gleiche.
(Klicken Sie auf das Bild, um es vergrößert anzuzeigen.)
Erstellung eines TestNG-Beispielprojekts
Beginnen wir mit der Erstellung des TestNG-Projekts in der Eclipse-IDE.
Schritt 1:: Klicken Sie im Menü auf die Option Datei -> Klicken Sie auf Neu -> Java-Projekt auswählen.
Schritt 2:: Geben Sie den Projektnamen als 'DemoTestNG' ein und klicken Sie auf 'Weiter'. Klicken Sie abschließend auf die Schaltfläche „Fertig stellen“ und Ihr Java-Projekt ist fertig.
Schritt 3:: Der nächste Schritt besteht darin, die TestNG-Bibliothek in dem neu erstellten Java-Projekt zu konfigurieren. Klicken Sie dazu unter Configure Build Path auf die Registerkarte „Libraries“. Klicken Sie wie unten gezeigt auf 'Bibliothek hinzufügen'.
Schritt 4:: Dem Benutzer wird ein Dialogfeld angezeigt, in dem er aufgefordert wird, die zu konfigurierende Bibliothek auszuwählen. Wählen Sie TestNG und klicken Sie auf die Schaltfläche 'Weiter', wie unten im Bild gezeigt. Klicken Sie am Ende auf die Schaltfläche „Fertig stellen“.
Das TestNG wird nun zum Java-Projekt hinzugefügt und die erforderlichen Bibliotheken werden beim Erweitern des Projekts im Paket-Explorer angezeigt.
Fügen Sie alle heruntergeladenen Selenium-Bibliotheken und -Gläser in den Erstellungspfad des Projekts ein, wie im vorherigen Lernprogramm dargestellt.
TestNG-Klasse erstellen
Nachdem wir alle grundlegenden Einstellungen vorgenommen haben, um mit der Erstellung des Testskripts mit TestNG zu beginnen. Erstellen wir ein Beispielskript mit TestNG.
Schritt 1:: Erweitern Sie das Projekt 'DemoTestNG' und wechseln Sie zum Ordner 'src'. Klicken Sie mit der rechten Maustaste auf das Paket 'src' und navigieren Sie zu 'Neu' -> 'Andere'.
Schritt 2:: Erweitern Sie die Option TestNG, wählen Sie die Klassenoption „TestNG“ und klicken Sie auf die Schaltfläche „Weiter“.
Schritt 3:: Geben Sie die erforderlichen Details wie folgt an. Geben Sie den Quellordner, den Paketnamen und den TestNG-Klassennamen an und klicken Sie auf die Schaltfläche Fertig stellen. Wie aus dem folgenden Bild ersichtlich ist, kann der Benutzer auch verschiedene TestNG-Notationen überprüfen, die sich im Testklassenschema widerspiegeln würden. TestNG-Anmerkungen werden später in dieser Sitzung erläutert.
Die oben erwähnte TestNG-Klasse wird mit dem Standardschema erstellt.
Nachdem wir die Basis für das TestNG-Testskript erstellt haben, fügen wir nun den eigentlichen Testcode ein. Wir verwenden denselben Code wie in der vorherigen Sitzung.
Szenario::
- Starten Sie den Browser und öffnen Sie 'gmail.com'.
- Überprüfen Sie den Titel der Seite und drucken Sie das Überprüfungsergebnis aus.
- Geben Sie den Benutzernamen und das Passwort ein.
- Klicken Sie auf die Schaltfläche Anmelden.
- Schließen Sie den Webbrowser.
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(); } }
Code Erläuterung zu TestNG
1) @Test - @Test ist einer der TestNG-Anmerkungen . Durch diese Annotation erkennt die Programmausführung, dass die als @Test annotierte Methode eine Testmethode ist. Um verschiedene TestNG-Annotationen verwenden zu können, müssen wir das Paket importieren. “ importieren org.testng.annotations. * ”.
zwei) Beim Erstellen von Testskripten mit TestNG ist die Methode main () nicht erforderlich. Die Programmausführung erfolgt anhand von Anmerkungen.
3) In einer Anweisung haben wir die Assert-Klasse verwendet, während wir den erwarteten und den tatsächlichen Wert verglichen haben. Die Assert-Klasse wird verwendet, um verschiedene Überprüfungen durchzuführen. Um verschiedene Aussagen verwenden zu können, müssen wir importieren “ importieren org.testng.Assert ”.
Ausführen des TestNG-Skripts
Das TestNG-Testskript kann folgendermaßen ausgeführt werden:
=> Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle innerhalb der Klasse im Editor oder auf die Java-Klasse im Paket-Explorer, wählen Sie die Option 'Ausführen als' und klicken Sie auf 'TestNG-Test'.
Das TestNG-Ergebnis wird in zwei Fenstern angezeigt:
- Konsolenfenster
- TestNG-Ergebnisfenster
Die Ergebnisfenster finden Sie in den folgenden Screencasts:
So starten Sie Automatisierungstests von Grund auf neu
(Klicken Sie auf das Bild, um es vergrößert anzuzeigen.)
HTML-Berichte
TestNG bietet eine hervorragende Möglichkeit, benutzerlesbare und verständliche HTML-Berichte für die Testausführungen zu erstellen. Diese Berichte können in jedem Browser angezeigt werden und können auch mithilfe der integrierten Browserunterstützung von Eclipse angezeigt werden.
Führen Sie die folgenden Schritte aus, um den HTML-Bericht zu erstellen:
Schritt 1:: Führen Sie die neu erstellte TestNG-Klasse aus. Aktualisieren Sie das Projekt mit der TestNG-Klasse, indem Sie mit der rechten Maustaste darauf klicken und die Option „Aktualisieren“ auswählen.
Schritt 2:: Ein Ordner mit dem Namen 'Testausgabe' wird im Projekt auf der Ordnerebene 'src' generiert. Erweitern Sie den Ordner 'test-output' und öffnen Sie ihn mit dem Eclipse-Browser in der Datei 'emailable-report.html'. Die HTML-Datei zeigt das Ergebnis der letzten Ausführung an.
Schritt 3:: Der HTML-Bericht soll in der Eclipse-Umgebung geöffnet werden. Siehe das folgende Bild für das gleiche.
Aktualisieren Sie die Seite, um die Ergebnisse für neue Ausführungen anzuzeigen, falls vorhanden.
Festlegen der Priorität in TestNG
Code-Auszug
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() { } }
Code-exemplarische Vorgehensweise
Wenn ein Testskript aus mehr als einer Testmethode besteht, können die Ausführungspriorität und -sequenz mithilfe der TestNG-Annotation „@Test“ und durch Festlegen eines Werts für den Parameter „Priorität“ festgelegt werden.
Im obigen Codeausschnitt werden alle Methoden mit der Hilfe @Test kommentiert und die Prioritäten auf 0, 1 und 2 gesetzt. Die Ausführungsreihenfolge, in der die Testmethoden ausgeführt werden würden, lautet also:
- Methode 1
- Methode2
- Methode3
Unterstützung für Anmerkungen
In TestNG und JUnit sind eine Reihe von Anmerkungen enthalten. Der subtile Unterschied besteht darin, dass TestNG JUnit einige weitere Anmerkungen zur Verfügung stellt.
TestNG-Anmerkungen
Im Folgenden finden Sie eine Liste der nützlichsten und günstigsten Anmerkungen in TestNG:
Anmerkung | Beschreibung |
---|---|
@Nach dem Unterricht | Die Annotation benachrichtigt das System, dass die als @AfterClass annotierte Methode ausgeführt werden muss, nachdem die letzte Testmethode innerhalb derselben Testklasse ausgeführt wurde |
@Prüfung | Die Annotation benachrichtigt das System, dass die als @Test annotierte Methode eine Testmethode ist |
@BeforeSuite | Die Annotation benachrichtigt das System, dass die als @BeforeSuite annotierte Methode ausgeführt werden muss, bevor die Tests in der gesamten Suite ausgeführt werden |
@ AfterSuite | Die Annotation benachrichtigt das System, dass die als @AfterSuite annotierte Methode ausgeführt werden muss, nachdem die Tests in der gesamten Suite ausgeführt wurden |
@BeforeTest | Die Annotation benachrichtigt das System, dass die als @BeforeTest annotierte Methode ausgeführt werden muss, bevor eine Testmethode innerhalb derselben Testklasse ausgeführt wird |
@ AfterTest | Die Annotation benachrichtigt das System, dass die als @AfterTest annotierte Methode ausgeführt werden muss, nachdem eine Testmethode innerhalb derselben Testklasse ausgeführt wurde |
@Vor dem Unterricht | Die Annotation benachrichtigt das System, dass die als @BeforeClass annotierte Methode ausgeführt werden muss, bevor die erste Testmethode innerhalb derselben Testklasse ausgeführt wird |
@BeforeMethod | Die Annotation benachrichtigt das System, dass die als @BeforeMethod annotierte Methode ausgeführt werden muss, bevor eine beliebige Testmethode innerhalb derselben Testklasse ausgeführt wird |
@ AfterMethod | Die Annotation benachrichtigt das System, dass die als @AfterMethod annotierte Methode ausgeführt werden muss, nachdem alle Testmethoden innerhalb derselben Testklasse ausgeführt wurden |
@BeforeGroups | Die Annotation benachrichtigt das System, dass die als @BeforeGroups annotierte Methode eine Konfigurationsmethode ist, die eine Gruppe auflistet und die ausgeführt werden muss, bevor die erste Testmethode der Gruppe ausgeführt wird |
@ AfterGroups | Die Annotation benachrichtigt das System, dass die als @AfterGroups annotierte Methode eine Konfigurationsmethode ist, die eine Gruppe auflistet und die nach Ausführung der letzten Testmethode der Gruppe ausgeführt werden muss |
Hinweis : Viele der oben genannten Anmerkungen können auch im JUnit 3- und JUnit 4-Framework ausgeführt werden.
Fazit
Mit diesem Tutorial haben wir versucht, Sie mit einem Java-basierten Testframework namens TestNG vertraut zu machen. Wir haben die Sitzung mit der Installation des Frameworks begonnen und sind mit der Skripterstellung und den erweiterten Themen umgegangen. Wir haben alle von TestNG bereitgestellten Anmerkungen besprochen. Wir haben unser erstes TestNG-Testskript mithilfe von Anmerkungen und Assert-Anweisungen implementiert und ausgeführt.
Artikelübersicht:
- TestNG ist ein fortschrittliches Framework, mit dem die Vorteile sowohl von Entwicklern als auch von Testern genutzt werden können.
- TestNG ist ein Open Source Framework, das unter der Apache Software License vertrieben wird und zum Download zur Verfügung steht.
- TestNG wird aufgrund seiner erweiterten Funktionen als JUnit überlegen angesehen.
- Funktionen von TestNG
- Unterstützung für Anmerkungen
- Erweiterte Ausführungsmethode, für die keine Testsuiten erstellt werden müssen
- Unterstützung für die Parametrierung
- Unterstützung für datengesteuertes Testen mit Datenanbietern
- Festlegen von Ausführungsprioritäten für die Testmethoden
- Unterstützt eine bedrohungssichere Umgebung, wenn mehrere Threads ausgeführt werden
- Unterstützt problemlos die Integration mit verschiedenen Tools und Plug-Ins wie Build-Tools (Ant, Maven usw.) und Integrated Development Environment (Eclipse).
- Erleichtert dem Benutzer die effektive Erstellung von Berichten mithilfe von ReportNG
- Vorteile von TestNG gegenüber JUnit
- Vorab und einfache Anmerkungen hinzugefügt
- Ausführungsmuster können eingestellt werden
- Gleichzeitige Ausführung von Testskripten
- Testfallabhängigkeiten können festgelegt werden
- TestNG ist frei verfügbar und kann mithilfe von Eclipse Market problemlos in der Eclipse-IDE installiert werden.
- Bei der Installation wäre TestNG als Bibliothek in der Eclipse-Umgebung verfügbar.
- Erstellen Sie ein neues Java-Projekt und konfigurieren Sie den Erstellungspfad mithilfe einer TestNG-Bibliothek.
- Erstellen Sie eine neue TestNG-Klasse, indem Sie das erstellte TestNG-Projekt erweitern und in den Ordner 'src' wechseln. Klicken Sie mit der rechten Maustaste auf das Paket 'src' und navigieren Sie zu 'Neu' -> 'Andere'. Wählen Sie die Option TestNG-Klasse.
- @Test ist eine der von TestNG bereitgestellten Anmerkungen. Durch diese Annotation erkennt die Programmausführung, dass die als @Test annotierte Methode eine Testmethode ist. Um verschiedene TestNG-Annotationen verwenden zu können, müssen wir das Paket importieren. “ importieren org.testng.annotations. * ”.
- Beim Erstellen von Testskripten mit TestNG ist die Methode main () nicht erforderlich.
- Wir verwenden die Assert-Klasse, während wir den erwarteten und den tatsächlichen Wert vergleichen. Die Assert-Klasse wird verwendet, um verschiedene Überprüfungen durchzuführen. Um verschiedene Aussagen verwenden zu können, müssen wir importieren “ importieren org.testng.Assert ”.
- Wenn ein Testskript aus mehr als einer Testmethode besteht, können die Ausführungspriorität und -sequenz mithilfe der TestNG-Annotation „@Test“ und durch Festlegen eines Werts für den Parameter „priority“ festgelegt werden.
- TestNG kann automatisch lesbare Testausführungsberichte erstellen. Diese Berichte können in jedem Browser angezeigt werden und sie können auch mithilfe der integrierten Browserunterstützung von Eclipse angezeigt werden.
Nächstes Tutorial # 13 : Wenn wir mit den kommenden Tutorials in der Selenium-Reihe fortfahren, konzentrieren wir uns auf die verschiedenen Arten von Webelementen, die auf den Webseiten verfügbar sind. Deshalb, Im nächsten Tutorial würden wir uns auf „Dropdowns“ konzentrieren und ihre Handhabungsstrategien anwenden. Wir würden auch die Select-Klasse von WebDriver und ihre Methoden zum Auswählen von Werten in den Dropdown-Listen diskutieren.
Eine Bemerkung für die Leser : Während sich unser nächstes Tutorial der Selenium-Reihe im Verarbeitungsmodus befindet, können Leser mit dem TestNG-Framework beginnen, ihre eigenen grundlegenden WebDriver-Skripte zu erstellen.
Um erweiterte Skripte und Konzepte zu erhalten, fügen Sie möglichst viele Anmerkungen und Zusicherungen in Ihre TestNG-Klassen ein und führen Sie sie in der TestNG-Umgebung aus. Analysieren Sie auch die von TestNG generierten HTML-Berichte.
Literatur-Empfehlungen
- Verwendung von Firebug zum Erstellen von Selenium-Skripten - Selenium-Tutorial Nr. 4
- Einführung in JUnit Framework und seine Verwendung in Selenium Script - Selenium Tutorial # 11
- Erfahren Sie, wie Sie TestNG-Anmerkungen in Selen verwenden (mit Beispielen)
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver
- So suchen Sie Elemente in Chrome- und IE-Browsern zum Erstellen von Selenium-Skripten - Selenium-Lernprogramm Nr. 7
- Selenium Framework Erstellung und Zugriff auf Testdaten aus Excel - Selenium Tutorial # 21
- Generika und Testsuiten erstellen - Selenium Tutorial # 22
- Ausführliche Eclipse-Tutorials für Anfänger