Групи TestNG: Включете, Изключете с пример - Урок за селен

Съдържание:

Anonim

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

Можете да стартирате един или няколко пакета (пакетът тук означава да капсулирате група класове в правилен формат на директор), като създадете XML и го стартирате чрез maven.

В този урок ще научите -

  • Тествайте NG групи с пример
  • Задайте maven и Java път в променлива на околната среда (за потребител на Windows)
  • Въведение в XML и как да създадете XML файлове
  • Друг механизъм вместо Групиране е „изключване“ или „включване“ в тестов XML
  • Как да стартирам код с помощта на XML файл (видео демонстрация)

Тествайте NG групи с пример

Използваме групи в 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 файлове в Java базиран проект maven.

Задайте 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 framework съдържа информацията за един или повече тестове и се дефинира от маркера .
  • Информацията за теста в XML е представена от таг и може да съдържа един или повече класове TestNG.
  • Клас Java, който съдържа @Test анотация над методите за тестване, се определя като TestNG методи.

Няколко маркера се използват в последователност за изграждане на работещ тестNG xml като , и

  • Първият е таг, който съдържа логическо име, което дефинира пълната информация за testNG, отчитан за генериране на отчет за изпълнение.
  • Второто е , имайте предвид, че е логично име, което съдържа информацията за отчета за изпълнение на теста като преминаване, неуспех, пропускане на тестови случаи и друга информация като общо време за изпълнение и информация за групата
  • Третото е , com.group.guru99 е използваният пакет, а името на тестовия клас е TC_Class1.
<групи><включва име = "силни_те" /><класове>

Ще използваме този XML за предстоящо видео в посока надолу.

Друг механизъм вместо Групиране е "изключване" или "включване" в тестов XML

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

Изключване на етикет : Синтаксис за изключване на маркер <изключване на име = "$ {TEST_CASE_NAME}" /> Включване на маркер : Синтаксис на включване на маркер <включва име = "$ {TEST_CASE_NAME}" />

Забележка: Можем да включим / изключим няколко тестови случая наведнъж и това работи и с Групи.

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

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

  • Сценарий : Стартирайте демонстрационния сайт за банкиране на Guru99, проверете няколко неща на страницата за вход, след което въведете идентификационни данни и повторно проверете няколко нови неща в приложението, когато влезете

Забележка : Всяка стъпка, която кодирате, трябва да бъде декларирана в отделни методи, но когато бъде изпълнена, тя ще изпълни тестови методи в зависимост от записите в XML файла.

Метод 1 : Инициализирайте браузъра и стартирайте URL (tc01LaunchURL ())

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

Метод 3 : Въведете потребителско име и парола във формуляра за вход (tc03EnterCredentials ())

Метод 4 : Проверете наличието на ID на мениджър на потребителското табло (tc04VerifyLoggedInPage ())

Метод 5 : Проверете още няколко връзки в User DashBoard (tc05VerifyHyperlinks ())

Код за нашия сценарий:

пакет com.group.guru99;импортиране на java.util.concurrent.TimeUnit;внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;внос org.testng.annotations.Test;публичен клас TC_Class1 {публичен статичен окончателен WebDriver webDriver = нов FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Guru99 Bank']";окончателен низ userName_element = "// вход [@ name = 'uid']", password_element = "// вход [@ name = 'парола']",signIn_element = "// вход [@ name = 'btnLogin']";окончателен низ userName_value = "mngr28642", password_value = "ydAnate";окончателен String managerID = "// td [съдържа (text (), 'Manger Id')]";заключителен низ newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Този тестов случай ще инициализира webDriver* /@Test (groups = {"bonding", "strong_ties"})public void tc01LaunchURL () {webDriver.manage (). window (). 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* /@ Тест (групи = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),"Етикетът на ID на мениджър не се показва");System.out.println („Показва се етикет с идентификатор на ясли“);}/ *** Този тестов случай ще провери наличието на връзка с нов клиент* И връзка 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. Щракнете върху Enter и ще видите данните за вход на екрана.

Обяснение на кода:

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

Можете да забележите, че към всеки метод сме свързали групов параметър, съдържащ някаква стойност в него.

По принцип това са имената на диференциращите групи, т.е. "strong_ties" и "bonding".

  • Първият и третият метод са маркирани на „bonding“, „strong_ties“, което означава, че ако XML се актуализира в която и да е от групата, ще се изпълни този тестов случай.
  • Вторият метод е маркиран само за група "свързване", това означава, че ако XML се актуализира с група за свързване. Само в този случай този тест ще работи.
  • Четвъртият тестов случай е маркиран към групата strong_ties, което означава, че този тестов случай ще се изпълни само ако XML е актуализиран с името на групата strong_ties.
  • Последният, но не на последно място пети тестов случай е прикрепен към група за свързване, което означава, че този тестов случай ще се изпълни само ако XML е актуализиран с име на група за свързване.

Така че като цяло имаме 4 сценария;

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

  • В това видео параметърът на групата е коментиран от стартиране на XML. Следователно ще видите, че всички тестови случаи са изпълнени.
  • В продължение на видеото, сега включихме името на групата в XML, можете да видите само тестови случаи, специфични за тази група, която се изпълнява.
  1. Използваме механизъм за изключване, за да изключим тестовия случай:
  • Моля вижте

  • Виждате, че използвахме изключване на няколко тестови случая (tc02), като записахме името им в стартиращ XML. В крайния резултат споменатите тестови случаи не се изпълниха.
  1. И накрая, използваме механизъм за включване на теста, за да включим тестовите случаи (tc01LaunchURL, tc03EnterCredentials и tc05VerifyHyperlinks)
    • Моля вижте

    • В това видео ще видите, че тестовите случаи, споменати в XML, се изпълняват само по време на изпълнението на теста.

    Моля, изтеглете кода от споменатия URL, той ще съдържа всички видове testXML:

    Изтеглете горния код

    Заключение

    Тук научихме сравнително нов начин за провеждане на тестови случаи, използващи XML в проекта Maven.

    Започнахме с кратко представяне на testNG и продължихме с пълната техническа спецификация на Групите, изключваме и включваме.