Existují dva hlavní posluchači.
- Posluchači WebDriver
- 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:
- IAnnotationTransformer,
- IAnnotationTransformer2,
- Konfigurovatelný,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- 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'.
- Spusťte Firefox a otevřete web „http://demo.guru99.com/V4/“
- 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