how use testng framework
В последните няколко урока хвърлихме светлина върху основните и често използвани команди WebDriver. Също така научихме за стратегиите за локализиране на елементи на потребителския интерфейс и тяхното включване в тестовите скриптове. И затова, ние разработихме нашите много първи скрипт за тест за автоматизация на WebDriver .
Продължавайки напред с този урок, ще обсъдим всичко за TestNG, неговите функции и приложения.
TestNG е авансова рамка проектиран по начин да се възползва от предимствата както от разработчиците, така и от тестерите. За хората, които вече използват JUnit, TestNG не изглежда по-различен с някои предварителни функции. С началото на рамките JUnit спечели огромно популярност сред приложенията на Java, разработчиците на Java и тестерите на Java, като забележително се повишава качеството на кода.
Вижте също=> Урок за JUnit и използването му в скриптове на Selenium
Въпреки че е лесна за използване и ясна рамка, JUnit има свои собствени ограничения, които пораждат необходимостта от въвеждане ТестNG в картината. TestNG е създаден от аплодиран програмист, наречен „Седрик Беуст“. TestNG е рамка с отворен код, която се разпространява под лиценза за софтуер Apache и е лесно достъпна за изтегляне.
Говорейки за нашето изискване да въведем TestNG с WebDriver е, че той осигурява ефикасен и ефективен формат на резултатите от теста, който от своя страна може да бъде споделен със заинтересованите страни, за да има поглед върху здравето на продукта / приложението, като по този начин елиминира недостатъка на неспособността на WebDriver да генерира протоколи от тестове. TestNG има вграден механизъм за обработка на изключения, който позволява на програмата да работи без неочаквано прекратяване.
Както TestNG, така и JUnit принадлежат към едно и също семейство Unit Frameworks, където TestNG е разширена версия на JUnit и се използва по-широко в настоящата ера на тестване.
Какво ще научите:
- Характеристики на TestNG
- Инсталиране на TestNG в Eclipse
- Създаване на примерен проект TestNG
- Създаване на клас TestNG
- Изпълнение на скрипта TestNG
- HTML отчети
- Задаване на приоритет в TestNG
- Упътване за кода
- Анотации на TestNG
- Заключение
- Препоръчително четене
Характеристики на TestNG
- Поддръжка за пояснения
- Поддръжка за параметризиране
- Методология за предварително изпълнение, която не изисква създаването на тестови пакети
- Поддръжка за тестване на данни, използващо доставчици на данни
- Позволява на потребителя да задава приоритети за изпълнение на тестовите методи
- Поддържа безопасна среда за заплахи при изпълнение на множество нишки
- Лесно поддържа интеграция с различни инструменти и приставки като инструменти за изграждане (Ant, Maven и др.), Интегрирана среда за развитие (Eclipse).
- Улеснява потребителя с ефективни средства за генериране на отчети, използвайки ReportNG
Има различни предимства, които правят TestNG по-добър от JUnit. Някои от тях са:
- Предварителни и лесни пояснения
- Модели за изпълнение могат да бъдат зададени
- Едновременно изпълнение на тестови скриптове
- Могат да се зададат зависимости от тестови случаи
Анотациите се предшестват от символ „@“ както в TestNG, така и в JUnit.
Така че сега нека започнем с частта за инсталиране и внедряване.
Онлайн мрежа за автоматизация на тестове на селен
# 1) LambdaTest
Рамката TestNG се използва най-добре с облачна селенова мрежа, като LambdaTest, която ви помага да извършите паралелно тестване на 2000+ реални браузъра и операционните системи, без да се налага да поддържате вътрешна Selenium Grid.
Можете да получите различни регистрационни файлове като командни дневници, мрежови дневници, сурови регистрационни файлове на Selenium, метаданни и др., Заедно с пълен видеозапис на вашия скрипт за тестване на Selenium за отстраняване на грешки.
LambdaTest предлага и интеграции с множество CI / CD инструменти като Jenkins, Travis CI, CircleCI и др. За непрекъснато тестване. LambdaTest също ви позволява да се интегрирате с множество инструменти за управление на проекти за лесно регистриране на грешки.
=> Посетете уебсайта на LambdaTestИнсталиране на TestNG в Eclipse
Следвайте стъпките по-долу, за да изтеглите и инсталирате TestNG на eclipse:
Етап 1: Стартирайте eclipse IDE -> Щракнете върху опцията Помощ в менюто -> Изберете опцията „Eclipse Marketplace ..“ в падащото меню.
Стъпка 2: Въведете ключовата дума „TestNG“ в текстовото поле за търсене и кликнете върху бутона „Go“, както е показано по-долу.
Стъпка 3: Веднага след като потребителят щракне върху бутона „Go“, резултатите, съответстващи на низа за търсене, ще бъдат показани. Сега потребителят може да щракне върху бутона Инсталиране, за да инсталира TestNG.
Стъпка 4: Веднага след като потребителят щракне върху бутона Инсталиране, потребителят ще бъде подканен с прозорец за потвърждение на инсталацията. Щракнете върху бутона „Потвърди“.
Стъпка 5: В следващата стъпка приложението ще ви подкани да приемете лиценза и след това щракнете върху бутона „Finish“.
Стъпка 6: Инсталацията стартира сега и напредъкът може да се види, както следва:
Препоръчваме ни да рестартираме нашето затъмнение, така че да отразява направените промени.
При рестартиране потребителят може да провери инсталацията на TestNG, като отиде до „Предпочитания“ от опцията „Прозорец“ в лентата с менюта. Вижте следната фигура за същото.
(Щракнете върху изображението, за да видите увеличено)
Създаване на примерен проект TestNG
Нека започнем със създаването на проект TestNG в eclipse IDE.
Етап 1: Щракнете върху опцията File в менюто -> Щракнете върху New -> Select Java Project.
Стъпка 2: Въведете името на проекта като “DemoTestNG” и кликнете върху бутона “Напред”. Като заключителна стъпка щракнете върху бутона „Finish“ и вашият Java проект е готов.
Стъпка 3: Следващата стъпка е да конфигурирате библиотеката TestNG в новосъздадения проект на Java. За същото кликнете върху раздела „Библиотеки“ под Конфигуриране на пътя на изграждане. Кликнете върху „Добавяне на библиотека“, както е показано по-долу.
Стъпка 4: Потребителят ще бъде подложен на диалогов прозорец, който го насърчава да избере библиотеката за конфигуриране. Изберете TestNG и кликнете върху бутона „Напред“, както е показано по-долу на изображението. В крайна сметка кликнете върху бутона „Finish“.
Сега TestNG е добавен към проекта на Java и необходимите библиотеки могат да се видят в изследователя на пакети при разширяване на проекта.
Добавете всички изтеглени библиотеки и буркани на Selenium в пътя на изграждане на проекта, както е показано в предишния урок.
Създаване на клас TestNG
След като направихме всички основни настройки, за да започнем със създаването на тестовия скрипт с помощта на TestNG. Нека създадем примерен скрипт с помощта на TestNG.
Етап 1: Разгънете проекта „DemoTestNG“ и преминете към папката „src“. Щракнете с десния бутон върху пакета “src” и отидете на New -> Other.
Стъпка 2: Разгънете опцията TestNG и изберете опция за клас „TestNG“ и кликнете върху бутона „Напред“.
Стъпка 3: Представете необходимите детайли, както следва. Посочете папката Source, името на пакета и името на класа TestNG и кликнете върху бутона Finish. Както е видно от снимката по-долу, потребителят може да провери и различни нотации на TestNG, които биха били отразени в схемата на тестовия клас. Анотациите на TestNG ще бъдат обсъдени по-късно в тази сесия.
Гореспоменатият клас TestNG ще бъде създаден със схемата по подразбиране.
Сега, когато създадохме основната основа за тестовия скрипт TestNG, нека сега инжектираме действителния тестов код. Използваме същия код, който използвахме в предишната сесия.
Сценарий:
- Стартирайте браузъра и отворете „gmail.com“.
- Проверете заглавието на страницата и отпечатайте резултата от проверката.
- Въведете потребителското име и паролата.
- Кликнете върху бутона Вход.
- Затворете уеб браузъра.
Код:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
Обяснение на кода по отношение на TestNG
1) @Test - @Test е един от Анотации на TestNG . Тази анотация позволява на изпълнението на програмата да знае, че методът, анотиран като @Test, е тестов метод. За да можем да използваме различни анотации на TestNG, трябва да импортираме пакета “ внос org.testng.annotations. * ”.
2) Няма нужда от метод main () при създаване на тестови скриптове с помощта на TestNG. Изпълнението на програмата се извършва въз основа на анотации.
3) В изявление използвахме класа Assert, като сравнихме очакваната и действителната стойност. Класът Assert се използва за извършване на различни проверки. За да можем да използваме различни твърдения, от нас се изисква да импортираме „ внос org.testng.Assert ”.
Изпълнение на скрипта TestNG
Тестовият скрипт TestNG може да бъде изпълнен по следния начин:
=> Щракнете с десния бутон навсякъде в класа в редактора или в класа на java в пакета, изберете опцията „Изпълни като“ и кликнете върху „TestNG Test“.
Резултатът от TestNG се показва в два прозореца:
- Конзолен прозорец
- Прозорец с резултати от TestNG
Обърнете се към долните скрийнкасти за прозорците с резултати:
sql заявки за практика с отговори
(Щракнете върху изображението, за да видите увеличено)
HTML отчети
TestNG се предлага с голяма възможност за генериране на четливи и разбираеми за потребителя HTML отчети за тестовите изпълнения. Тези отчети могат да се преглеждат във всеки от браузърите, а също така и с помощта на вградената поддръжка на Eclipse в браузъра.
За да генерирате HTML отчет, следвайте стъпките по-долу:
Етап 1: Изпълнете новосъздадения клас TestNG. Опреснете проекта, съдържащ класа TestNG, като щракнете с десния бутон върху него и изберете опцията “Refresh”.
Стъпка 2: В проекта на ниво папка „src“ се генерира папка, наречена „test-output“. Разгънете папката „test-output“ и отворете файла „emailable-report.html“ с браузъра Eclipse. HTML файлът показва резултата от скорошното изпълнение.
Стъпка 3: Докладът HTML трябва да бъде отворен в среда на затъмнение. Вижте изображението по-долу за същото.
Опреснете страницата, за да видите резултатите за нови изпълнения, ако има такива.
Задаване на приоритет в TestNG
Кодов фрагмент
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
Упътване за кода
Ако тестовият скрипт се състои от повече от един тестов метод, приоритетът на изпълнението и последователността могат да бъдат зададени с помощта на TestNG анотация „@Test“ и чрез задаване на стойност за параметъра „приоритет“.
В горния кодов фрагмент всички методи са анотирани с помощта @Test и приоритетите са зададени на 0, 1 и 2. По този начин реда на изпълнение, в който тестовите методи ще бъдат изпълнени, е:
- Метод 1
- Метод2
- Метод 3
Поддръжка за анотации
В TestNG и JUnit има редица пояснения. Тънката разлика е, че TestNG предоставя още няколко предварително анотации на JUnit.
Анотации на TestNG
Следва списъкът с най-полезните и благоприятни анотации в TestNG:
Анотация | Описание |
---|---|
@След часовете | Анотацията уведомява системата, че методът, анотиран като @AfterClass, трябва да бъде изпълнен след изпълнение на последния метод на теста в рамките на същия тест клас |
@Тест | Анотацията уведомява системата, че методът, анотиран като @Test, е тестов метод |
@BeforeSuite | Анотацията уведомява системата, че методът, анотиран като @BeforeSuite, трябва да бъде изпълнен преди изпълнение на тестовете в целия пакет |
@AfterSuite | Анотацията уведомява системата, че методът, анотиран като @AfterSuite, трябва да бъде изпълнен след изпълнение на тестовете в целия пакет |
@BeforeTest | Анотацията уведомява системата, че методът, анотиран като @BeforeTest, трябва да бъде изпълнен, преди да се изпълни какъвто и да е метод на теста в същия тест клас |
@AfterTest | Анотацията уведомява системата, че методът, анотиран като @AfterTest, трябва да бъде изпълнен след изпълнение на който и да е тест метод в рамките на същия клас на изпитване |
@BeforeClass | Анотацията уведомява системата, че методът, анотиран като @BeforeClass, трябва да бъде изпълнен, преди да се изпълни първият тест метод в рамките на същия тест клас |
@BeforeMethod | Анотацията уведомява системата, че методът, анотиран като @BeforeMethod, трябва да бъде изпълнен, преди да се изпълни който и да е тест метод в рамките на същия тест клас |
@AfterMethod | Анотацията уведомява системата, че методът, анотиран като @AfterMethod, трябва да бъде изпълнен след изпълнението на който и да е всеки тестов метод в същия тест клас |
@BeforeGroups | Анотацията уведомява системата, че методът, анотиран като @BeforeGroups, е метод за конфигуриране, който включва група и който трябва да бъде изпълнен преди изпълнението на първия тестов метод на групата |
@AfterGroups | Анотацията уведомява системата, че методът, анотиран като @AfterGroups, е метод за конфигуриране, който включва група и който трябва да бъде изпълнен след изпълнението на последния тестов метод на групата |
Забележка : Много от гореспоменатите анотации могат да се упражняват и в JUnit 3 и JUnit 4 framework.
Заключение
Чрез този урок се опитахме да ви запознаем с базирана на Java рамка за тестване, наречена TestNG. Започнахме сесията с инсталирането на рамката и се преместихме със създаването на скриптове и темите за предварително. Обсъдихме всички анотации, предоставени от TestNG. Внедрихме и изпълнихме първия тест TestNG скрипт, използвайки анотации и твърдения.
Резюме на статията:
- TestNG е авансова рамка, създадена по начин да се възползва от предимствата както от разработчиците, така и от тестерите.
- TestNG е рамка с отворен код, която се разпространява под лиценза за софтуер Apache и е лесно достъпна за изтегляне.
- Счита се, че TestNG е по-добър от JUnit поради своите авансови функции.
- Характеристики на TestNG
- Поддръжка за анотации
- Методология за предварително изпълнение, която не изисква създаването на тестови пакети
- Поддръжка за параметризиране
- Поддръжка за тестване на данни, използващо доставчици на данни
- Задаване на приоритети за изпълнение на тестовите методи
- Поддържа безопасна среда за заплахи при изпълнение на множество нишки
- Лесно поддържа интеграция с различни инструменти и приставки като инструменти за изграждане (Ant, Maven и др.), Интегрирана среда за развитие (Eclipse).
- Улеснява потребителя с ефективни средства за генериране на отчети, използвайки ReportNG
- Предимства на TestNG пред JUnit
- Добавени авансови и лесни пояснения
- Модели за изпълнение могат да бъдат зададени
- Едновременно изпълнение на тестови скриптове
- Могат да се зададат зависимости от тестови случаи
- TestNG е свободно достъпен и може лесно да бъде инсталиран в IDE на Eclipse с помощта на Eclipse Market.
- След инсталирането TestNG ще бъде достъпен като библиотека в средата Eclipse.
- Създайте нов Java проект и конфигурирайте пътя за изграждане с помощта на библиотека TestNG.
- Създайте нов клас TestNG, като разгънете създадения проект TestNG и преминете към неговата папка “src”. Щракнете с десния бутон върху пакета “src” и отидете на New -> Other. Изберете опция за клас TestNG.
- @Test е една от анотациите, предоставени от TestNG. Тази анотация позволява на изпълнението на програмата да знае, че методът, анотиран като @Test, е тестов метод. За да можем да използваме различни анотации на TestNG, трябва да импортираме пакета “ внос org.testng.annotations. * ”.
- Няма нужда от метод main () при създаване на тестови скриптове с помощта на TestNG.
- Използваме класа Assert, като сравняваме очакваната и действителната стойност. Класът Assert се използва за извършване на различни проверки. За да можем да използваме различни твърдения, от нас се изисква да импортираме „ внос org.testng.Assert ”.
- Ако тестовият скрипт се състои от повече от един тестов метод, приоритетът на изпълнението и последователността могат да бъдат зададени с помощта на TestNG анотация „@Test“ и чрез задаване на стойност за параметъра „приоритет“.
- TestNG има способността автоматично да генерира отчети за изпълнение на тестови изпълнения. Тези отчети могат да бъдат преглеждани във всеки от браузърите, а също и чрез вградената поддръжка на браузъра на Eclipse.
Следващ урок # 13 : Продължавайки напред с предстоящите уроци от поредицата Selenium, бихме се концентрирали върху боравенето с различните видове уеб елементи, налични на уеб страниците. Следователно, в следващия урок ще съсредоточим вниманието си върху „падащите менюта“ и ще упражним техните стратегии за работа. Също така бихме обсъдили за класа на WebDriver’s Select и неговите методи за избор на стойности в падащите менюта.
Забележка за читателите : Докато следващият ни урок от поредицата Selenium е в режим на обработка, читателите могат да започнат да създават свои собствени базови скриптове на WebDriver, използвайки рамката TestNG.
За повече авансови скриптове и концепции, включете колкото се може повече анотации и твърдения във вашите класове TestNG и ги изпълнете, като използвате среда TestNG. Също така анализирайте HTML отчетите, генерирани от TestNG.
Препоръчително четене
- Как да използвам Firebug за създаване на скриптове за селен - Урок №4 за селен
- Въведение в JUnit Framework и нейното използване в Selenium Script - Селен Урок # 11
- Научете как да използвате TestNG анотации в селен (с примери)
- Урок за краставици селен: Интеграция на краставица Java Selenium WebDriver
- Как да намерим елементи в браузърите Chrome и IE за изграждане на скриптове за селен - Урок № 7 за селен
- Създаване на Framework Selenium и достъп до тестови данни от Excel - Урок № 21 за Selenium
- Създаване на генерични лекарства и тестове - Урок №22 за селен
- Уроци за задълбочено затъмнение за начинаещи