Учебники

Селен — TestNG

TestNG — это мощная среда тестирования, расширенная версия JUnit, которая использовалась в течение долгого времени до появления TestNG. NG означает «Следующее поколение».

Платформа TestNG предоставляет следующие функции —

  • Аннотации помогают нам легко организовать тесты.
  • Гибкая тестовая конфигурация.
  • Тестовые случаи могут быть сгруппированы более легко.
  • Распараллеливание тестов может быть достигнуто с помощью TestNG.
  • Поддержка тестирования на основе данных.
  • Встроенная отчетность.

Установка TestNG для Eclipse

Шаг 1 — Запустите Eclipse и выберите «Установить новое программное обеспечение».

Selenium IDE 93

Шаг 2. Введите URL-адрес как «http://beust.com/eclipse» и нажмите «Добавить».

Селен IDE 94

Шаг 3 — Откроется диалоговое окно «Добавить репозиторий». Введите имя как «TestNG» и нажмите «ОК»

Селен IDE 95

Шаг 4 — Нажмите «Выбрать все», и «TestNG» будет выбран, как показано на рисунке.

Селен IDE 96

Шаг 5 — Нажмите «Далее», чтобы продолжить.

Selenium IDE 97

Шаг 6 — Просмотрите выбранные элементы и нажмите «Далее».

Селен IDE 98

Шаг 7 — «Принять лицензионное соглашение» и нажать «Готово».

Selenium IDE 99

Шаг 8 — TestNG начинает установку, и прогресс будет показан ниже.

Selenium IDE 100

Шаг 9 — Предупреждение безопасности появляется, поскольку действительность программного обеспечения не может быть установлена. Нажмите «ОК».

Selenium IDE 101

Шаг 10 — Установщик предлагает перезапустить Eclipse, чтобы изменения вступили в силу. Нажмите «Да».

Selenium IDE 102

Аннотации в TestNG

Аннотации были формально добавлены к языку Java в JDK 5, и TestNG сделал выбор использовать аннотации для аннотирования тестовых классов. Ниже приведены некоторые преимущества использования аннотаций. Подробнее о TestNG можно найти здесь

  • TestNG определяет интересующие его методы, просматривая аннотации. Следовательно, имена методов не ограничены каким-либо шаблоном или форматом.

  • Мы можем передать дополнительные параметры в аннотации.

  • Аннотации строго напечатаны, поэтому компилятор сразу же отметит любые ошибки.

  • Тестовым классам больше не нужно ничего расширять (например, TestCase, для JUnit 3).

TestNG определяет интересующие его методы, просматривая аннотации. Следовательно, имена методов не ограничены каким-либо шаблоном или форматом.

Мы можем передать дополнительные параметры в аннотации.

Аннотации строго напечатаны, поэтому компилятор сразу же отметит любые ошибки.

Тестовым классам больше не нужно ничего расширять (например, TestCase, для JUnit 3).

Sr.No. Аннотация и описание
1

@BeforeSuite

Аннотированный метод будет запущен только один раз до запуска всех тестов в этом наборе.

2

@AfterSuite

Аннотированный метод будет запущен только один раз после выполнения всех тестов в этом наборе.

3

@BeforeClass

Аннотированный метод будет запущен только один раз, прежде чем будет вызван первый тестовый метод в текущем классе.

4

@После школы

Аннотированный метод будет запущен только один раз после запуска всех тестовых методов в текущем классе.

5

@BeforeTest

Аннотированный метод будет запущен до запуска любого тестового метода, принадлежащего классам внутри тега <test>.

6

@AfterTest

Аннотированный метод будет запущен после запуска всех тестовых методов, принадлежащих классам внутри тега <test>.

7

@BeforeGroups

Список групп, которые этот метод конфигурации будет запускать раньше. Этот метод гарантированно будет запущен незадолго до того, как будет вызван первый метод тестирования, принадлежащий любой из этих групп.

8

@AfterGroups

Список групп, после которых будет запускаться этот метод конфигурации. Этот метод гарантированно будет запущен вскоре после вызова последнего метода тестирования, принадлежащего любой из этих групп.

9

@BeforeMethod

Аннотированный метод будет запускаться перед каждым тестовым методом.

10

@AfterMethod

Аннотированный метод будет запускаться после каждого метода тестирования.

11

@DataProvider

Отмечает метод как предоставление данных для метода тестирования. Аннотированный метод должен возвращать объект [] [], где каждому объекту [] можно назначить список параметров метода тестирования. Метод @Test, который хочет получать данные от этого DataProvider, должен использовать имя dataProvider, равное имени этой аннотации.

12

@Factory

Помечает метод как фабрику, которая возвращает объекты, которые будут использоваться TestNG в качестве тестовых классов. Метод должен возвращать Object [].

13

@Listeners

Определяет слушателей на тестовом классе.

14

@Parameters

Описывает, как передавать параметры в метод @Test.

15

@Тестовое задание

Помечает класс или метод как часть теста.

@BeforeSuite

Аннотированный метод будет запущен только один раз до запуска всех тестов в этом наборе.

@AfterSuite

Аннотированный метод будет запущен только один раз после выполнения всех тестов в этом наборе.

@BeforeClass

Аннотированный метод будет запущен только один раз, прежде чем будет вызван первый тестовый метод в текущем классе.

@После школы

Аннотированный метод будет запущен только один раз после запуска всех тестовых методов в текущем классе.

@BeforeTest

Аннотированный метод будет запущен до запуска любого тестового метода, принадлежащего классам внутри тега <test>.

@AfterTest

Аннотированный метод будет запущен после запуска всех тестовых методов, принадлежащих классам внутри тега <test>.

@BeforeGroups

Список групп, которые этот метод конфигурации будет запускать раньше. Этот метод гарантированно будет запущен незадолго до того, как будет вызван первый метод тестирования, принадлежащий любой из этих групп.

@AfterGroups

Список групп, после которых будет запускаться этот метод конфигурации. Этот метод гарантированно будет запущен вскоре после вызова последнего метода тестирования, принадлежащего любой из этих групп.

@BeforeMethod

Аннотированный метод будет запускаться перед каждым тестовым методом.

@AfterMethod

Аннотированный метод будет запускаться после каждого метода тестирования.

@DataProvider

Отмечает метод как предоставление данных для метода тестирования. Аннотированный метод должен возвращать объект [] [], где каждому объекту [] можно назначить список параметров метода тестирования. Метод @Test, который хочет получать данные от этого DataProvider, должен использовать имя dataProvider, равное имени этой аннотации.

@Factory

Помечает метод как фабрику, которая возвращает объекты, которые будут использоваться TestNG в качестве тестовых классов. Метод должен возвращать Object [].

@Listeners

Определяет слушателей на тестовом классе.

@Parameters

Описывает, как передавать параметры в метод @Test.

@Тестовое задание

Помечает класс или метод как часть теста.

Установка TestNG-Eclipse

Шаг 1 — Запустите Eclipse и создайте «Новый проект Java», как показано ниже.

Selenium IDE 53

Шаг 2 — Введите название проекта и нажмите «Далее».

Selenium IDE 103

Шаг 3 — Перейдите на вкладку «Библиотеки» и добавьте файл JAR Selenium Remote Control Server, нажав «Добавить внешние JAR», как показано ниже.

Selenium IDE 113

Шаг 4 — Добавленный файл JAR показан здесь. Нажмите «Добавить библиотеку».

Selenium IDE 104

Шаг 5 — Откроется диалоговое окно «Добавить библиотеку». Выберите «TestNG» и нажмите «Далее» в диалоговом окне «Добавить библиотеку».

Селен IDE 105

Шаг 6 — Добавлена ​​библиотека «TestNG», и она отображается, как показано ниже.

Selenium IDE 106

Шаг 7 — После создания проекта структура проекта будет такой, как показано ниже.

Selenium IDE 107

Шаг 8 — Щелкните правой кнопкой мыши по папке ‘src’ и выберите New >> Other.

Селен IDE 108

Шаг 9 — Выберите «TestNG» и нажмите «Далее».

Selenium IDE 109

Шаг 10 — Выберите имя «Исходная папка» и нажмите «ОК».

Селен IDE 110

Шаг 11 — Выберите «Имя пакета», «Имя класса» и нажмите «Готово».

Selenium IDE 111

Шаг 12 — Будет отображен проводник пакетов и созданный класс.

Selenium IDE 112

Первый тест в TestNG

Теперь давайте начнем создавать сценарии с использованием TestNG. Давайте создадим сценарий для того же примера, который мы использовали для понимания WebDriver. Мы будем использовать демонстрационное приложение www.calculator.net и выполнять калькулятор процентов.

В следующем тесте вы заметите, что основного метода НЕТ, так как testNG будет управлять процессом выполнения программы. После инициализации драйвера он выполнит метод «@BeforeTest», затем «@Test», а затем «@AfterTest». Обратите внимание, что в классе может быть любое количество аннотаций «@Test», но «@BeforeTest» и «@AfterTest» могут появляться только один раз.

package TestNG;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;

import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class TestNGClass {
   WebDriver driver = new FirefoxDriver();
   
   @BeforeTest
   public void launchapp() {
      // Puts an Implicit wait, Will wait for 10 seconds before throwing exception
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
      
      // Launch website
      driver.navigate().to("http://www.calculator.net");
      driver.manage().window().maximize();
   }
   
   @Test
   public void calculatepercent() {
      // Click on Math Calculators
      driver.findElement(By.xpath(".//*[@id='menu']/div[3]/a")).click();
      
      // Click on Percent Calculators
      driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")).click();
      
      // Enter value 10 in the first number of the percent Calculator
      driver.findElement(By.id("cpar1")).sendKeys("10");
      
      // Enter value 50 in the second number of the percent Calculator
      driver.findElement(By.id("cpar2")).sendKeys("50");
      
      // Click Calculate Button
      driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click();
      
      // Get the Result Text based on its xpath
      String result =
         driver.findElement(By.xpath(".//*[@id='content']/p[2]/span/font/b")).getText();
      
      // Print a Log In message to the screen
      System.out.println(" The Result is " + result);
      
      if(result.equals("5")) {
         System.out.println(" The Result is Pass");
      } else {
         System.out.println(" The Result is Fail");
      }
   }
   
   @AfterTest
   public void terminatetest() {
      driver.close();
   }
}

выполнение

Для выполнения щелкните правой кнопкой мыши созданный XML и выберите «Запуск от имени» >> «TestNG Suite»

Селен IDE 189

Анализ результатов

Вывод выводится на консоль, и он будет выглядеть, как показано ниже. Вывод на консоль также имеет сводку по выполнению.

Selenium IDE 114

Результат TestNG также можно увидеть на другой вкладке. Нажмите на кнопку «HTML Report View», как показано ниже.

Селен IDE 115

Результат HTML будет отображаться, как показано ниже.