Posluchači TestNG v selenu: ITestListener & Příklad ITestResult

Obsah:

Anonim

Existují dva hlavní posluchači.

  1. Posluchači WebDriver
  2. Posluchači TestNG

V tomto tutoriálu budeme diskutovat o Testng Listeners. Zde se dozvíte

  • Co jsou posluchači v TestNG?
  • Typy posluchačů v TestNG
  • Scénář testu:
  • Kroky k vytvoření posluchače TestNG
  • Použití posluchače pro více tříd.

Co jsou posluchači v TestNG?

Posluchač je definován jako rozhraní, které upravuje chování výchozího TestNG. Jak název napovídá, posluchači „poslouchají“ událost definovanou ve skriptu selenu a podle toho se chovají. Používá se v selenu implementací Listeners Interface. Umožňuje přizpůsobení zpráv nebo protokolů TestNG. Existuje mnoho typů posluchačů TestNG.

Typy posluchačů v TestNG

Existuje mnoho typů posluchačů, které vám umožňují změnit chování TestNG.

Níže je několik posluchačů TestNG:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2,
  3. Konfigurovatelný,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. IHookable,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2,
  9. IMethodInterceptor,
  10. IReporter,
  11. ISuiteListener,
  12. ITestListener.

Výše uvedené rozhraní se nazývá TestNG Listeners. Tato rozhraní se používají v selenu ke generování protokolů nebo k přizpůsobení sestav TestNG.

V tomto kurzu implementujeme ITestListener.

ITestListener má následující metody

  • OnStart- onStart metoda se nazývá při spuštění některý test.
  • Metoda onTestSuccess - metoda onTestSuccess se nazývá úspěch jakéhokoli Testu.
  • onTestFailure - metoda onTestFailure je volána při selhání jakéhokoli Testu.
  • onTestSkipped - metoda onTestSkipped je volána při přeskočení jakéhokoli Testu.
  • onTestFailedButWithinSuccessPercentage - metoda se volá pokaždé, když se test nezdaří, ale je v procentech úspěchu.
  • metoda onFinish - metoda onFinish je volána po provedení všech testů.

Scénář testu:

V tomto testovacím scénáři automatizujeme proces přihlášení a implementujeme 'ItestListener'.

  1. Spusťte Firefox a otevřete web „http://demo.guru99.com/V4/“
  1. Přihlaste se do aplikace.

Kroky k vytvoření posluchače TestNG

Pro výše uvedený testovací scénář implementujeme Listener.

Krok 1) Vytvořte třídu „ListenerTest“, která implementuje „ITestListener“. Přesuňte myš nad text redline a Eclipse vám navrhne 2 rychlé opravy, jak je znázorněno na níže uvedené obrazovce:

Stačí kliknout na „Přidat neimplementované metody“. Do kódu je přidáno více neimplementovaných metod (bez těla). Zkontrolovat níže -

balíček Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;veřejná třída ListenerTest implementuje ITestListener{@ Přepispublic void onFinish (ITestContext arg0) {// TODO Automaticky generovaný útržek metody}@ Přepispublic void onStart (ITestContext arg0) {// TODO Automaticky generovaný útržek metody}@ Přepispublic void onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Automaticky generovaný útržek metody}@ Přepispublic void onTestFailure (ITestResult arg0) {// TODO Automaticky generovaný útržek metody}@ Přepispublic void onTestSkipped (ITestResult arg0) {// TODO Automaticky generovaný útržek metody}@ Přepispublic void onTestStart (ITestResult arg0) {// TODO Automaticky generovaný útržek metody}@ Přepispublic void onTestSuccess (ITestResult arg0) {// TODO Automaticky generovaný útržek metody}}

Pojďme upravit třídu 'ListenerTest'. Zejména upravíme následující metody -

onTestFailure, onTestSkipped, onTestStart, onTestSuccess atd.

Úprava je jednoduchá. Právě jsme vytiskli název Testu.

Protokoly se vytvářejí v konzole. Uživatel snadno pochopí, který test je stav vyhovující, neúspěšný a přeskočený.

Po úpravě vypadá kód jako -

balíček Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;veřejná třída ListenerTest implementuje ITestListener{@ Přepispublic void onFinish (ITestContext Result){}@ Přepispublic void onStart (ITestContext Result){}@ Přepispublic void onTestFailedButWithinSuccessPercentage (ITestResult Result){}// Když selže testovací případ, volá se tato metoda.@ Přepispublic void onTestFailure (ITestResult Result){System.out.println ("Název testcase se nezdařil je: + Result.getName ());}// Když se testovací případ přeskočí, volá se tato metoda.@ Přepispublic void onTestSkipped (ITestResult Result){System.out.println ("Název přeskočené testovací vitríny je: + Result.getName ());}// Když se spustí testovací případ, volá se tato metoda.@ Přepispublic void onTestStart (ITestResult Result){System.out.println (Result.getName () + "testovací případ spuštěn");}// Když je testovací případ předán, volá se tato metoda.@ Přepispublic void onTestSuccess (ITestResult Result){System.out.println ("Název předaného testovacího případu je: + Result.getName ());}}

Krok 2) Vytvořte další třídu „TestCases“ pro automatizaci procesu přihlášení. Selen provede tuto 'TestCase' pro automatické přihlášení.

balíček 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;Importovat org.testng.annotations.Test;veřejná třída TestCases {Ovladač WebDriver = nový FirefoxDriver ();// Test předat jako k ověření posluchačů.@Testveřejné neplatné přihlášení (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("heslo")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). click ();}// Tento test násilně selhal, aby se ověřil posluchač.@Testpublic void TestToFail (){System.out.println ("Tato metoda testování selhala");Assert.assertTrue (false);}}

Krok 3) Dále implementujte tohoto posluchače do naší běžné třídy projektu, tj. „TestCases“. Existují dva různé způsoby připojení ke třídě a rozhraní.

První způsob je použít anotaci Listeners (@Listeners), jak je znázorněno níže:

@Listeners (Listener_Demo.ListenerTest.class) 

Používáme to ve třídě „TestCases“, jak je uvedeno níže.

Nakonec tedy třída „TestCases“ vypadá po použití anotace Listener:

balíček 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)veřejná třída TestCases {Ovladač WebDriver = nový FirefoxDriver ();// Test předat jako k ověření posluchačů.@Testveřejné neplatné přihlášení (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("heslo")). sendKeys ("amUpenu");driver.findElement (By.id ("")). click ();}// Tento test vynuceně selhal jako posluchač ověření.@Testpublic void TestToFail (){System.out.println ("Tato metoda testování selhala");Assert.assertTrue (false);}}

Struktura projektu vypadá takto:

Krok 4): Proveďte třídu „TestCases“. Metody ve třídě "ListenerTest" jsou volány automaticky podle chování metod anotovaných jako @Test.

Krok 5): Ověřte, že se výstup, který se přihlásí, zobrazí na konzole.

Výstup z 'TestCases' bude vypadat takto:

[TestNG] Spuštěno:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlTestovací případ přihlášení spuštěnNázev předaného testovacího případu je: PřihlášeníTestovací případ TestToFail spuštěnTato metoda k testování selhalaNázev testcase se nezdařil je: TestToFailPASSED: PřihlášeníFAILED: TestToFailjava.lang.AssertionError: očekáváno [true], ale nalezeno [false] 

Použití posluchače pro více tříd.

Pokud má projekt více tříd, přidávání posluchačů do každé z nich může být těžkopádné a náchylné k chybám.

V takových případech můžeme vytvořit testng.xml a přidat značku posluchače v XML.

Tento posluchač je implementován v celé testovací sadě bez ohledu na počet tříd, které máte. Když spustíte tento soubor XML, posluchači budou pracovat na všech uvedených třídách. Můžete také deklarovat libovolný počet tříd posluchačů.

Souhrn:

Posluchači jsou povinni generovat protokoly nebo přizpůsobovat sestavy TestNG v Selenium Webdriver.

  • Existuje mnoho typů posluchačů a lze je použít podle požadavků.
  • Posluchače jsou rozhraní používaná ve skriptu webového ovladače selenu
  • Demonstroval použití Listeneru v selenu
  • Implementoval Listeners pro více tříd