Паралелно извршавање у селену: Руковање сесијама & амп; Зависност од ТестНГ-а

Преглед садржаја:

Anonim

Да бисмо разумели како паралелно покретати скрипте, хајде да прво разумемо

Зашто нам је потребно руковање сесијама?

Током извршавања теста, Селениум ВебДривер мора све време да комуницира са прегледачем да би извршио задате команде. У време извршавања, такође је могуће да, пре тренутног извршавања, неко други започне извршавање друге скрипте, на истој машини и у истој врсти прегледача.

У таквој ситуацији потребан нам је механизам по којем се наше две различите егзекуције не би требале преклапати једна с другом. То се може постићи коришћењем руковања сесијама у селену.

Како постићи руковање сесијама у програму Селениум ВебДривер?

Ако проверите изворни код програма Селениум ВебДривер, наћи ћете променљиву названу „сессионИд“. Кад год креирамо нову инстанцу објекта ВебДривер, генерисаће се нови „сессионИд“ и приложити уз тај одређени Фирефок / Цхроме / ИЕ управљачки програм ().

Дакле, све што радимо после овога извршиће се само у тој одређеној сесији прегледача Фирефок.

Будући да је ово уграђена функционалност, нема изричите потребе за додељивањем ИД-а сесије

Пример кода: Овде ће се генерисати две различите сесије за два различита ВебДривер-а.

импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.фирефок.ФирефокДривер;јавни разред СессионХандлинг {публиц статиц воид маин (Стринг ... стрингови) {// Прва сесија ВебДривераУправљачки програм за ВебДривер = нови ФирефокДривер ();// Иди на страницу гуру99дривер.гет ("хттп://демо.гуру99.цом/В4/");// Друга сесија ВебДривераВебДривер дривер2 = нови ФирефокДривер ();// Иди на страницу гуру99дривер2.гет ("хттп://демо.гуру99.цом/В4/");}}

Како покретати паралелне тестове са селеном

Постоје ситуације у којима желите да истовремено покренете више тестова.

У таквим случајевима се може користити атрибут „паралелно“

Паралелни атрибут суите ознаке може прихватити четири вредности:

тестови Сви тест случајеви унутар ознаке <тест> датотеке Тестинг кмл ће се одвијати паралелно.
класе Сви тестови унутар Јава класе радиће паралелно
методе Све методе са ознаком @Тест извршиће се паралелно.
инстанци Тест случајеви у истој инстанци извршиће се паралелно, али две методе две различите инстанце ће се изводити у различитим нитима.

Атрибут цоунт-тхреад омогућава вам да одредите колико нити треба бити додељено за ово извршавање.

Комплетан пример: У овом примеру, три тест случаја ће се одвијати паралелно и попуњавати податке за пријаву на хттп://демо.гуру99.цом

Комплетни пројекат ће изгледати овако:

ТестГуру99МултиплеСессион.јава

импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;импорт орг.тестнг.аннотатионс.Тест;јавна класа ТестГуру99МултиплеСессион {@Тестјавна воид екецутСессионОне () {// Прва сесија ВебДривераСистем.сетПроперти ("вебдривер.цхроме.дривер", "цхромедривер.еке");Управљачки програм за ВебДривер = нови ЦхромеДривер ();// Иди на страницу гуру99дривер.гет ("хттп://демо.гуру99.цом/В4/");// пронађите поље за текст корисничког имена и попуните гадривер.финдЕлемент (Би.наме ("уид")). сендКеис ("Дривер 1");}@Тестјавна празнина екецутеСессионТво () {// Друга сесија ВебДривераСистем.сетПроперти ("вебдривер.цхроме.дривер", "цхромедривер.еке");Управљачки програм за ВебДривер = нови ЦхромеДривер ();// Иди на страницу гуру99дривер.гет ("хттп://демо.гуру99.цом/В4/");// пронађите поље за текст корисничког имена и попуните гадривер.финдЕлемент (Би.наме ("уид")). сендКеис ("Дривер 2");}@Тестјавна воид екецутСессионТхрее () {// Трећа сесија ВебДривер-аСистем.сетПроперти ("вебдривер.цхроме.дривер", "цхромедривер.еке");Управљачки програм за ВебДривер = нови ЦхромеДривер ();// Иди на страницу гуру99дривер.гет ("хттп://демо.гуру99.цом/В4/");// пронађите поље за текст корисничког имена и попуните гадривер.финдЕлемент (Би.наме ("уид")). сендКеис ("Дривер 3");}}

ТестНГ.КСМЛ

<суите наме = "ТестСуите" тхреад-цоунт = "3" паралелне = "методе"><тест наме = "тестГуру"><класе><цласс наме = "ТестГуру99МултиплеСессион">

Редослед и зависност тест случаја

Можете поставити редослед и зависност извршења тест случаја.

Претпоставимо да имате два тест случаја, 'тестГуру99ТЦ1' и 'тестГуру99ТЦ2' и желите да извршите тест случај 'тестГуру99ТЦ2' пре 'тестГуру99ТЦ1'. У том случају ћемо користити атрибут 'депендОнМетходс' да направимо зависност и редослед извршења.

<суите наме = "ТестСуите" тхреад-цоунт = "3" паралелне = "методе"><тест наме = "тестГуру"><класе><цласс наме = "ТестГуру99МултиплеСессион"><инцлуде валуе = "тестГуру99ТЦ1" зависиОнМетходс = "тестГуру99ТЦ2" /><укључују вредност = "тестГуру99ТЦ2" />

Резиме

  • Креиран је нови ИД сесије за нову инстанцу ВебДривер-а.
  • Једна сесија ће се повезати са одређеним прегледачем.
  • Користећи нит атрибута и паралелно, паралелно покрећете своје скрипте.
  • Зависност атрибута можете користити за постављање налога за тестирање извршења