Группы TestNG: включить, исключить с примером - Учебное пособие по Selenium

Содержание:

Anonim

TestNG - это среда тестирования, которая охватывает различные типы тестов, такие как модульный, функциональный, сквозной, пользовательский интерфейс и интеграционный тест.

Вы можете запустить один или несколько пакетов (пакет здесь означает инкапсуляцию группы классов в соответствующий формат директора), создав XML и запустив его через maven.

В этом руководстве вы узнаете:

  • Группы TestNG с примером
  • Установите путь maven и Java в переменной среды (для пользователя Windows)
  • Введение в XML и как создавать файлы XML
  • Другой механизм вместо группировки - «исключить» или «включить» в тестовый XML.
  • Как запустить код с использованием XML-файла (видео-демонстрация)

Группы TestNG с примером

Мы используем группы в Testng, когда,

  • Мы не хотим определять методы тестирования отдельно в разных классах (в зависимости от функциональности) и
  • При этом хочу игнорировать (не выполнять) некоторые тестовые примеры, как будто их нет в коде.
  • Итак, чтобы выполнить это, мы должны сгруппировать их. Это делается с помощью механизмов «включить» и «исключить», поддерживаемых в testNG.

В приведенном ниже примере мы показали синтаксис использования групп в XML-файле.

@Test (groups = {"bonding", "strong_ties"}) 

Здесь мы используем 2 названия группы, то есть «bonding» и «strong_ties» (это логическое имя, которое можно изменить по вашему желанию).

Тег определяет начало групп в XML.

Настройте свой XML, чтобы выбрать указанную группу из тестовых классов. Ниже приведен синтаксис объявления групп в файле XML, например.

<группы><бегать>

Итак, предположим, что в классе 10 тестовых методов.

Из них,

  • 6 методов помечены в группе «склеивание» и
  • 4 находятся в группе "strong_ties"

Двигаясь вперед, мы собираемся установить путь maven / Java и использовать Eclipse IDE, чтобы продемонстрировать использование групп с использованием файлов XML в проекте maven на основе Java.

Установите путь maven и Java в переменной среды (для пользователя Windows)

См. Https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html.

https://www.guru99.com/install-java.html

Введение в XML и как создавать файлы XML

  • Файл XML (Extensible Markup Language) в среде Maven содержит информацию об одном или нескольких тестах и ​​определяется тегом .
  • Информация о тестах в XML представлена тегом и может содержать один или несколько классов TestNG.
  • Класс Java, содержащий аннотацию @Test над тестовыми методами, определяется как методы TestNG.

Несколько тегов используются в последовательности для создания рабочего testNG xml, например , и

  • Во-первых, это тег , который содержит логическое имя, определяющее полную информацию, которую testNG сообщает для создания отчета о выполнении.
  • Во-вторых, это , обратите внимание, что это логическое имя, которое содержит информацию отчета о выполнении теста, такую ​​как пройден, не пройден, пропустить тестовые примеры, и другую информацию, такую ​​как общее время выполнения и информацию о группе.
  • Третий - это , com.group.guru99 - это используемый пакет, а имя тестового класса - TC_Class1.
<группы><бегать><классы>

Мы будем использовать этот XML для следующего видео.

Другой механизм вместо группировки - это «исключить» или «включить» в тестовый XML.

Предположим, вы обнаружите, что использование группового механизма сложное, тогда testNG XML упрощает функциональность для исключения / включения теста.

Исключить тег : синтаксис для тега исключения  Включить тег : синтаксис для тега включения 

Примечание: мы можем включать / исключать несколько тестовых случаев за раз, и это также работает с группами.

Как запустить код с использованием XML-файла (видео-демонстрация)

Объяснение кода Java и XML с помощью группы, исключения и включения тега в XML.

  • Сценарий : запустите демонстрационный сайт Guru99 Banking, проверьте несколько вещей на странице входа, после чего введите учетные данные и повторно проверьте несколько новых вещей в приложении при входе в систему.

Примечание . Каждый шаг, который вы кодируете, должен быть объявлен в отдельных методах, но при выполнении он будет выполнять методы тестирования в зависимости от записей в XML-файле.

Метод 1 : инициализировать браузер и запустить URL-адрес (tc01LaunchURL ())

Метод 2 : проверьте заголовок страницы входа (tc02VerifyLaunchPage ())

Метод 3 : введите имя пользователя и пароль в форме входа (tc03EnterCredentials ())

Метод 4 : проверьте наличие идентификатора менеджера на панели управления пользователя (tc04VerifyLoggedInPage ())

Метод 5. Проверьте еще несколько ссылок на User DashBoard (tc05VerifyHyperlinks ())

Код для нашего сценария:

пакет com.group.guru99;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Test;public class TC_Class1 {public static final WebDriver webDriver = new FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Guru99 Bank']";final String userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// input [@ name = 'btnLogin']";последняя строка userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [contains (text (), 'Manger Id')]";final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Этот тестовый пример инициализирует webDriver* /@Test (groups = {"bonding", "strong_ties"})public void tc01LaunchURL () {webDriver.manage (). окно (). maximize ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Будет проверять наличие заголовка на странице входа* /@Test (groups = {"bonding"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplayed (),«Заголовок домашней страницы не отображается»);System.out.println («Отображается заголовок домашней страницы»);}/ *** Этот тестовый пример вводит имя пользователя, пароль и затем щелкает по* кнопка входа* /@Test (groups = {"bonding", "strong_ties"})public void tc03EnterCredentials () {webDriver.findElement (By.xpath (userName_element)). sendKeys (userName_value);webDriver.findElement (By.xpath (элемент_пароля)). sendKeys (значение_пароля);webDriver.findElement (By.xpath (signIn_element)). click ();}/ *** Этот тестовый пример проверяет наличие ID менеджера на DashBoard* /@Test (группы = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),«Не отображается метка ID менеджера»);System.out.println («Отображается метка Manger Id»);}/ *** Этот тестовый пример проверяет наличие наличия ссылки Нового клиента* И ссылка FundTransfer на левой панели* /@Test (groups = {"bonding"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),«Гиперссылка нового клиента не отображается»);System.out.println («Отображается гиперссылка нового клиента»);Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),«Гиперссылка денежного перевода не отображается»);System.out.println («Отображается гиперссылка на перевод средств»);}}

Обратите внимание: учетные данные действительны только в течение 20 дней, поэтому, если вы пытаетесь запустить код на своем локальном компьютере, вы можете столкнуться с ошибкой неверных учетных данных. Ниже приведены инструкции по созданию учетных данных для входа:

  1. Запустите http://www.demo.guru99.com
  2. Введите свой адрес электронной почты в поле.
  3. Нажмите «Ввод» и просмотрите данные для входа на экран.

Пояснение к коду:

Как упоминалось выше, мы создали 5 тестовых примеров для выполнения каждого действия в независимых методах.

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

По сути, это названия дифференцирующих групп, то есть «strong_ties» и «bonding».

  • Первый и третий методы имеют теги «bonding», «strong_ties», что означает, что если XML обновлен в любой из групп, этот тестовый пример будет запущен.
  • Второй метод привязан только к группе «связывание», это означает, что если XML обновляется с помощью группы связывания. Только в этом случае будет запущен этот тестовый пример.
  • Четвертый тестовый пример привязан к группе strong_ties, что означает, что этот тестовый пример будет выполняться только в том случае, если XML обновлен с именем группы strong_ties.
  • Последний, но не последний, пятый тестовый пример прикреплен к группе связывания, что означает, что этот тестовый пример будет запущен только в том случае, если XML обновлен с именем группы связывания.

Итак, у нас есть 4 сценария;

  1. Мы хотим запускать все тестовые примеры независимо от имени группы. В этом случае мы удалим групповой тег из исполняемого XML.
  1. Мы хотим запустить несколько тестов, которые относятся только к одной из групп, то есть strong_ties или bonding.
  • Пожалуйста, обратитесь:

  • В этом видео параметр Group комментируется из запущенного XML. Следовательно, вы увидите, что все тестовые примеры были выполнены.
  • В продолжение видео, теперь мы включили имя группы в XML, вы можете видеть только те тестовые примеры, которые относятся только к этой группе.
  1. Мы используем механизм Exclude, чтобы исключить тестовый пример:
  • Пожалуйста, обратитесь

  • Вы видите, что мы использовали исключить несколько тестовых примеров (tc02), написав их имена в исполняемом XML. В конечном результате указанные тестовые примеры не выполнялись.
  1. Наконец, мы используем механизм включения тестирования для включения тестовых примеров (tc01LaunchURL, tc03EnterCredentials и tc05VerifyHyperlinks)
    • Пожалуйста, обратитесь

    • В этом видео вы увидите, что тестовые примеры, упомянутые в XML, выполняются только во время выполнения теста.

    Загрузите код с указанного URL, он будет содержать все типы testXML:

    Загрузите приведенный выше код

    Вывод

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

    Мы начали с краткого введения в testNG и продолжили с полной технической спецификацией групп, исключения и включения.