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, например.
<группы><бегать>
Итак, предположим, что в классе 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 version = "1.0" encoding = "UTF-8"?><группы><бегать> <классы>
Мы будем использовать этот 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 дней, поэтому, если вы пытаетесь запустить код на своем локальном компьютере, вы можете столкнуться с ошибкой неверных учетных данных. Ниже приведены инструкции по созданию учетных данных для входа:
- Запустите http://www.demo.guru99.com
- Введите свой адрес электронной почты в поле.
- Нажмите «Ввод» и просмотрите данные для входа на экран.
Пояснение к коду:
Как упоминалось выше, мы создали 5 тестовых примеров для выполнения каждого действия в независимых методах.
Вы можете заметить, что к каждому методу мы связали групповой параметр, содержащий в нем какое-то значение.
По сути, это названия дифференцирующих групп, то есть «strong_ties» и «bonding».
- Первый и третий методы имеют теги «bonding», «strong_ties», что означает, что если XML обновлен в любой из групп, этот тестовый пример будет запущен.
- Второй метод привязан только к группе «связывание», это означает, что если XML обновляется с помощью группы связывания. Только в этом случае будет запущен этот тестовый пример.
- Четвертый тестовый пример привязан к группе strong_ties, что означает, что этот тестовый пример будет выполняться только в том случае, если XML обновлен с именем группы strong_ties.
- Последний, но не последний, пятый тестовый пример прикреплен к группе связывания, что означает, что этот тестовый пример будет запущен только в том случае, если XML обновлен с именем группы связывания.
Итак, у нас есть 4 сценария;
- Мы хотим запускать все тестовые примеры независимо от имени группы. В этом случае мы удалим групповой тег из исполняемого XML.
- Мы хотим запустить несколько тестов, которые относятся только к одной из групп, то есть strong_ties или bonding.
- Пожалуйста, обратитесь:
- В этом видео параметр Group комментируется из запущенного XML. Следовательно, вы увидите, что все тестовые примеры были выполнены.
- В продолжение видео, теперь мы включили имя группы в XML, вы можете видеть только те тестовые примеры, которые относятся только к этой группе.
- Мы используем механизм Exclude, чтобы исключить тестовый пример:
- Пожалуйста, обратитесь
- Вы видите, что мы использовали исключить несколько тестовых примеров (tc02), написав их имена в исполняемом XML. В конечном результате указанные тестовые примеры не выполнялись.
- Наконец, мы используем механизм включения тестирования для включения тестовых примеров (tc01LaunchURL, tc03EnterCredentials и tc05VerifyHyperlinks)
- Пожалуйста, обратитесь
- В этом видео вы увидите, что тестовые примеры, упомянутые в XML, выполняются только во время выполнения теста.
Загрузите код с указанного URL, он будет содержать все типы testXML:
Загрузите приведенный выше код
Вывод
Мы узнали здесь относительно новый способ запуска тестовых примеров с использованием XML в проекте Maven.
Мы начали с краткого введения в testNG и продолжили с полной технической спецификацией групп, исключения и включения.