ТестНГ Туториал: Шта је, напомене и оквир у селену

Шта је ТестНГ?

ТестНГ је оквир за тестирање аутоматизације у којем НГ означава 'Нект Генератион'. ТестНГ је инспирисан ЈУнит који користи напомене (@). ТестНГ превазилази недостатке ЈУнит -а и осмишљен је тако да га направи енд-то-енд тестирање лако.

Коришћењем ТестНГ -а можете да генеришете одговарајући извештај и лако можете да сазнате колико је случајева тестирања положено, неуспешно и прескочено. Неуспеле тест случајеве можете извршити засебно.

На пример:

  • Претпоставимо да имате пет тест случајева, за сваки тест се пише једна метода (Претпоставимо да је програм написан користећи главни метод без коришћења тестНГ). Када први пут покренете овај програм, три методе се успешно извршавају, а четврта метода није успела. Затим исправите грешке присутне у четвртој методи, сада желите да покренете само четврту методу јер се прве три методе ионако успешно извршавају. Ово није могуће без коришћења ТестНГ -а.
  • ТестНГ у Селениум-у пружа опцију, тј. Датотеку тестнг-фаилед.кмл у директоријуму тест-оутпут. Ако желите да покрећете само неуспеле тест случајеве, значи да покрећете ову КСМЛ датотеку. Извршиће само неуспеле тест случајеве.

Осим горе наведеног концепта, научићете и више о ТестНГ -у, као што су Предности ТестНГ -а, како да креирате методе испитивања користећи @тест напомене, како да претворите ове класе у датотеку пакета за тестирање и извршите их кроз помрачење, као и из командне линије .

У овом ТестНГ водичу ћете научити

Зашто користити ТестНГ са селеном?

Подразумевани тестови селена не генеришу одговарајући формат резултата теста. Користећи ТестНГ у Селениум -у, можемо генерисати резултате теста.

Већина корисника селена користи ово више од Јунит због својих предности. Постоји толико много функција ТестНГ -а, али ми ћемо се фокусирати само на најважније које можемо користити у Селениум -у. Следе кључне карактеристике Селениум ТестНГ -а:

  • Генеришите извештај у одговарајућем формату, укључујући бројне покренуте тестне случајеве, број положених тестних случајева, број неуспешних тестних случајева и број прескочених тестних случајева.
  • Више тестних случајева може се лакше груписати претварањем у датотеку тестнг.кмл. У којем можете одредити приоритете који тест случај треба прво извршити.
  • Исти тест случај може се извршити више пута без петљи само помоћу кључне речи која се зове 'инвоцатион цоунт'.
  • Користећи тестнг, можете извршити више тестних случајева на више прегледача, тј. Цросс тестирање прегледача .
  • Оквир ТестНГ може се лако интегрисати са алаткама попут ТестНГ Мавен, Јенкинс итд.
  • Напомене коришћене у тестирању су врло лако разумљиве, нпр .: @БефореМетход, @АфтерМетход, @БефореТест, @АфтерТест
  • ВебДривер нема изворни механизам за генерисање извештаја. ТестНГ може генерисати извештај у читљивом формату попут оног приказаног испод.
  • ТестНГ поједностављује начин кодирања тестова. У нашим тестовима више нема потребе за статичком главном методом. Редослед радњи регулисан је лако разумљивим напоменама које не захтевају да методе буду статичне.
  • ТестНГ аутоматски управља незахваћеним изузецима без превременог прекида теста. Ови изузеци су пријављени као неуспешни кораци у извештају.

Предности ТестНГ -а у односу на ЈУнит

Три су главне предности ТестНГ -а у односу на ЈУнит:

  • Биљешке је лакше разумјети
  • Тестни случајеви се могу лакше груписати
  • Могуће је паралелно тестирање

Напомене у ТестНГ -у су редови кода који могу контролисати како ће се метода испод њих извршити . Увек им претходи симбол @. Врло рани и брзи пример ТестНГ -а је онај приказан испод.

О напоменама ће бити речи касније у одељку под називом „Напомене коришћене у ТестНГ -у“, па је сасвим у реду ако још не разумете горњи пример ТестНГ -а. Важно је само напоменути да је напомене у ТестНГ -у лакше кодирати и разумети него у ЈУнит -у.

Могућност паралелног извођења тестова доступна је у ТестНГ -у, али не и у ЈУнит -у, па је ТестНГ оквир пожељнији од тестера који користе Селениум Грид.

Направите тест случај користећи ТестНГ напомене

Сада ћемо научити како да направимо наш први тест пример користећи ТестНГ напомене у Селениум -у:

Пре него што направимо тест случај, требало би прво да подесимо нови ТестНГ пројекат у Ецлипсе -у и да му дамо назив „ФирстТестНГПројецт“.

Постављање новог ТестНГ пројекта

Корак 1: Кликните Датотека> Ново> Јава пројекат

Корак 2: Унесите „ФирстТестНГПројецт“ као назив пројекта, а затим кликните на Нект.

3. корак: Сада ћемо почети да увозимо ТестНГ библиотеке у наш пројекат. Кликните на картицу „Библиотеке“, а затим „Додај библиотеку…“

Корак 4: У дијалогу Додавање библиотеке изаберите „ТестНГ“ и кликните на Даље.

5. корак: Притисните Финисх.

Требали бисте приметити да је ТестНГ укључен на листу библиотека.

Корак 6: Сада ћемо додати ЈАР датотеке које садрже Селениум АПИ. Ове датотеке се налазе у управљачком програму Јава клијента са којег смо преузели хттп://доцс.селениумхк.орг/довнлоад/ када смо у претходним поглављима инсталирали Селениум и Ецлипсе.

Затим идите до места на које сте сместили датотеке Селениум ЈАР.

Након додавања спољних ЈАР -ова, екран би требао изгледати овако.

Корак 7: Кликните на дугме Заврши и проверите да ли је наш ФирстТестНГПројецт видљив у прозору Ецлипсе Пацкаге Екплорер.

Како створити нову тестНГ датотеку за тестирање

Сада када смо завршили са постављањем нашег пројекта у овом ТестНГ водичу, креирајмо нову ТестНГ датотеку.

Корак 1: Десним тастером миша кликните на фасциклу пакета 'срц', а затим изаберите Ново> Остало ...

Корак 2: Кликните на фасциклу ТестНГ и изаберите опцију 'ТестНГ класа'. Кликните на Даље.

3. корак: Упишите доље наведене вриједности у одговарајуће оквире за унос и кликните Заврши. Имајте на уму да смо нашу Јава датотеку назвали 'ФирстТестНГФиле'.

Ецлипсе би требао аутоматски креирати шаблон за нашу ТестНГ датотеку приказану испод.

Кодирање нашег првог примера ТестНГ Тест Цасе

Хајде сада да створимо свој први Тест Цасе који ће проверити да ли је почетна страница компаније Мерцури Тоурс исправна. Унесите свој код као што је приказано у наставку ТестНГ Пример: | _+_ |

Обратите пажњу на следеће.

  • ТестНГ не захтева да имате метод маин ().
  • Методе не морају бити статичне.
  • Користили смо напомену @Тест. @Тест се користи да каже да је метода испод њега тестни случај . У овом случају смо методу верифиХомепагеТитле () поставили као наш тестни случај, па смо изнад ње ставили напомену „@Тест“.
  • Пошто користимо напомене у ТестНГ -у, морали смо да увозимо пакет орг.тестнг.аннотатионс.*.
  • Користили смо класу Ассерт. Класа Ассерт се користи за извођење верификационих операција у ТестНГ -у . Да бисмо га користили, морамо да увозимо пакет орг.тестнг.Ассерт.

Можда имате више тестних случајева (дакле, више @Тест напомена) у једној ТестНГ датотеци. О овоме ће бити више речи касније у одељку „Напомене коришћене у ТестНГ -у“.

Покретање теста

Да бисте покренули тест, једноставно покрените датотеку у Ецлипсе -у као и обично. Ецлипсе ће обезбедити два излаза - један у прозору Цонсоле, а други у прозору ТестНГ Ресултс.

Провера извештаја које је направио ТестНГ

Прозор Цонсоле у ​​Ецлипсе-у даје текстуални извештај о резултатима наших тестова, док нам прозор ТестНГ Ресултс даје графички приказ.

Генерисање ХТМЛ извештаја

ТестНГ има могућност генерисања извештаја у ХТМЛ формату.

Корак 1: Након покретања наше датотеке ФирстТестНГФиле коју смо креирали у претходном одељку, кликните десним тастером миша на назив пројекта (ФирстТестНГПројецт) у прозору Пројецт Екплорер, а затим кликните на опцију „Освежи“.

Корак 2: Приметите да је креирана фасцикла „тест-оутпут“. Проширите га и потражите датотеку индек.хтмл. Ова ХТМЛ датотека представља извештај о резултатима најновијег тестирања.

3. корак: Двапут кликните на ту датотеку индек.хтмл да бисте је отворили у уграђеном веб прегледачу Ецлипсе-а. Ову страницу можете освежити било када након поновног извођења теста једноставним притиском на Ф5, као у обичним веб прегледачима.

Напомене коришћене у ТестНГ -у

У претходном одељку упознали сте се са напоменом @Тест. Сада ћемо проучавати напредније напомене и њихову употребу.

Више тестних случајева

Можемо да користимо више @Тест напомена у једној ТестНГ датотеци. Подразумевано се методе означене @Тест -ом изводе по абецеди. Погледајте доњи код. Иако методе ц_тест, а_тест и б_тест нису поређане по абецедном реду у коду, оне ће се као такве извршити.

Покрените овај код и на генерисаној страници индек.хтмл кликните на „Хронолошки приказ“.

Параметри

Ако желите да се методе изводе различитим редоследом, користите параметар 'приорити'. Параметри су кључне речи које мењају функцију напомене .

  • Параметри захтевају да им доделите вредност. Ово радите тако што поред њих постављате '=', а затим следи вредност.
  • Параметри су затворени у пар заграда који се постављају одмах иза напомене, попут исечка кода приказаног испод.

ТестНГ ће извршити напомену @Тест са најнижом вредношћу приоритета до највеће. Нема потребе да ваше приоритетне вредности буду узастопне.

ХТМЛ извештај ТестНГ ће потврдити да су методе изведене на основу растуће вредности приоритета.

Више параметара

Осим 'приоритета', @Тест има још један параметар под називом 'алваисРун' који се може поставити само на 'труе' или 'фалсе'. Да бисте користили два или више параметара у једној напомени, одвојите их зарезом као што је приказано испод. | _+_ |

@БефореТест и @АфтерТест

@БефореТест

методе под овом напоменом ће се извршити пре првог тест случаја у датотеци ТестНГ .

@АфтерТест

методе под овом напоменом ће се извршити након што се изврше сви тест случајеви у датотеци ТестНГ .

Размотрите доњи код. | _+_ |

Примењујући логику представљену табелом и горњим кодом, можемо предвидети да ће редослед којим ће се методе извршавати:

  • 1ст- лаунцхБровсер ()
  • 2нд- верифиХомепагеТитле ()
  • 3рд- терминатеБровсер ()

Положај блокова напомена може се мењати без утицаја на хронолошки редослед по коме ће се извршити . Хајде да разумемо помоћу ТестНГ примера и покушамо да преуредимо блокове напомена тако да ваш код изгледа слично доњем. | _+_ |

Покрените горњи код и приметите то

@БефореМетход и @АфтерМетход

@БефореМетход

методе под овом напоменом ће се извршити пре сваке методе у сваком тестном случају .

@АфтерМетход

методе под овом напоменом ће се извршити након сваке методе у сваком тестном случају.

Претпоставимо да у Мерцури Тоурс -у желимо да верификујемо наслове циљних страница два линка испод.

Ток нашег теста био би:

  • Идите на почетну страницу и проверите њен наслов.
  • Кликните на РЕГИСТРУЈ СЕ и проверите наслов њене циљне странице.
  • Вратите се на почетну страницу и проверите да ли још увек има исправан наслов.
  • Кликните на ПОДРШКА и проверите наслов њене циљне странице.
  • Вратите се на почетну страницу и проверите да ли још увек има исправан наслов.

Доњи код илуструје како се @БефореМетход и @АфтерМетход користе за ефикасно извршавање горе поменутог сценарија. | _+_ |

Након извршавања овог теста, ваш ТестНГ треба да пријави следећи низ.

Једноставно речено, @БефореМетход треба да садржи методе које морате да покренете пре него што сваки тест случај док @АфтерМетход треба да садржи методе које морате да покренете после сваки тест случај.

Резиме напомена о ТестНГ -у

@БефореСуите : Означена метода ће се покренути пре него што се покрену сви тестови у овом пакету.

@АфтерСуите : Метода са напоменама ће се покренути након покретања свих тестова у овом пакету.

@БефореТест : Означена метода ће се покренути пре него што се покрене било која метода испитивања која припада класама унутар ознаке.

@АфтерТест : Означена метода ће се покренути након што се покрену све методе испитивања које припадају класама унутар ознаке.

@БефореГроупс : Списак група које ће овај метод конфигурације претходно покренути. Ова метода се гарантује да ће се покренути непосредно пре него што се позове прва метода испитивања која припада било којој од ових група.

@АфтерГроупс : Листа група након којих ће се покренути овај метод конфигурације. Ова метода ће се гарантовано покренути убрзо након што се позове последња метода испитивања која припада било којој од ових група.

@Пре часа : Означена метода ће се покренути пре него што се позове прва метода испитивања у тренутној класи.

@После часа : Означена метода ће се покренути након што су покренуте све методе испитивања у тренутној класи.

@БефореМетход : Означена метода ће се покренути пре сваке методе испитивања.

@АфтерМетход : Означена метода ће се покренути након сваке методе испитивања.

@Тест : Забележена метода је део тест случаја

Закључак

  • ТестНГ је а тестирање оквир који може олакшати разумевање тестова селена и генерисати извештаје који су лако разумљиви.
  • Главне предности ТестНГ -а у односу на ЈУнит су следеће.
    • Напомене су лакше користити и разумети.
    • Тестни случајеви се могу лакше груписати.
    • ТестНГ нам омогућава да стварамо паралелни тестови .
  • Прозор конзоле у ​​Ецлипсе-у генерише резултат заснован на тексту, док је прозор ТестНГ кориснији јер нам даје графички излаз резултата теста плус друге значајне детаље, као што су:
    • Време извођења сваке методе.
    • Хронолошки редослед извођења метода
  • ТестНГ је способан да генерише ХТМЛ извештаје.
  • Напомене могу користити параметре баш као и уобичајене Јава ТестНГ методе.
  • ТестНГ Датапровидер је начин за прослеђивање параметара у тест функцију која преноси различите вредности у тест случајевима у једном извођењу.