Jest dwóch głównych słuchaczy.
- WebDriver Listeners
- Słuchacze TestNG
W tym samouczku omówimy Testng Listeners. Oto, czego się nauczysz-
- Co to są słuchacze w TestNG?
- Typy słuchaczy w TestNG
- Scenariusz testowy:
- Kroki, aby utworzyć odbiornik TestNG
- Użycie Listenera dla wielu klas.
Co to są słuchacze w TestNG?
Odbiornik jest zdefiniowany jako interfejs, który modyfikuje domyślne zachowanie TestNG. Jak sama nazwa wskazuje, Słuchacze „nasłuchują” zdarzenia zdefiniowanego w skrypcie selenowym i odpowiednio się zachowują. Jest używany w selenie poprzez implementację interfejsu Listeners. Umożliwia dostosowywanie raportów lub dzienników TestNG. Dostępnych jest wiele typów słuchaczy TestNG.
Typy słuchaczy w TestNG
Istnieje wiele typów słuchaczy, które pozwalają na zmianę zachowania TestNG.
Poniżej znajduje się kilku słuchaczy TestNG:
- IAnnotationTransformer,
- IAnnotationTransformer2,
- IConfigurable,
- IConfigurationListener,
- IExecutionListener,
- I do gotowania,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Powyższy interfejs nazywa się odbiornikami TestNG. Te interfejsy są używane w selenie do generowania dzienników lub dostosowywania raportów TestNG.
W tym samouczku zaimplementujemy metodę ITestListener.
ITestListener ma następujące metody
- Metoda OnStart- OnStart jest wywoływana podczas uruchamiania dowolnego testu.
- onTestSuccess- onTestSuccess jest wywoływana po pomyślnym zakończeniu dowolnego testu.
- onTestFailure- onTestFailure jest wywoływana w przypadku niepowodzenia dowolnego testu.
- onTestSkipped- onTestSkipped jest wywoływana w przypadku pominięcia dowolnego testu.
- onTestFailedButWithinSuccessPercentage- metoda jest wywoływana za każdym razem, gdy Test kończy się niepowodzeniem, ale mieści się w zakresie procentowego sukcesu.
- Metoda onFinish- onFinish jest wywoływana po wykonaniu wszystkich testów.
Scenariusz testowy:
W tym scenariuszu testowym zautomatyzujemy proces logowania i zaimplementujemy „ItestListener”.
- Uruchom przeglądarkę Firefox i otwórz witrynę „http://demo.guru99.com/V4/”
- Zaloguj się do aplikacji.
Kroki, aby utworzyć odbiornik TestNG
W powyższym scenariuszu testowym zaimplementujemy Listener.
Krok 1) Utwórz klasę „ListenerTest”, która implementuje „ITestListener”. Najedź myszą na tekst z czerwoną linią, a Eclipse zasugeruje 2 szybkie poprawki, jak pokazano na poniższym ekranie:
Wystarczy kliknąć „Dodaj niezaimplementowane metody”. Do kodu dodawanych jest wiele niezaimplementowanych metod (bez treści). Sprawdź poniżej-
pakiet Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;publiczna klasa ListenerTest implementuje ITestListener{@Nadpisaniepublic void onFinish (ITestContext arg0) {// TODO Automatycznie wygenerowany kod pośredniczący metody}@Nadpisaniepublic void onStart (ITestContext arg0) {// TODO Automatycznie wygenerowany kod pośredniczący metody}@Nadpisaniepublic void onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Automatycznie wygenerowany kod pośredniczący metody}@Nadpisaniepublic void onTestFailure (ITestResult arg0) {// TODO Automatycznie wygenerowany kod pośredniczący metody}@Nadpisaniepublic void onTestSkipped (ITestResult arg0) {// TODO Automatycznie wygenerowany kod pośredniczący metody}@Nadpisaniepublic void onTestStart (ITestResult arg0) {// TODO Automatycznie wygenerowany kod pośredniczący metody}@Nadpisaniepublic void onTestSuccess (ITestResult arg0) {// TODO Automatycznie wygenerowany kod pośredniczący metody}}
Zmodyfikujmy klasę „ListenerTest”. W szczególności zmodyfikujemy następujące metody:
onTestFailure, onTestSkipped, onTestStart, onTestSuccess itp.
Modyfikacja jest prosta. Po prostu drukujemy nazwę testu.
Dzienniki są tworzone w konsoli. Użytkownik może łatwo zrozumieć, który test jest zaliczony, niezaliczony lub pominięty.
Po modyfikacji kod wygląda następująco:
pakiet Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;publiczna klasa ListenerTest implementuje ITestListener{@Nadpisaniepublic void onFinish (wynik ITestContext){}@Nadpisaniepublic void onStart (wynik ITestContext){}@Nadpisaniepublic void onTestFailedButWithinSuccessPercentage (wynik ITestResult){}// Gdy przypadek testowy się nie powiedzie, wywoływana jest ta metoda.@Nadpisaniepublic void onTestFailure (wynik ITestResult){System.out.println ("Nazwa przypadku testowego nie powiodła się: + Result.getName ());}// Gdy przypadek testowy zostanie pominięty, wywoływana jest ta metoda.@Nadpisaniepublic void onTestSkipped (wynik ITestResult){System.out.println ("Nazwa pominiętej sprawy testowej to: + Result.getName ());}// Po uruchomieniu przypadku testowego ta metoda jest wywoływana.@Nadpisaniepublic void onTestStart (wynik ITestResult){System.out.println (Result.getName () + "przypadek testowy rozpoczęty");}// Po przekazaniu przypadku testowego wywoływana jest ta metoda.@Nadpisaniepublic void onTestSuccess (wynik ITestResult){System.out.println ("Nazwa przekazanej sprawy testowej to: + Result.getName ());}}
Krok 2) Utwórz kolejną klasę „TestCases” do automatyzacji procesu logowania. Selenium wykona te „TestCases”, aby zalogować się automatycznie.
pakiet Listener_Demo;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;Import org.testng.annotations.Test;public class TestCases {Sterownik WebDriver = nowy FirefoxDriver ();// Test, aby przejść jako, aby zweryfikować słuchacze.@Testpublic void Zaloguj się (){driver.get („http://demo.guru99.com/V4/”);driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("hasło")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). click ();}// Wymuszono niepowodzenie tego testu, aby zweryfikować odbiornik.@Testpublic void TestToFail (){System.out.println ("Ta metoda testu zakończyła się niepowodzeniem");Assert.assertTrue (false);}}
Krok 3) Następnie zaimplementuj ten detektor w naszej zwykłej klasie projektu, tj. „TestCases”. Istnieją dwa różne sposoby łączenia się z klasą i interfejsem.
Pierwszym sposobem jest użycie adnotacji słuchaczy (@Listeners), jak pokazano poniżej:
@Listeners (Listener_Demo.ListenerTest.class)
Używamy tego w klasie „TestCases”, jak pokazano poniżej.
W końcu klasa „TestCases” wygląda tak po użyciu adnotacji Listener:
pakiet Listener_Demo;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;import org.testng.annotations.Test;@Listeners (Listener_Demo.ListenerTest.class)public class TestCases {Sterownik WebDriver = nowy FirefoxDriver ();// Test, aby przejść jako, aby zweryfikować słuchacze.@Testpublic void Zaloguj się (){driver.get („http://demo.guru99.com/V4/”);driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("hasło")). sendKeys ("amUpenu");driver.findElement (By.id ("")). click ();}// Wymuszenie niepowodzenia tego testu jako odbiornika weryfikacji.@Testpublic void TestToFail (){System.out.println ("Ta metoda testu zakończyła się niepowodzeniem");Assert.assertTrue (false);}}
Struktura projektu wygląda następująco:
Krok 4): Wykonaj klasę „TestCases”. Metody z klasy „ListenerTest” są wywoływane automatycznie zgodnie z zachowaniem metod oznaczonych jako @Test.
Krok 5): Sprawdź, czy dane wyjściowe, które rejestrują, są wyświetlane na konsoli.
Dane wyjściowe „przypadków testowych” będą wyglądać następująco:
[TestNG] Trwa:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlUruchomiono przypadek testowy logowaniaNazwa przekazanego testu to: LoginUruchomiono przypadek testowy TestToFailTa metoda testowania kończy się niepowodzeniemNazwa przypadku testowego nie powiodła się: TestToFailPASSED: Zaloguj sięFAILED: TestToFailjava.lang.AssertionError: oczekiwano [true], ale znaleziono [false]
Użycie Listenera dla wielu klas.
Jeśli projekt ma wiele klas, dodanie detektorów do każdej z nich może być kłopotliwe i podatne na błędy.
W takich przypadkach możemy stworzyć testng.xml i dodać znacznik słuchaczy w XML.
Ten detektor jest zaimplementowany w całym zestawie testów, niezależnie od liczby posiadanych klas. Po uruchomieniu tego pliku XML nasłuchiwanie będzie działać na wszystkich wspomnianych klasach. Możesz również zadeklarować dowolną liczbę klas nasłuchiwania.
Podsumowanie:
Słuchacze są zobowiązani do generowania dzienników lub dostosowywania raportów TestNG w Selenium Webdriver.
- Istnieje wiele typów słuchaczy i można ich używać zgodnie z wymaganiami.
- Odbiorniki to interfejsy używane w skrypcie sterownika sieciowego selenu
- Zademonstrował użycie Listenera w Selenie
- Zaimplementowano Listeners dla wielu klas