Слушатели на TestNG в селен: ITestListener & Пример за ITestResult

Съдържание:

Anonim

Има двама основни слушатели.

  1. Слушатели на WebDriver
  2. Слушатели на TestNG

В този урок ще обсъдим слушателите на Testng. Ето какво ще научите-

  • Какво са слушателите в TestNG?
  • Видове слушатели в TestNG
  • Тест сценарий:
  • Стъпки за създаване на слушател на TestNG
  • Използване на слушател за множество класове.

Какво са слушателите в TestNG?

Слушателят е дефиниран като интерфейс, който променя поведението на TestNG по подразбиране. Както подсказва името, слушателите "слушат" събитието, дефинирано в селеновия скрипт, и се държат съответно. Той се използва в селен чрез внедряване на интерфейс за слушатели. Тя позволява персонализиране на отчети или регистрационни файлове на TestNG. Налични са много видове слушатели на TestNG.

Видове слушатели в TestNG

Има много видове слушатели, което ви позволява да промените поведението на TestNG.

По-долу са малкото слушатели на TestNG:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2,
  3. Конфигурируем,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. IHookable,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2,
  9. IMethodInterceptor,
  10. IReporter,
  11. ISuiteListener,
  12. ITestListener.

Над интерфейса се наричат ​​TestNG слушатели. Тези интерфейси се използват в селен за генериране на регистрационни файлове или персонализиране на отчетите TestNG.

В този урок ще внедрим ITestListener.

ITestListener има следните методи

  • OnStart - Методът OnStart се извиква, когато се стартира тест.
  • onTestSuccess- методът onTestSuccess се извиква за успеха на всеки тест.
  • onTestFailure - методът onTestFailure се извиква при неуспех на който и да е тест.
  • onTestSkipped - методът onTestSkipped се извиква при пропускане на всеки тест.
  • onTestFailedButWithinSuccessPercentage- методът се извиква всеки път, когато тестът се провали, но е в рамките на процента на успех.
  • onFinish- методът onFinish се извиква след изпълнение на всички тестове.

Тест сценарий:

В този тестов сценарий ще автоматизираме процеса на влизане и ще приложим „ItestListener“.

  1. Стартирайте Firefox и отворете сайта "http://demo.guru99.com/V4/"
  1. Влезте в приложението.

Стъпки за създаване на слушател на 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.

  • Има много видове слушатели и могат да се използват според изискванията.
  • Слушателите са интерфейси, използвани в скрипта за уеб драйвер на селен
  • Демонстрира използването на слушател в селен
  • Реализирани слушателите за множество класове