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