Има двама основни слушатели.
- Слушатели на WebDriver
- Слушатели на TestNG
В този урок ще обсъдим слушателите на Testng. Ето какво ще научите-
- Какво са слушателите в TestNG?
- Видове слушатели в TestNG
- Тест сценарий:
- Стъпки за създаване на слушател на TestNG
- Използване на слушател за множество класове.
Какво са слушателите в TestNG?
Слушателят е дефиниран като интерфейс, който променя поведението на TestNG по подразбиране. Както подсказва името, слушателите "слушат" събитието, дефинирано в селеновия скрипт, и се държат съответно. Той се използва в селен чрез внедряване на интерфейс за слушатели. Тя позволява персонализиране на отчети или регистрационни файлове на TestNG. Налични са много видове слушатели на TestNG.
Видове слушатели в TestNG
Има много видове слушатели, което ви позволява да промените поведението на TestNG.
По-долу са малкото слушатели на TestNG:
- IAnnotationTransformer,
- IAnnotationTransformer2,
- Конфигурируем,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Над интерфейса се наричат TestNG слушатели. Тези интерфейси се използват в селен за генериране на регистрационни файлове или персонализиране на отчетите TestNG.
В този урок ще внедрим ITestListener.
ITestListener има следните методи
- OnStart - Методът OnStart се извиква, когато се стартира тест.
- onTestSuccess- методът onTestSuccess се извиква за успеха на всеки тест.
- onTestFailure - методът onTestFailure се извиква при неуспех на който и да е тест.
- onTestSkipped - методът onTestSkipped се извиква при пропускане на всеки тест.
- onTestFailedButWithinSuccessPercentage- методът се извиква всеки път, когато тестът се провали, но е в рамките на процента на успех.
- onFinish- методът onFinish се извиква след изпълнение на всички тестове.
Тест сценарий:
В този тестов сценарий ще автоматизираме процеса на влизане и ще приложим „ItestListener“.
- Стартирайте Firefox и отворете сайта "http://demo.guru99.com/V4/"
- Влезте в приложението.
Стъпки за създаване на слушател на TestNG
За горния тестов сценарий ще приложим Listener.
Стъпка 1) Създайте клас "ListenerTest", който прилага "ITestListener". Преместете мишката върху текста с червени линии и Eclipse ще ви предложи 2 бързи корекции, както е показано на екрана по-долу:
Просто кликнете върху „Добавяне на неприложени методи“. Към кода се добавят множество неприложени методи (без тяло). Проверете по-долу
пакет Listener_Demo;внос org.testng.ITestContext;внос org.testng.ITestListener;внос org.testng.ITestResult;публичен клас ListenerTest прилага ITestListener{@Overrideпублична празнина onFinish (ITestContext arg0) {// TODO Автоматично генериран мъниче от метод}@Overrideпублична невалидна onStart (ITestContext arg0) {// TODO Автоматично генериран мъниче от метод}@Overrideпублична невалидност наTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Автоматично генериран мъниче от метод}@Overrideпублична празнина onTestFailure (ITestResult arg0) {// TODO Автоматично генериран мъниче от метод}@Overrideпублична празнина onTestSkipped (ITestResult arg0) {// TODO Автоматично генериран мъниче от метод}@Overrideпублична празнина onTestStart (ITestResult arg0) {// TODO Автоматично генериран мъниче от метод}@Overrideпублична невалидна onTestSuccess (ITestResult arg0) {// TODO Автоматично генериран мъниче от метод}}
Нека модифицираме класа 'ListenerTest'. По-специално, ние ще модифицираме следните методи -
onTestFailure, onTestSkipped, onTestStart, onTestSuccess и др.
Модификацията е проста. Ние просто отпечатваме името на теста.
Дневниците се създават в конзолата. Потребителят е лесно да разбере кой тест е статус за преминаване, неуспех и пропускане.
След модификация кодът изглежда като-
пакет Listener_Demo;внос org.testng.ITestContext;внос org.testng.ITestListener;внос org.testng.ITestResult;публичен клас ListenerTest прилага ITestListener{@Overrideпублична невалидност onFinish (резултат от ITestContext){}@Overrideпублична невалидност onStart (резултат от ITestContext){}@Overrideпублична невалидност наTestFailedButWithinSuccessPercentage (ITestResult Result){}// Когато тестът се провали, този метод се извиква.@Overrideпублично невалидно onTestFailure (ITestResult Result){System.out.println ("Името на тестовия случай е неуспешно: + Result.getName ());}// Когато тестовият случай се пропусне, този метод се извиква.@Overrideпублична празнина onTestSkipped (резултат от ITestResult){System.out.println ("Името на пропуснатия тест е: + Result.getName ());}// Когато Test case започне, този метод се извиква.@Overrideпублична невалидност onTestStart (резултат от ITestResult){System.out.println (Result.getName () + "тестовият случай е стартиран");}// Когато тестът се премине, този метод се извиква.@Overrideпублична невалидност onTestSuccess (ITestResult Result){System.out.println ("Името на преминалия тест е: + Result.getName ());}}
Стъпка 2) Създайте друг клас "TestCases" за автоматизация на процеса на влизане. Selenium ще изпълни този „TestCases“ за автоматично влизане.
пакет Listener_Demo;внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;внос org.testng.annotations.Listeners;Импортиране на org.testng.annotations.Test;публичен клас TestCases {Драйвер за WebDriver = нов FirefoxDriver ();// Тест за преминаване, за да се проверят слушателите.@Тестпублична невалидност Вход (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("парола")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). click ();}// Силно неуспешно този тест за проверка на слушателя.@Тестпублична празнота TestToFail (){System.out.println ("Този метод за неуспешно тестване");Assert.assertTrue (невярно);}}
Стъпка 3) След това внедрете този слушател в нашия редовен клас на проекта, т.е. "TestCases". Има два различни начина за свързване с класа и интерфейса.
Първият начин е да се използва анотация на слушателите (@Listeners), както е показано по-долу:
@Listeners (Listener_Demo.ListenerTest.class)
Използваме това в класа "TestCases", както е показано по-долу.
Така че накрая класът "TestCases" изглежда след използване на анотация на слушател:
пакет Listener_Demo;внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;внос org.testng.annotations.Listeners;внос org.testng.annotations.Test;@Listeners (Listener_Demo.ListenerTest.class)публичен клас TestCases {Драйвер за WebDriver = нов FirefoxDriver ();// Тест за преминаване, за да се проверят слушателите.@Тестпублична невалидност Вход (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("парола")). sendKeys ("amUpenu");driver.findElement (By.id ("")). click ();}// Силно се провали този тест като провери слушател.@Тестпублична празнота TestToFail (){System.out.println ("Този метод за неуспешно тестване");Assert.assertTrue (невярно);}}
Структурата на проекта изглежда така:
Стъпка 4): Изпълнете класа "TestCases". Методите в клас "ListenerTest" се извикват автоматично според поведението на методите, отбелязани като @Test.
Стъпка 5): Проверете изхода, който се записва в конзолата.
Резултатът от "TestCases" ще изглежда така:
[TestNG] Изпълнение:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlТестовият случай за влизане започнаИмето на преминалия тест е: ВходТестовият случай TestToFail стартираТози метод за тестване е неуспешенИмето на тестовия случай не е успешно: TestToFailМИНАЛ: ВходFAILED: TestToFailjava.lang.AssertionError: очаквано [вярно], но намерено [невярно]
Използване на слушател за множество класове.
Ако проектът има множество класове, добавянето на слушатели към всеки един от тях може да бъде тромаво и склонно към грешки.
В такива случаи можем да създадем testng.xml и да добавим таг за слушатели в XML.
Този слушател е внедрен в тестовия пакет, независимо от броя на класовете, които имате. Когато стартирате този XML файл, слушателите ще работят по всички споменати класове. Можете също да декларирате произволен брой слушателски клас.
Резюме:
Слушателите са длъжни да генерират регистрационни файлове или да персонализират отчети TestNG в Selenium Webdriver.
- Има много видове слушатели и могат да се използват според изискванията.
- Слушателите са интерфейси, използвани в скрипта за уеб драйвер на селен
- Демонстрира използването на слушател в селен
- Реализирани слушателите за множество класове