how use testng framework
У последњих неколико водича осветлили смо основне и најчешће коришћене ВебДривер команде. Такође смо сазнали о стратегијама лоцирања елемената корисничког интерфејса и њиховом укључивању у тест скрипте. И зато смо развили наше врло прва скрипта за аутоматизацију ВебДривер-а .
Настављајући са овим упутством, разговарали бисмо о ТестНГ-у, његовим карактеристикама и апликацијама.
ТестНГ је напредни оквир дизајниран на начин да искористи благодати програмера и тестера. За људе који већ користе ЈУнит, ТестНГ не би изгледао другачије са неким напредним функцијама. Почетком оквира, ЈУнит је стекао огроман популарност у Јава апликацијама, програмерима Јава и Јава тестерима, уз невероватно повећање квалитета кода.
Такође видети=> Водич за ЈУнит и његова употреба у Селениум скриптама
Иако је једноставан за употребу и непосредан оквир, ЈУнит има своја ограничења која доводе до потребе за доношењем ТестНГ у слику. ТестНГ је креирао познати програмер назван „Цедриц Беуст“. ТестНГ је оквир отвореног кода који се дистрибуира под софтверском лиценцом Апацхе и доступан је за преузимање.
Говорећи о нашем захтеву да уведемо ТестНГ са ВебДривер-ом је да он пружа ефикасан и ефективан формат резултата теста који се, заузврат, може поделити са заинтересованим странама како би се увидео здравље производа / апликације, чиме се елиминише недостатак неспособности ВебДривера да генерише извештаји о испитивањима. ТестНГ има уграђени механизам за руковање изузецима који омогућава покретање програма без неочекиваног завршетка.
И ТестНГ и ЈУнит припадају истој породици Унит Фрамеворкс-а где је ТестНГ проширена верзија на ЈУнит и опсежније се користи у тренутној ери тестирања.
Шта ћете научити:
- Карактеристике ТестНГ-а
- Инсталација ТестНГ-а у Ецлипсе-у
- Израда узорка пројекта ТестНГ
- Креирање класе ТестНГ
- Извршење ТестНГ скрипте
- ХТМЛ Извештаји
- Постављање приоритета у ТестНГ
- Цоде Валктхроугх
- Биљешке о тестНГ-у
- Закључак
- Препоручено читање
Карактеристике ТестНГ-а
- Подршка за напомене
- Подршка за параметризацију
- Унапређена методологија извршавања која не захтева стварање тестних комплета
- Подршка за тестирање на основу података помоћу добављача података
- Омогућава кориснику да постави приоритете извршавања за методе испитивања
- Подржава безбедно окружење за претњу приликом извршавања више нити
- Спремно подржава интеграцију са различитим алатима и додацима попут алата за изградњу (Ант, Мавен итд.), Интегрисаног развојног окружења (Ецлипсе).
- Олакшава кориснику ефикасна средства за генерисање извештаја помоћу РепортНГ-а
Постоје разне предности које ТестНГ чине супериорнијим од ЈУнит-а. Неки од њих су:
- Напредне и једноставне напомене
- Могу се поставити обрасци извршења
- Истовремено извршавање тест скрипти
- Могу се поставити зависности тест случајева
Напоменама претходи симбол „@“ и у ТестНГ и у ЈУнит.
Дакле, кренимо сада са делом за инсталацију и имплементацију.
Интернет мрежа за аутоматизацију тестова селена
# 1) ЛамбдаТест
ТестНГ оквир се најбоље користи са облаком Селениум Грид као што је ЛамбдаТест који вам помаже да извршите паралелно тестирање на 2000+ стварних прегледача и оперативних система, без икаквих мука око одржавања интерне селениум мреже.
Можете добити разне евиденције као што су евиденције команди, мрежни дневници, необрађени Селениум дневници, метаподаци итд., Заједно са потпуним видео-снимком ваше скрипте за селениум тест за отклањање грешака.
ЛамбдаТест такође нуди интеграције са више ЦИ / ЦД алата као што су Јенкинс, Травис ЦИ, ЦирцлеЦИ, итд. За континуирано тестирање. ЛамбдаТест вам такође омогућава да се интегришете са бројним алатима за управљање пројектима за лако пријављивање грешака.
=> Посетите веб локацију ЛамбдаТестИнсталација ТестНГ-а у Ецлипсе-у
Следите кораке у наставку да бисте преузели и инсталирали ТестНГ на ецлипсе:
Корак 1: Покрените ецлипсе ИДЕ -> Кликните опцију Помоћ у менију -> Изаберите опцију „Ецлипсе Маркетплаце ..“ у падајућем менију.
Корак 2: Унесите кључну реч „ТестНГ“ у оквир за претрагу и кликните на дугме „Иди“ као што је приказано доле.
3. корак: Чим корисник кликне на дугме „Иди“, приказују се резултати који се подударају са низом за претрагу. Сада корисник може кликнути на дугме Инсталирај да инсталира ТестНГ.
4. корак: Чим корисник кликне на дугме Инсталирај, од њега се тражи прозор да потврди инсталацију. Кликните на дугме „Потврди“.
Корак 5: У следећем кораку апликација ће затражити да прихватите лиценцу, а затим кликнути на дугме „Заврши“.
Корак 6: Инсталација је започета сада и напредак се може видети на следећи начин:
Саветује нам се да поново покренемо наше помрачење тако да одражава извршене промене.
Након поновног покретања, корисник може да верификује инсталацију ТестНГ-а тако што ће у траци са менијима отићи до „Преференцес“ из „Виндов“ опције. Погледајте следећу слику за исто.
(Кликните на слику за увећан приказ)
Израда узорка пројекта ТестНГ
Почнимо са стварањем ТестНГ пројекта у ецлипсе ИДЕ-у.
Корак 1: Кликните опцију Филе у менију -> Цлицк Нев -> Селецт Јава Пројецт.
Корак 2: Унесите назив пројекта као „ДемоТестНГ“ и кликните на дугме „Нект“. Као завршни корак, кликните на дугме „Заврши“ и ваш Јава пројекат је спреман.
3. корак: Следећи корак је конфигурисање библиотеке ТестНГ у новостворени Јава пројекат. За исти кликните на картицу „Библиотеке“ у оквиру Конфигурисање путање градње. Кликните на „Додај библиотеку“ као што је приказано доле.
4. корак: Корисник ће бити подвргнут дијалошком оквиру који га промовише да одабере библиотеку коју ће конфигурисати. Изаберите ТестНГ и кликните на дугме „Даље“ као што је приказано испод на слици. На крају кликните на дугме „Заврши“.
ТестНГ је сада додат у Јава пројекат и потребне библиотеке се могу видети у истраживачу пакета након проширења пројекта.
Додајте све преузете Селениум библиотеке и тегле у путању израде пројекта, као што је приказано у претходном водичу.
Креирање класе ТестНГ
Сада када смо обавили све основне поставке да започнемо са креирањем тест скрипте помоћу ТестНГ-а. Направимо пример скрипте помоћу ТестНГ-а.
Корак 1: Проширите пројекат „ДемоТестНГ“ и пређите на директоријум „срц“. Кликните десним тастером миша на пакет “срц” и идите на Ново -> Остало.
Корак 2: Проширите опцију ТестНГ и одаберите опцију класе „ТестНГ“ и кликните на дугме „Даље“.
3. корак: Потребне детаље доставите на следећи начин. Наведите директоријум Извор, назив пакета и назив класе ТестНГ и кликните на дугме Заврши. Као што је видљиво из доње слике, корисник такође може да провери разне ознаке ТестНГ које би се одразиле на шему класе теста. О напоменама о ТестНГ-у биће речи касније у овој сесији.
Горе поменута класа ТестНГ би се креирала са подразумеваном шемом.
Сада када смо створили основну основу за тестНГ тест скрипту, убацимо сада стварни тест код. Користимо исти код који смо користили у претходној сесији.
Сценарио:
- Покрените прегледач и отворите „гмаил.цом“.
- Потврдите наслов странице и одштампајте резултат верификације.
- Унесите корисничко име и лозинку.
- Кликните на дугме Пријави се.
- Затворите веб прегледач.
Код:
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(); } }
Објашњење кода у односу на ТестНГ
1) @Тест - @Тест је један од ТестНГ напомене . Ова напомена омогућава извршењу програма да зна да је метода означена као @Тест тест метода. Да бисмо могли да користимо различите ТестНГ напомене, морамо да увозимо пакет “ увоз орг.тестнг.аннотатионс. * ”.
два) Није потребна метода маин () током креирања тест скрипти помоћу ТестНГ-а. Извршење програма се врши на основу напомена.
3) У изјави смо користили класу Ассерт упоређујући очекивану и стварну вредност. Класа Ассерт се користи за обављање различитих верификација. Да бисмо могли да користимо различите тврдње, од нас се захтева да увозимо „ увоз орг.тестнг.Ассерт ”.
Извршење ТестНГ скрипте
ТестНГ тест скрипта може се извршити на следећи начин:
=> Десним тастером миша кликните било где унутар класе унутар уређивача или јава класе у истраживачу пакета, одаберите опцију „Покрени као“ и кликните на „ТестНГ Тест“.
Резултат ТестНГ приказује се у два прозора:
- Прозор конзоле
- Прозор резултата ТестНГ
Погледајте доњи приказ екрана за прозоре резултата:
софтвер написан на језику ц ++
(Кликните на слику за увећан приказ)
ХТМЛ Извештаји
ТестНГ долази са великом способношћу генерирања читљивих и разумљивих ХТМЛ извештаја за извршавање теста. Ови извештаји се могу прегледати у било ком претраживачу, а такође се могу видети и помоћу Ецлипсеове уграђене подршке за прегледач.
Да бисте генерисали ХТМЛ извештај, следите кораке у наставку:
Корак 1: Извршите новостворену класу ТестНГ. Освежите пројекат који садржи класу ТестНГ десним кликом на њега и одабиром опције „Освежи“.
Корак 2: Фасцикла названа „тест-оутпут“ биће генерисана у пројекту на нивоу мапе „срц“. Проширите фасциклу „тест-оутпут“ и отворите датотеку „емавабле-репорт.хтмл“ помоћу прегледача Ецлипсе. ХТМЛ датотека приказује резултат недавног извршења.
3. корак: ХТМЛ извештај ће се отворити у окружењу ецлипсе. Погледајте доњу слику за исто.
Освежите страницу да бисте видели резултате за нова извршења, ако их има.
Постављање приоритета у ТестНГ
Исјечак кода
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() { } }
Цоде Валктхроугх
Ако је тест скрипта састављена од више од једне тест методе, приоритет извршавања и секвенца могу се поставити помоћу ТестНГ напомене „@Тест“ и постављањем вредности за параметар „приоритета“.
У горњем исечку кода, све методе су означене помоћу @Тест, а приоритети су постављени на 0, 1 и 2. Дакле, редослед извршења у којем би се извршиле методе испитивања је:
- Метод1
- Метод2
- Метод3
Подршка за напомене
У ТестНГ-у и ЈУнит-у постоји низ напомена. Суптилна разлика је у томе што ТестНГ пружа неке додатне напомене за ЈУнит.
Биљешке о тестНГ-у
Следи листа најкориснијих и најповољнијих напомена у ТестНГ-у:
Анотација | Опис |
---|---|
@После часа | Напомена обавештава систем да се метода која је означена као @АфтерЦласс мора извршити након извршавања последње методе испитивања у истој класи испитивања |
@Тест | Напомена обавештава систем да је метода означена као @Тест тест метода |
@БефореСуите | Напомена обавештава систем да се метода која је означена као @БефореСуите мора извршити пре извршавања тестова у целом пакету |
@АфтерСуите | Напомена обавештава систем да се метода која је означена као @АфтерСуите мора извршити након извршавања тестова у целом пакету |
@БефореТест | Напомена обавештава систем да се метода означена као @БефореТест мора извршити пре извршавања било које методе испитивања у истој класи испитивања |
@АфтерТест | Напомена обавештава систем да се метода означена као @АфтерТест мора извршити након извршавања било које методе испитивања у истој класи испитивања |
@Пре наставе | Напомена обавештава систем да се метода означена као @БефореЦласс мора извршити пре извршавања прве методе испитивања у истој класи испитивања |
@БефореМетход | Напомена обавештава систем да се метода која је означена као @БефореМетход мора извршити пре извршавања било које и сваке методе испитивања у истој класи испитивања |
@АфтерМетход | Напомена обавештава систем да се метода означена као @АфтерМетход мора извршити након извршавања било које и сваке методе испитивања у истој класи испитивања |
@БефореГроупс | Напомена обавештава систем да је метода означена као @БефореГроупс метода конфигурације која наводи групу и која се мора извршити пре извршавања прве методе испитивања групе |
@АфтерГроупс | Напомена обавештава систем да је метода означена као @АфтерГроупс метода конфигурације која наводи групу и која се мора извршити након извршавања последњег метода испитивања групе |
Белешка : Многе од горепоменутих напомена такође се могу изводити у оквиру ЈУнит 3 и ЈУнит 4.
Закључак
Кроз ово упутство, покушали смо да вас упознамо са оквиром за тестирање заснованом на јави названим ТестНГ. Сесију смо започели инсталацијом оквира, а кренули смо са креирањем скрипти и темама унапред. Разговарали смо о свим напоменама које пружа ТестНГ. Имплементирали смо и извршили прву тестНГ тест скрипту користећи напомене и изјаве за потврду.
Резиме чланка:
- ТестНГ је напредни оквир дизајниран на начин да искористи благодати програмера и тестера.
- ТестНГ је оквир отвореног кода који се дистрибуира под софтверском лиценцом Апацхе и доступан је за преузимање.
- Сматра се да је ТестНГ супериорнији од ЈУнит-а због својих напредних карактеристика.
- Карактеристике ТестНГ-а
- Подршка за напомене
- Унапређена методологија извршавања која не захтева стварање тестних комплета
- Подршка за параметризацију
- Подршка за тестирање на основу података помоћу добављача података
- Постављање приоритета извршавања за методе испитивања
- Подржава безбедно окружење за претњу приликом извршавања више нити
- Спремно подржава интеграцију са различитим алатима и додацима попут алата за изградњу (Ант, Мавен итд.), Интегрисаног развојног окружења (Ецлипсе).
- Олакшава кориснику ефикасна средства за генерисање извештаја помоћу РепортНГ-а
- Предности ТестНГ-а у односу на ЈУнит
- Додато унапред и лако напомене
- Могу се поставити обрасци извршења
- Истовремено извршавање тест скрипти
- Могу се поставити зависности тест случајева
- ТестНГ је бесплатно доступан и лако се може инсталирати у Ецлипсе ИДЕ помоћу Ецлипсе Маркет.
- Након инсталације, ТестНГ би био доступан као библиотека у окружењу Ецлипсе.
- Направите нови Јава пројекат и конфигуришите путању градње помоћу ТестНГ библиотеке.
- Направите нову класу ТестНГ ширењем креираног пројекта ТестНГ и пређите на његову фасциклу „срц“. Кликните десним тастером миша на пакет “срц” и идите на Ново -> Остало. Изаберите опцију класе ТестНГ.
- @Тест је једна од напомена коју пружа ТестНГ. Ова напомена омогућава извршењу програма да зна да је метода означена као @Тест тест метода. Да бисмо могли да користимо различите ТестНГ напомене, морамо да увозимо пакет “ увоз орг.тестнг.аннотатионс. * ”.
- Није потребна метода маин () током креирања тест скрипти помоћу ТестНГ-а.
- Класу Ассерт користимо упоређујући очекивану и стварну вредност. Класа Ассерт се користи за обављање различитих верификација. Да бисмо могли да користимо различите тврдње, од нас се захтева да увозимо „ увоз орг.тестнг.Ассерт ”.
- Ако је тест скрипта састављена од више метода тестирања, приоритет извршавања и секвенца могу се подесити помоћу ознаке ТестНГ „@Тест“ и постављањем вредности за параметар „приоритета“.
- ТестНГ има могућност аутоматског генерисања читљивих извештаја о извршењу теста. Ови извештаји се могу прегледати у било ком прегледачу, а такође се могу видети и помоћу уграђене подршке прегледача Ецлипсе.
Следећи водич # 13 : Настављајући са предстојећим водичима из серије Селениум, концентрисали бисмо се на руковање различитим врстама веб елемената доступних на веб страницама. Стога, у следећем упутству концентрисали бисмо свој фокус на „падајуће меније“ и примењивали њихове стратегије руковања. Такође бисмо разговарали о класи ВебДривер’с Селецт и њеним методама за одабир вредности у падајућим менијима.
Напомена за читаоце : Док је наш следећи водич из серије Селениум у режиму обраде, читаоци могу започети са креирањем сопствених основних ВебДривер скрипти помоћу ТестНГ оквира.
За више напредних скрипти и концепата, укључите што више напомена и тврдњи у своје класе ТестНГ и извршите их помоћу ТестНГ окружења. Такође, анализирајте ХТМЛ извештаје које је генерисао ТестНГ.
Препоручено читање
- Како се користи Фиребуг за стварање скрипти за селен - Водич за селен бр. 4
- Увод у ЈУнит Фрамеворк и његову употребу у сценаријуму Селениум - Водич за селен # 11
- Научите како да користите напомене ТестНГ у селену (са примерима)
- Водич за краставац селениј: Интеграција Јава Селениум ВебДривер краставца
- Како лоцирати елементе у Цхроме и ИЕ прегледачима за изградњу скрипти за селен - Водич за селен # 7
- Израда оквира за селенијум и приступање тест подацима из програма Екцел - Туториал бр. 21
- Стварање генеричких производа и тестова - Водич за селен бр. 22
- Дубински водичи за помрачење за почетнике