ТестНГ @ Приоритет теста у селену

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

Anonim

ТестНГ је оквир за тестирање, који покрива различите врсте дизајна теста, као што су јединични тест, функционални тест, крај до краја тест, УИ тест и тест интеграције.

У свом Тестнг коду можете покренути један или више тест случајева.

Ако приоритет теста није дефинисан током извођења више тест случајева, ТестНГ додељује свим @Тест приоритет нула (0).

Сада, док трчим; најпре ће бити заказани нижи приоритети.

У овом упутству ћете научити -

  • Демонстрација ТестНГ кода без приоритета
  • Демонстрација ТестНГ кода без приоритета по абецедном реду
  • Како поставити Приоритет у ТестНГ-у
  • Методе са истим приоритетом
  • Комбиновање приоритетних (са истим приоритетом) и неприоритетних метода

Демонстрација ТестНГ кода без приоритета

Узмимо сценарио у коме ће бити потребно секвенцирање како би се прошли сви тест случајеви:

Сценариј: Генеришите код где треба да извршите Гоогле претрагу са одређеном кључном речи, рецимо „Фацебоок“. Сада проверите да ли је наслов прегледача промењен у „Фацебоок - Гоогле Сеарцх“.

Напомена: Сваки корак који кодирате треба да буде у засебним методама

1. метод : Отворите прегледач и реците Фирефок (опенБровсер ())

2. метод : Покрените Гоогле.цом (лаунцхГоогле ())

3. метод : Извршите претрагу помоћу „Фацебоок-а“ (перформСеарцхАндЦлицк1стЛинк ())

4. метод : Потврдите наслов Гоогле странице претраге (ФацеБоокПагеТитлеВерифицатион ())

Шифра за наш сценарио :

импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.фирефок.ФирефокДривер;импорт орг.тестнг.Ассерт;импорт орг.тестнг.аннотатионс.Тест;јавни разред Приорити_Ин_тестНГ {Управљачки програм за ВебДривер;// 1. метод: Отворите прегледач и реците Фирефок@Тестјавна празнина опенБровсер () {дривер = нови ФирефокДривер ();}// Метод 2: Покрените Гоогле.цом@Тестпублиц воид лаунцхГоогле () {дривер.гет ("хттп://ввв.гоогле.цо.ин");}// Метод 3: Извршите претрагу помоћу „Фацебоок-а“@Тестјавна воид пеформСеацхАндЦлицк1стЛинк () {дривер.финдЕлемент (Би.кпатх (".//*[@ титле = 'Сеарцх']")). сендКеис ("Фацебоок");}// Метод 4: Верификујте наслов Гоогле странице за претрагу.@Тестјавна празнина ФацеБоокПагеТитлеВерифицатион () баца изузетак {дривер.финдЕлемент (Би.кпатх (".//*[@ валуе = 'Сеарцх']")). цлицк ();Тхреад.слееп (3000);Ассерт.ассертЕкуалс (дривер.гетТитле (). Садржи („Фацебоок - Гоогле претрага“), тачно);}}

Објашњење кода

Као што је горе поменуто, створили смо 4 тест случаја за извођење сваке радње независним методама.

  • Прва метода (опенБровсер) наводи иницијализацију прегледача Фирефок.
  • Други метод (лаунцхГоогле) наводи да се покретање Гоогле.цом налази у иницијализованом прегледачу.
  • Трећи метод (пеформСеацхАндЦлицк1стЛинк) наводи да се претрага врши у пољу за претрагу (са кпатх (".//*[@титле='Сеарцх ']") са појмом за претрагу као Фацебоок и
  • Четврти и последњи метод (ФацеБоокПагеТитлеВерифицатион) наводи да кликните на икону претраживања Гоогле-а и потврдите да је наслов прегледача промењен у Фацебоок - Гоогле Сеарцх.

Сада покрените овај код помоћу тестНГ-а, као што је приказано у видеу, открићете да сви тест случајеви не успевају. Разлог неуспеха: пошто постоји зависност претходног тест случаја да ће проћи, биће прослеђен само тренутни текући тест случај.

У овом случају,

  • Прва метода која се извршава је опенБровсер (). Прошао је јер нема никакве зависности.
  • Друга извршена метода је ФацеБоокПагеТитлеВерифицатион (); не успева јер покушавамо да кликнемо на дугме за претрагу и верификујемо наслов прегледача.
  • Можете видети да ако активност претраживања није процес, онда се може проћи било који други корак. Стога је ово разлог што моји тест случајеви не успевају.
ПРОШЛО: опенБровсерФАИЛЕД: ФацеБоокПагеТитлеВерифицатионФАИЛЕД: лаунцхГооглеФАИЛЕД: пеформСеацхАндЦлицк1стЛинк

Демонстрација ТестНГ кода без приоритета по абецедном реду

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

пакет цом.гуру.тестнганнотатионс;импорт орг.тестнг.аннотатионс.Тест;јавна класа ТестНГ_Приорити_Аннотатионс {@Тестјавна воид ц_метход () {Систем.оут.принтлн („Ја сам у методи Ц“);}@Тестјавна воид б_метход () {Систем.оут.принтлн („Ја сам у методи Б“);}@Тестјавна празнина а_метход () {Систем.оут.принтлн („Ја сам у методи А“);}@Тестјавна воид е_метход () {Систем.оут.принтлн („Ја сам у методи Е“);}@Тестјавна воид д_метход () {Систем.оут.принтлн („Ја сам у методи Д“);}}

Оутпут

Ја сам у методи А.Ја сам у методи Б.Ја сам у методи Ц.Ја сам у методи Д.Ја сам у методи Е.

Иако смо методе дефинисали на случајан начин (ц, б, а, е, д), тестнг је извршио методе на основу њихових имена узимајући у обзир абецедни редослед, а исто се одразило и на резултат.

Како поставити Приоритет у ТестНГ-у

Као што сте видели у претходном примеру да је секвенцирање потребно да би се прошло овај сценарио, тако ћемо модификовати претходни комад кода помоћу Приорити Параметер (Параметар приоритета) тако да сваки тест треба да се изврши у односу на приоритет који им је додељен.

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

Приоритет у тестНГ у акцији

импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.фирефок.ФирефокДривер;импорт орг.тестнг.Ассерт;импорт орг.тестнг.аннотатионс.Тест;јавни разред Приорити_Ин_тестНГ {Управљачки програм за ВебДривер;// Метод 1: Отворите прегледач, рецимо Фирефок@Тест (приоритет = 1)јавна празнина опенБровсер () {дривер = нови ФирефокДривер ();}// Метод 2: Покрените Гоогле.цом@Тест (приоритет = 2)публиц воид лаунцхГоогле () {дривер.гет ("хттп://ввв.гоогле.цо.ин");}// Метод 3: Извршите претрагу помоћу „Фацебоок-а“@Тест (приоритет = 3)јавна воид пеформСеацхАндЦлицк1стЛинк () {дривер.финдЕлемент (Би.кпатх (".//*[@ титле = 'Сеарцх']")). сендКеис ("Фацебоок");}// Метод 4: Верификујте наслов Гоогле странице за претрагу.@Тест (приоритет = 4)јавна празнина ФацеБоокПагеТитлеВерифицатион () баца изузетак {дривер.финдЕлемент (Би.кпатх (".//*[@ валуе = 'Сеарцх']")). цлицк ();Тхреад.слееп (3000);Ассерт.ассертЕкуалс (дривер.гетТитле (). Садржи („Фацебоок - Гоогле претрага“), тачно);}} 

Објашњење кода

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

Овде можете видети да су тест примери дати приоритет. Прво се извршавају тест случајеви нижег приоритета, тј. Сада се у тест случајевима користе секвенцијална извршења према приоритету. Дакле, сви случајеви испитивања сада пролазе.

Обратите пажњу на конзолу помрачења:

Излаз :

ПРОШЛО: опенБровсерПРОШЛО: покрени ГооглеПРОШЛО: пеформСеарцхАндЦлицк1стЛинкПРОШЛО: ФацеБоокПагеТитлеВерифицатион

Број 0 има највећи приоритет (прво ће се извршити), а приоритет се заснива на датом броју, тј. 0 има највећи приоритет од 1. 1 има највећи приоритет од 2 и тако даље.

пакет цом.гуру.тестнганнотатионс;импорт орг.тестнг.аннотатионс.Тест;јавна класа ТестНГ_Приорити_Аннотатионс {@Тест (приоритет = 6)јавна воид ц_метход () {Систем.оут.принтлн („Ја сам у методи Ц“);}@Тест (приоритет = 9)јавна воид б_метход () {Систем.оут.принтлн („Ја сам у методи Б“);}@Тест (приоритет = 1)јавна празнина а_метход () {Систем.оут.принтлн („Ја сам у методи А“);}@Тест (приоритет = 0)јавна воид е_метход () {Систем.оут.принтлн („Ја сам у методи Е“);}@Тест (приоритет = 3)јавна воид д_метход () {Систем.оут.принтлн („Ја сам у методи Д“);}}

Оутпут

Ја сам у методи Е.Ја сам у методи А.Ја сам у методи Д.Ја сам у методи Ц.Ја сам у методи Б. 

Овде смо навели приоритете као 0,1,3,6,9. Дакле, прво се извршава метода која има приоритет 0, а затим метода која има приоритет-1 и тако даље. Овде се назив методе абецедног реда неће узимати у обзир како смо навели приоритете

Методе са истим приоритетом:

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

пакет цом.гуру.тестнганнотатионс;импорт орг.тестнг.аннотатионс.Тест;јавна класа ТестНГ_Приорити_Аннотатионс {@Тест (приоритет = 6)јавна воид ц_метход () {Систем.оут.принтлн („Ја сам у методи Ц“);}@Тест (приоритет = 9)јавна воид б_метход () {Систем.оут.принтлн („Ја сам у методи Б“);}@Тест (приоритет = 6)јавна празнина а_метход () {Систем.оут.принтлн („Ја сам у методи А“);}@Тест (приоритет = 0)јавна воид е_метход () {Систем.оут.принтлн („Ја сам у методи Е“);}@Тест (приоритет = 3)јавна воид д_метход () {Систем.оут.принтлн („Ја сам у методи Д“);}}

Оутпут

Ја сам у методи Е.Ја сам у методи Д.Ја сам у методи А.Ја сам у методи Ц.Ја сам у методи Б.

Овде се 'е' и 'д' извршавају на основу њихових приоритета. Али методе 'а' и 'ц' садрже исту вредност приоритета (6). Дакле, овде тестнг разматра абецедни ред 'а' и 'ц' и извршава их у складу с тим.

Комбиновање приоритетних (са истим приоритетом) и неприоритетних метода:

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

  1. Методе које имају исту приоритетну вредност.
  2. Више метода без приоритета.
пакет цом.гуру.тестнганнотатионс;импорт орг.тестнг.аннотатионс.Тест;јавна класа ТестНГ_Приорити_Аннотатионс {@Тест()јавна воид ц_метход () {Систем.оут.принтлн („Ја сам у методи Ц“);}@Тест()јавна воид б_метход () {Систем.оут.принтлн („Ја сам у методи Б“);}@Тест (приоритет = 6)јавна празнина а_метход () {Систем.оут.принтлн („Ја сам у методи А“);}@Тест (приоритет = 0)јавна воид е_метход () {Систем.оут.принтлн („Ја сам у методи Е“);}@Тест (приоритет = 6)јавна воид д_метход () {Систем.оут.принтлн („Ја сам у методи Д“);}}

Излаз:

Ја сам у методи Б.Ја сам у методи Ц.Ја сам у методи Е.Ја сам у методи А.Ја сам у методи Д. 
ПРОШЛО: б_метходПРОШЛО: ц_метходПРОШЛО: е_методаПРОШЛО: а_методПРОШЛО: д_метход

Објашњење:

Прва преференција: Неприоритетне методе: 'ц' и 'б': На основу абецедног реда прво је извршено 'б', а затим 'ц'.

Друга предност: Приоритизоване методе: 'а', 'е' и 'д': 'е' је прво извршено јер је имало највећи приоритет (0). Како су приоритети метода „а“ и „д“ били исти, тестнг је размотрио абецедни редослед назива њихових метода. Дакле, између њих је прво изведено „а“, а затим „д“.

Осетљиво на мала и велика слова у програму ТестНГ

Само за вашу информацију постоји стандардна синтакса за дефинисање приоритета у тестНГ-у, тј. @ Тест (приоритет = 4) , претпоставимо да је дефинишете у некој другој синтакси, рецимо @ Тест (ПРИОРИТИ = 1), онда ће ваш ИДЕ то приказати као грешку компилације . Погледајте доњу слику:

Закључак:

Као што сте видели да ако постоји захтев за покретањем скупа тест случајева у одређеном низу, то се лако може урадити користећи Приорити користећи тестНГ као алат за покретање.

Ово упутство је омогућено захваљујући доприносима Рамандееп Сингха и Раме Крисхне Гаддеа