guide generate extent reports selenium webdriver
So generieren Sie Extent-Berichte in Selenium WebDriver:
Selenium bietet integrierte Berichte mit Frameworks wie JUnit und TestNG.
Obwohl die integrierten Berichte Informationen zu den Schritten enthalten, die als Teil des Testfalls ausgeführt werden, müssen sie stärker angepasst werden, um mit allen wichtigen Projektbeteiligten geteilt zu werden.
Extent Reports ist ein anpassbarer HTML-Bericht, der von Anshoo Arora entwickelt wurde und mithilfe von JUnit- und TestNG-Frameworks in Selenium WebDriver integriert werden kann.
In diesem Tutorial erhalten Sie eine vollständige Schritt-für-Schritt-Anleitung zum Generieren von Extent Reports in Selenium WebDrive mit Beispielcodes.
Unten finden Sie die Momentaufnahme des vom TestNG-Framework bereitgestellten integrierten Berichts:
Umfangsberichte bieten im Vergleich zu den über JUnit und TestNG generierten integrierten Berichten mehrere Vorteile, z. B. Kreisdiagrammdarstellung, schrittweise Testberichterstellung, Hinzufügen von Screenshots usw. bei jedem Testschritt und eine präsentierbare Benutzeroberfläche, die gemeinsam genutzt werden kann alle Stakeholder des Projekts.
Unten finden Sie eine Momentaufnahme eines Beispielberichts zum Umfang in der Kreisdiagrammdarstellung
((Hinweis:Klicken Sie auf ein Bild, um es zu vergrößern.)
Was du lernen wirst:
- Vorteile der Verwendung von Extent Reports
- Verwenden von Extent Reports in Selenium Webdriver
- Beispielcode für Extent Reports
- Testzusammenfassungsbericht
- Kreisdiagramm Grafischer Bericht
- Screenshot in Extent Reports erfassen
- Fazit
- Literatur-Empfehlungen
Vorteile der Verwendung von Extent Reports
Umfangsberichte bieten mehrere Vorteile, von denen im Folgenden nur einige erläutert werden.
- Anpassbarer HTML-Bericht mit schrittweiser und Kreisdiagrammdarstellung.
- Zeigt die Zeit an, die für die Ausführung des Testfalls im Bericht benötigt wird.
- Jeder Testschritt kann einem Screenshot zugeordnet werden.
- Mehrere Testfallläufe innerhalb einer einzelnen Suite können einfach verfolgt werden.
- Kann problemlos in TestNG- und JUnit-Frameworks integriert werden.
Verwenden von Extent Reports in Selenium Webdriver
Umfangsberichte enthalten zwei Hauptklassen, die häufig verwendet werden.
- ExtentReports-Klasse
- ExtentTest-Klasse
Syntax:
ExtentReports-Berichte = neue ExtentReports ('Pfad des Verzeichnisses zum Speichern der resultierenden HTML-Datei', true / false);
Software zum Ausspionieren von Handys
ExtentTest test = reports.startTest ('TestName');
Die Klasse 'Extent Reports' wird verwendet, um einen HTML-Bericht für den benutzerdefinierten Pfad zu generieren. Das Boolesche Flag gibt an, ob der vorhandene Bericht überschrieben oder ein neuer Bericht erstellt werden muss. Der Wert 'true' ist der Standardwert. Dies bedeutet, dass alle vorhandenen Daten überschrieben werden.
Die Extent Test-Klasse wird verwendet, um Testschritte im generierten HTML-Bericht zu protokollieren.
Die obigen Klassen können mit den häufig verwendeten integrierten Methoden verwendet werden, die unten angegeben sind.
- startTest
- endTest
- Log
- spülen
Die Methoden startTest und endTest werden verwendet, um die Voraussetzungen und Nachbedingungen eines Testfalls auszuführen, während die Protokollmethode verwendet wird, um den Status jedes Testschritts im resultierenden HTML-Bericht zu protokollieren. Mit der Flush-Methode werden alle vorherigen Daten im Bericht gelöscht und ein neuer Bericht erstellt.
Der Teststatus kann einen der folgenden Werte annehmen:
- BESTEHEN
- SCHEITERN
- ÜBERSPRINGEN
- DIE INFO
Syntax:
reports.endTest ();
test.log (LogStatus.PASS, 'Test bestanden');
test.log (LogStatus.FAIL, 'Test fehlgeschlagen');
test.log (LogStatus.SKIP, 'Test übersprungen');
test.log (LogStatus.INFO, 'Test Info');
Die Protokollmethode akzeptiert zwei Parameter, der erste Parameter ist der Teststatus und der zweite Parameter ist die Nachricht, die auf den resultierenden Bericht gedruckt werden soll.
Beispielcode für Extent Reports
Im Folgenden wird die Abfolge der Schritte zur Verwendung von Extent Reports in Selenium Webdriver in Junit aufgeführt.
Schritt 1:
Extent Reports können direkt in Selenium WebDriver verwendet werden, indem die JAR-Datei - Extentreports-Java-2.41.2.jar - importiert wird hier heruntergeladen .
Extrahieren Sie nach dem Herunterladen der ZIP-Datei den Inhalt der ZIP-Datei in einen Ordner.
Schritt 2:
Fügen Sie die in der ZIP-Datei enthaltenen JAR-Dateien mit der Option zum Projekterstellungspfad hinzu Erstellungspfad -> Erstellungspfad konfigurieren.
Schritt 3:
Erstellen Sie eine neue JAVA-Klasse mit dem folgenden Code für Extent Reports.
Bester Junk File Cleaner für Windows 10
package com.objectrepository.demo; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import com.relevantcodes.extentreports.ExtentReports; import com.relevantcodes.extentreports.ExtentTest; import com.relevantcodes.extentreports.LogStatus; public class ExtentDemo { static ExtentTest test; static ExtentReports report; @BeforeClass public static void startTest() { report = new ExtentReports(System.getProperty('user.dir')+'\ExtentReportResults.html'); test = report.startTest('ExtentDemo'); } @Test public void extentReportsDemo() { System.setProperty('webdriver.chrome.driver', 'D:\SubmittalExchange_TFS\QA\Automationrdparty\chrome\chromedriver.exe'); WebDriver driver = new ChromeDriver(); driver.get('https://www.google.co.in'); if(driver.getTitle().equals('Google')) { test.log(LogStatus.PASS, 'Navigated to the specified URL'); } else { test.log(LogStatus.FAIL, 'Test Failed'); } } @AfterClass public static void endTest() { report.endTest(test); report.flush(); } }
Code Erklärung
@Vor dem Unterricht:
Der obige Code demonstriert die Verwendung von Extent Reports. Die Testfallausführung beginnt mit der startTest-Methode, bei der das Extent Reports-Objekt initialisiert wird. Der an das Extent Reports-Objekt übergebene Parameter kann ein beliebiger gültiger benutzerdefinierter Pfad sein.
Der Einfachheit halber das Beispiel Verwendet das aktuelle Projektverzeichnis, um den resultierenden HTML-Bericht zu generieren. Die nächste Anweisung beinhaltet die Initialisierung des ExtentTest-Objekts mit dem Rückgabewert der startTest-Methode.
@Prüfung:
Die Testklasse umfasst die folgenden Schritte:
- Öffnen Sie den Chrome-Browser mit dieser URL https://www.google.com
- Überprüfen Sie den Seitentitel mit dem erwarteten Wert, sobald die Seite geöffnet wird.
- Protokollieren Sie den Testfallstatus als PASS / FAIL mithilfe der Protokollmethode von Extent Reports.
@Nach dem Unterricht:
After Class enthält den Code zum Ausführen der Nachbedingungen des Testfalls, z. B. Beenden des Tests mit der endTest-Methode und Löschen des Berichts. Bitte beachten Sie, dass der Bericht nicht generiert wird, wenn die flush () -Methode nicht verwendet wird.
T. ist ein zusammenfassender Bericht
Kreisdiagramm Grafischer Bericht
Screenshot in Extent Reports erfassen
Die Bildschirmaufnahme zusammen mit der Testausführung hilft einem Tester beim Debuggen des Testskripts, wenn während der Testausführung Probleme auftreten. Es ist jedoch ratsam, Screenshot aufnehmen Nur wenn ein Testschritt fehlschlägt, da die Bilder mehr Speicher verbrauchen, wenn sie bei jedem Testschritt erfasst werden.
Mit dem folgenden Code können Screenshots für jeden fehlgeschlagenen Schritt aufgenommen werden.
test.log(LogStatus.FAIL,test.addScreenCapture(capture(driver))+ 'Test Failed'); public static String capture(WebDriver driver) throws IOException { File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); File Dest = new File('src/../ErrImages/' + System.currentTimeMillis() + '.png'); String errflpath = Dest.getAbsolutePath(); FileUtils.copyFile(scrFile, Dest); return errflpath; }
Code Erklärung
Erfassungsmethode:
# 1) Die Methode getScreenShotAs () wird verwendet, um den Screenshot der aktuellen WebDriver-Instanz zu erfassen und in verschiedenen Ausgabeformen zu speichern.
Datei scrFile = ((TakesScreenshot) Treiber) .getScreenshotAs (OutputType.FILE);
#zwei) Die Methode getScreenShotAs gibt ein Dateiobjekt zurück, das in einer Dateivariablen gespeichert werden muss. Beachten Sie, dass das Umwandeln der Webtreiberinstanz in Take Screenshot obligatorisch ist, wenn Sie die Methode verwenden möchten.
#3) File Dest = neue Datei ('src /../ ErrImages /' + System.currentTimeMillis () + '.png');
# 4) Die obige Anweisung erstellt einen Ordner mit dem Namen 'ErrImages' im Ordner 'src' und speichert den Dateinamen als aktuelle Systemzeit.
# 5) String errflpath = Dest.getAbsolutePath ();
FileUtils.copyFile (scrFile, Dest);
Rückkehrerpfad;
# 6) Die obigen Anweisungen kopieren die Fehlerbilder in den Zielordner.
Protokollmethode:
Die Protokollmethode verwendet die integrierte Methode addScreenCapture der Extent Test-Klasse, um den Screenshot abzurufen und an den Extent Report anzuhängen.
Was bedeutet undefinierte Referenz in c ++?
test.log (LogStatus.FAIL, test.addScreenCapture (Erfassung (Treiber)) + 'Test fehlgeschlagen');
Die in der Protokollmethode aufgezeichnete Nachricht kann eine detaillierte Nachricht enthalten, die erwartete und tatsächliche Ergebnisse für Debugging-Zwecke enthält.
Ausgabe:
Fazit
Extent Reports sind eine der besten integrierten Methoden zum Generieren anpassbarer HTML-Berichte mit einer ansprechenden Benutzeroberfläche im Selenium-Webtreiber.
Es handelt sich um eine Open-Source-Bibliothek, die einfach mit Selenium konfiguriert werden kann und somit die beste Wahl für Automatisierungstester ist.
Ich hoffe, Sie hätten jetzt eine klare Vorstellung von Extent Reports.
Literatur-Empfehlungen
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- Implementierung unseres ersten WebDriver-Skripts - Selenium WebDriver Tutorial # 10
- FAQs zu Selen
- Umgang mit Warnungen / Popups in Selenium WebDriver - Selenium Tutorial # 16
- Implizites und explizites Warten in Selenium WebDriver (Arten von Selen-Wartezeiten)
- So führen Sie Selenium WebDriver in verschiedenen gängigen Browsern aus
- WebDriver Gesamte Einrichtung und Installation mit Eclipse - Selenium Tutorial # 9