Erstellen Sie Benutzerdefinierte TestNG-Report - WebDriver
Ich versuche zu implementieren org.testng IReporter-Schnittstelle. Mein Java ist nicht so toll, Basis auf einige Beispiel fand ich online, ich war in der Lage zu schaffen, ein Reporter der Klasse. Das problem das ich habe ist, wie zu benutzen es und wo ich es nennen und wie und welche Parameter zu übergeben?
public class Reporter implementiert IReporter {
public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory){
ISuiteResult results =suites.get(0).getResults().get("Sanity Suite");
ITestContext context = results.getTestContext();
IResultMap passedTests = context.getPassedTests();
IResultMap failedTests = context.getFailedTests();
//Print all test exceptions...
for( ITestResult r: failedTests.getAllResults()) {
System.out.println( r.getThrowable());
}
}
}
Ich habe zum Beispiel diese WebDriver Selenium TestNG test:
public class VerifyTest erstreckt TestBase {
@Test
public void test1() {
verifyTrue(false);
verifyEquals("pass", "fail");
verifyFalse(true);
}
@Test
public void test2() {
verifyTrue(false);
assertEquals("pass", "fail");
verifyFalse(true);
}
Wie würde ich meine Reporter um ein anpassen der Bericht am Ende der Laufzeit???
Danke!
InformationsquelleAutor David Tishkoff | 2012-04-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur erweitern Sie Ihre Skelett oben, um erstellen Sie Ihre Ergebnisse, wenn Sie es wollen, werden .xml -, .html, text-Datei, etc...
Die Parameter übergeben, um Ihre generateReport () - Methode enthalten, die das gesamte Ergebnis der test-suite, so dass alles da ist. Wenn Sie verwirrt sind, werfen Sie einen Blick auf die bestehenden Reporter (Blick auf alle Klassen, implementieren IReporter) und sehen, wie Sie das abrufen Ihrer Ergebnisse.
InformationsquelleAutor Cedric Beust
David, können Sie Ihre benutzerdefinierten reporter, um Ihre testng.xml in Fall werden Sie den Aufruf Ihrer tests über eine xml-suite-Abschnitt.
Falls Sie programmgesteuert aufrufen den, dann müssen Sie es hinzufügen durch den code, wie beschrieben, @ Läuft TestNG programmgesteuert
Wenn Sie aufrufen die tests von der Kommandozeile finden Sie diese
Dieser reporter würde aufgerufen werden, die von TestNG am Ende alle der ausgeführt wird, wenn Sie geben in eine der oben genannten Möglichkeiten.
Die Ergebnisse aller testcases sind vergangen, TestNG, wenn es ruft die generateReport Methode Ihrer Zuhörer. So dass Ihre Ergebnisse variable enthält alle für den pass-fail-Informationen Ihrer suite. Wenn Sie möchten, um benutzerdefinierte Daten auf Fehler, dann müssen Sie explizit den Wert der Testurteil Objekt in Ihrem afterInvocation Methoden durch die Verwendung setAttribute Funktion.
Wenn Sie sagen, dass Sie den code ändern, ändern Sie assert, um zu überprüfen? Behauptet anzuhalten, wo Sie es versäumen, in der Erwägung, dass zu überprüfen ist eine weiche geltend machen, wie in, es muss nicht angehalten werden, aber es würde noch mark, den Fall als vergehen. Möchten Sie vielleicht einen Blick auf : seleniumexamples.com/blog/guide/using-soft-assertions-in-testng um eine Idee zu bekommen, wie man mit diesen umgehen..
InformationsquelleAutor niharika_neo
Ich ein Projekt erstellt, ist ein Beispiel für die Generierung einer angepassten Bericht.
Die grundlegende Idee ist das erstellen einer Listener-Klasse, und verweisen Sie in der testing.xml Datei.
Erstellen und dann die Klasse:
Dann aus, dass die Listener-Klasse erstellen Sie eine "Report Writer" - Klasse, die schafft jede beliebige HTML-Ausgabe, so etwas wie so:
Und schließlich, aus, dass "CustomReport" Klasse "Bericht generieren" Methoden haben Zugriff auf alle Daten aus dem Bericht, wie:
Vielen Dank für die post. Ich fand, was ich brauchte aus dem git-Projekt. Alles was ich wissen wollte war, wie man die info über die Zeit, die einzelnen Verfahren dauerte zu laufen.
Die info darüber, wie viel Zeit jede Methode nimmt zu laufen, ist schon auf der Standard-Bericht. Siehe screenshot hier: github.com/djangofan/testng-custom-report-example
Hey @djangofan sorry, um diesen wieder von den Toten. Können Sie verwenden Sie die oben, um den Bericht zu erstellen, wie die tests verlaufen, anstelle der Bericht generiert wird am Ende des tests? Ich bin auf der Suche, etwas ähnliches zu tun wie oben, außer ich möchte zum generieren einer HTML-Monitoring-Bericht, in dem Sie den Bericht anzeigen können, überwachen der Prüfungen der Fortschritte. Danke.
Dann denke ich, Sie wollen etwas namens
Extent Reports
.InformationsquelleAutor djangofan
Schöne Berichterstattung mit Echtzeit-Bericht, jeder test ist möglich, mit Echtzeit-report-plugin. Sehr einfach zu bedienen und keine änderung notwendig in vorhandenen code, für details besuchen Sie bitte diese github-url RealTimeReport
Finden Sie die details der Umsetzung der verschiedenen TestNg Reporting intrfaces
InformationsquelleAutor saba
Können Sie
ex:
@Listener(Reporter.class)
public class VerifyTest erstreckt TestBase
InformationsquelleAutor Raju