ТестНГ је оквир за тестирање који покрива различите врсте дизајна теста, као што су јединица, функционалност, крај до краја, кориснички интерфејс и тест интеграције.
Можете покренути један или више пакета (пакет овде значи енкапсулацију групе класа у одговарајућем формату директора) стварањем КСМЛ-а и покретање кроз мавен.
У овом упутству ћете научити-
- ТестНГ групе са примером
- Подесите мавен и Јава путању у променљиву окружења (за Виндовс кориснике)
- Увод у КСМЛ и како направити КСМЛ датотеке
- Други механизам уместо Груписање је „изузети“ или „укључити“ у тест КСМЛ
- Како покренути код помоћу КСМЛ датотеке (видео демонстрација)
ТестНГ групе са примером
Користимо групе у Тестнгу када,
- Не желимо да дефинишемо методе испитивања одвојено у различитим класама (у зависности од функционалности) и
- Истовремено желите да игноришете (а не да извршавате) неке тест случајеве као да не постоје у коду.
- Дакле, да бисмо то извели, морамо их групирати. То се постиже коришћењем механизма „укључи“ и „изузми“ подржаним у тестНГ.
У доњем примеру показали смо синтаксу како се користе групе у КСМЛ датотеци.
@Тест (гроупс = {"бондинг", "стронг_тиес"})
Овде користимо 2 имена група, тј. „Бондинг“ и „стронг_тиес“ (ово су логична имена која се могу променити према вашој жељи).
Ознака <гроупс> дефинише покретање група у КСМЛ-у.
Прилагодите свој КСМЛ да одаберете поменуту групу из тест класа. Испод је наведена синтакса како пријавити групе у КСМЛ датотеци, нпр
<гроупс><рун><инцлуде наме = "бондинг" />рун>гроупс>
Дакле, претпоставимо да у класи постоји 10 метода испитивања.
Од њих,
- 6 метода је означено у групи „везивање“ и
- 4 су у групи "стронг_тиес"
Крећући се напред, поставићемо мавен / Јава путању и користити Ецлипсе ИДЕ да покажемо употребу група које користе КСМЛ датотеке у пројекту Мавен заснован на Јави.
Подесите мавен и Јава путању у променљиву окружења (за Виндовс кориснике)
Молимо погледајте хттпс://ввв.гуру99.цом/мавен-јенкинс-витх-селениум-цомплете-туториал.хтмл
хттпс://ввв.гуру99.цом/инсталл-јава.хтмл
Увод у КСМЛ и како направити КСМЛ датотеке
- Датотека КСМЛ (Ектенсибле Маркуп Лангуаге) у Мавен фрамеворк-у садржи информације о једном или више тестова и дефинисана је ознаком <суите> .
- Информације о тестирању у КСМЛ-у представљене су ознаком <тест> и могу садржати једну или више класа ТестНГ.
- Јава класа која садржи ознаку @ Тест изнад метода испитивања дефинисана је као ТестНГ методе.
Вишеструке ознаке се користе у низу за изградњу радног тестНГ кмл-а попут <суите>, <тест> и <цласс>
- Прва је ознака <суите> која има логичко име које дефинише потпуне информације за тестНГ пријављене за генерисање извештаја о извршењу.
- Друго је <тест наме = "Гуру 99 Смоке Тест Демо">, имајте на уму да је логично име које садржи информације о извештају о извршењу теста као што су пролазак, неуспех, прескакање случајева теста и друге информације као што је укупно време за извршење и информације о групи
- Треће је <цласс наме = " цом.гроуп.гуру99.ТЦ_Цласс1 " />, цом.гроуп.гуру99 је пакет који се користи, а тест класа име је ТЦ_Цласс1.
кмл версион = "1.0" енцодинг = "УТФ-8"?><суите наме = " Суите "><тест наме = " Гуру 99 Смоке Тест Демо "><гроупс><рун><инцлуде наме = "стронг_тиес" />рун>гроупс><класе><цласс наме = " цом.гроуп.гуру99.ТЦ_Цласс1 " />цлассес>тест>суите>
Овај КСМЛ ћемо користити за надолазеће видео недостатке.
Други механизам уместо Груписање је „изузми“ или „укључи“ у тестном КСМЛ-у
Претпоставимо да откривате употребу сложеног механизма групе, а затим тестНГ КСМЛ олакшава функционалност за искључивање / укључивање теста.
Изузми ознаку : Синтакса за ознаку за изузимање <екцлуде наме = "$ {ТЕСТ_ЦАСЕ_НАМЕ}" /> Укључи ознаку : Синтакса за ознаку за укључивање <инцлуде наме = "$ {ТЕСТ_ЦАСЕ_НАМЕ}" />
Напомена: Одједном можемо укључити / изузети више тест случајева, а то функционише и са Групама.
Како покренути код помоћу КСМЛ датотеке (видео демонстрација)
Објашњење Јава кода и КСМЛ-а са групом, изузмите и укључите ознаку у КСМЛ.
- Сценариј : Покрените демонстрацијску страницу Гуру99, проверите да ли је неколико ствари на страници за пријављивање након тога унесите акредитиве и поново верификујте неколико нових ствари у апликацији када сте пријављени.
Напомена : Сваки корак који кодирате треба декларисати у одвојеним методама, али када се изврши, извршиће методе тестирања у зависности од уноса у КСМЛ датотеци.
1. метод : Иницијализација прегледача и покретање УРЛ-а (тц01ЛаунцхУРЛ ())
2. метод : Потврдите наслов странице за пријаву (тц02ВерифиЛаунцхПаге ())
3. метод : Унесите корисничко име и лозинку у образац за пријаву (тц03ЕнтерЦредентиалс ())
4. метод : Потврдите присуство Манагер ИД-а на корисничкој надзорној табли (тц04ВерифиЛоггедИнПаге ())
5. метод : Потврдите још неколико веза на корисничкој табли (тц05ВерифиХиперлинкс ())
Шифра за наш сценарио:
пакет цом.гроуп.гуру99;импорт јава.утил.цонцуррент.ТимеУнит;импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.фирефок.ФирефокДривер;импорт орг.тестнг.Ассерт;импорт орг.тестнг.аннотатионс.Тест;јавна класа ТЦ_Цласс1 {јавни статички коначни ВебДривер вебДривер = нови ФирефокДривер () ;;Стринг лаунцхПагеХеадинг = "// х3 [тект () = 'Гуру99 банка']";финал Стринг усерНаме_елемент = "// инпут [@ наме = 'уид']", пассворд_елемент = "// инпут [@ наме = 'пассворд']",сигнИн_елемент = "// инпут [@ наме = 'бтнЛогин']";коначни низ усерНаме_валуе = "мнгр28642", пассворд_валуе = "идАнате";коначни Стринг манагерИД = "// тд [садржи (текст (), 'Ид управника')]";финал Стринг невЦустомер = "//а[@хреф='аддцустомерпаге.пхп ']", фундТрансфер = "//а[@хреф='ФундТрансИнпут.пхп']";/ *** Овај тест случај ће покренути вебДривер* /@Тест (гроупс = {"бондинг", "стронг_тиес"})јавна воид тц01ЛаунцхУРЛ () {вебДривер.манаге (). виндов (). макимизе ();вебДривер.манаге (). тимеоутс (). имплицитлиВаит (20, ТимеУнит.СЕЦОНДС);вебДривер.гет ("хттп://ввв.демо.гуру99.цом/В4/");}/ *** Провериће присуство Наслова на страници за пријављивање* /@Тест (гроупс = {"бондинг"})јавна воид тц02ВерифиЛаунцхПаге () {Ассерт.ассертТруе (вебДривер.финдЕлемент (Би.кпатх (лаунцхПагеХеадинг)). ИсДисплаиед (),„Наслов почетне странице се не приказује“);Систем.оут.принтлн („Приказује се наслов почетне странице“);}/ *** Овај тест ће унети корисничко име, лозинку и затим ће кликнути на* дугме за пријаву* /@Тест (гроупс = {"бондинг", "стронг_тиес"})јавна воид тц03ЕнтерЦредентиалс () {вебДривер.финдЕлемент (Би.кпатх (корисничко име_елемент)). сендКеис (корисничко име_вредност);вебДривер.финдЕлемент (Би.кпатх (елемент_ лозинке)). сендКеис (валуе_валуе);вебДривер.финдЕлемент (Би.кпатх (сигнИн_елемент)). цлицк ();}/ *** Овај тест ће проверити присуство личног менаџера на ДасхБоард-у* /@Тест (групе = {"стронг_тиес"})јавна воид тц04ВерифиЛоггедИнПаге () {Ассерт.ассертТруе (вебДривер.финдЕлемент (Би.кпатх (манагерИД)). ИсДисплаиед (),„Ознака ИД менаџера није приказана“);Систем.оут.принтлн („Приказана је ознака ИД-а менаџера“);}/ *** Овај тест ће проверити присуство везе новог купца* И линк ФундТрансфер у левом панелу* /@Тест (гроупс = {"бондинг"})јавна воид тц05ВерифиХиперлинкс () {Ассерт.ассертТруе (вебДривер.финдЕлемент (Би.кпатх (невЦустомер)). ИсЕнаблед (),„Нова корисничка хипервеза није приказана“);Систем.оут.принтлн („Приказује се хипервеза новог купца“);Ассерт.ассертТруе (вебДривер.финдЕлемент (Би.кпатх (фундТрансфер)). ИсЕнаблед (),„Хипервеза за пренос средстава није приказана“);Систем.оут.принтлн („Приказује се хипервеза за пренос средстава“);}}
Напомена: Акредитиви важе само 20 дана, па ако покушавате да покренете код на локалном рачунару, можда ћете се суочити са грешком неважећих акредитива. У наставку потражите кораке за генерисање података за пријављивање:
- Покрените хттп://ввв.демо.гуру99.цом
- У поље унесите свој емаил.
- Кликните на ентер и на екрану ћете видети своје податке за пријаву.
Објашњење кода:
Као што је горе поменуто, створили смо 5 тест случајева за извођење сваке радње независним методама.
Можете приметити да смо свакој методи придружили параметар групе који садржи неку вредност.
У основи, ово су имена група које разликују, тј. „Стронг_тиес“ и „бондинг“.
- Прва и Трећа метода означене су са „бондинг“, „стронг_тиес“, што значи да ће се, ако се КСМЛ ажурира у било којој групи, покренути овај тест случај.
- Други метод је означен само са групом „везивање“, то значи да ако се КСМЛ ажурира групом за везивање. Само у том случају ће се покренути овај тест случај.
- Четврти тест случај је означен групом стронг_тиес, што значи да ће се овај тест случај покренути само ако је КСМЛ ажуриран именом групе стронг_тиес.
- Последњи, али не најмање важни, пети тест случај је повезан са групом за повезивање, што значи да ће се овај тест случај покренути само ако је КСМЛ ажуриран именом групе за повезивање.
Дакле, укупно имамо 4 сценарија;
- Желимо да покренемо све тестове без обзира на назив групе. У овом случају уклонићемо ознаку Групе из покретања КСМЛ-а.
- Желимо да покренемо тест неколико случајева који су повезани само са једном од група, тј. Стронг_тиес или везивањем
- Молимо вас да погледате:
- У овом видео запису коментарише се параметар Гроуп из покретања КСМЛ-а. Стога ћете видети да су сви тест случајеви извршени.
- Као додатак видеу, сада смо у групу КСМЛ укључили име групе, можете видети само тест случајеве који су специфични за ту групу.
- Користимо механизам Екцлуде да бисмо искључили тест случај:
- Молимо вас да погледате
- Видите да смо користили изузетак неколико тест примера (тц02) исписивањем њиховог имена у покретању КСМЛ-а. У коначном резултату наведени тестови нису покренути.
- На крају, користимо укључени тест механизам да бисмо укључили тест случајеве (тц01ЛаунцхУРЛ, тц03ЕнтерЦредентиалс и тц05ВерифиХиперлинкс)
- Молимо вас да погледате
- У овом видео запису видећете да се примери случајева који се помињу у КСМЛ-у изводе само током извршавања теста.
Преузмите код са поменуте УРЛ адресе, он ће садржати све врсте тестКСМЛ:
Преузмите горњи код
Закључак
Овде смо научили релативно нов начин за покретање тест случајева користећи КСМЛ у пројекту Мавен.
Почели смо пружањем кратког увода о тестНГ-у и наставили са потпуном техничком спецификацијом група, изузмите и укључите.