Селениум ВебДривер: ТестНГ за управљање тест случајевима и генерисање извештаја



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

У претходном блогу сам вас научио како да покренете свој први тест Селениум ВебДривер. На овом блогу ћу обрађивати напредне концепте Селениум ВебДривер. Већ сам поменуо неколико пута да Селениум ВебДривер има ограничења у погледу управљања тест случајевима и генерисања извештаја о тестирању. Па, која је алтернатива? Алат који је тако популаран попут селена сигурно мора имати заобилазно решење, зар не? Наравно да има! Можемо да користимо комбинацију селена и ТестНГ да победимо ово ограничење и то ће бити тема расправе на овом блогу.

претвори датум низа у датум у јави

У случају да сте нови Селениум и желите увод у основне концепте, путовање можете започети одавде: ? Међутим, остали могу да започну тестНГ за селен са овог блога.Такође треба да знате да организације активно лове професионалце са , што га чини важном вештином за савладавање софтверских тестера.





Програмери софтвера из целог света једногласно ће се сложити да писање кода у тестним случајевима штеди добар део њиховог времена за отклањање грешака. Зашто? То је зато што тест примери помажу у стварању робусног кода без грешака. Како се то ради? Разбијањем целокупног кода на мање тест случајеве, а затим проценом да ли сваки од ових тест случајева пролази / не успева, можемо створити код без грешака. С обзиром да Селениум не подржава извршавање кода у тест случајевима, морамо користити ТестНГ за исти. Овде се ТестНГ уклапа у оквир Селениум.

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



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

тестнг - селен вебдривер

Па, како ТестНГ обавља посао? На ово питање ће се одговорити уследећи одељак овог блока са упутствима за Селениум ВебДривер, где ћу разговарати о управљању разним тест случајевима помоћу ТестНГ-а.



Селениум ВебДривер са ТестНГ

Тест случајеви се могу дефинисати и њима се може управљати на један од следећих начина:

  1. Тест Аннотатионс
  2. Одређивање приоритета
  3. Онемогућавање тест случајева
  4. Зависност методе
  5. Груписање
  6. Тврдње
  7. Генерација извештаја

Да почнем да објашњавамсвака од ових функционалности.

Тест Аннотатионс

Пре свега, поставимо себи следеће питање: Зашто треба да користимо напомене? Када их можемо користити? Белешке у селенијуму се користе за контролу следеће методе која ће се извршити. Ознаке теста су дефинисане пре сваке методе у коду теста. У случају да ниједна метода нема префикс са напоменама, тада ће се та метода занемарити и неће се извршити као део тест кода. Да би их дефинисали, методе треба једноставно означити са „ @Тест ‘. На пример, погледајте доњи исечак кода.

пакет тестнг импорт орг.опенка.селениум.ВебДривер импорт орг.опенка.селениум.фирефок.ФирефокДривер импорт орг.тестнг.аннотатионс.АфтерЦласс импорт орг.тестнг.аннотатионс.АфтерМетход импорт орг.тестнг.аннотатионс.БефореЦласс импорт орг.тестнг.аннотатионс .БефореМетход импорт орг.тестнг.аннотатионс.Тест публиц цласс ТестАннотатионс {@Тест публиц воид миТестМетход () {Систем.оут.принтлн ('Инсиде метход: - миТестМетход') ВебДривер дривер = нев ФирефокДривер () дривер.гет ('хттп: //ввв.селениумфрамеворк.цом/Працтицеформ/ ') Стринг титле = дривер.гетТитле () Систем.оут.принтлн (титле) дривер.куит ()} @БефореМетход публиц воид бефореМетход () {Систем.оут.принтлн (' Тхис комад кода се извршава пре методе: - миТестМетход ') Систем.сетПроперти (' вебдривер.гецко.дривер ',' Ц: УсерсВардханворкспацеСелениумПројецтфилесгецкодривер.еке ')} @АфтерМетход публиц воид афтерМетход () {Систем.оут.принтлн (' Овај комад кода се извршава након методе: - миТестМетход ')} @БефореЦласс јавна воид преЦласс () {Систе м.оут.принтлн ('Овај део кода се извршава пре извршавања класе')} @АфтерЦласс јавна празнина афтерЦласс () {Систем.оут.принтлн ('Овај део кода се извршава након извршавања класе')} }

У горе наведеном коду приметили бисте да нисам дефинисао ‘главни’ метод. Међутим, дефинисао сам још 5 метода. То су „миТестМетход“, „бефореМетход“, „афтерМетход“, „бефореЦласс“ и „афтерЦласс“. Такође, имајте на уму редослед дефинисања метода у коду јер се они неће извршавати истим тим редоследом.

Означена је метода „миТестМетход“ @Тест , и то је главна метода или део кода који се мора извршити. Остале анотиране методе извршават ће се прије и након извршавања ове методе. Будући да је означена ознака „бефореМетход“ @БефореМетход , извршиће се пре него што се изврши „миТестМетход“. Слично томе, ознака „афтерМетход“ је означена са @АфтерМетход , и тако ће се извршити након „миТестМетход“.

Међутим, „бефореЦласс“ је означен са @Пре часа , што значи да ће се извршити и пре него што се изврши сама класа. Име нашег разреда овде је ТестАннотатионс , и према томе, пре него што класа почне да се извршава, извршиће се део кода унутар „бефореЦласс“. Слично томе, ознака „афтерЦласс“ је означена са @АфтерМетход , и тако ће се извршити након предавања ТестАннотатионс извршава се.

Ако и даље имате забуне у вези са редоследом извршења, исечак у наставку ће вам сигурно помоћи.

1. БефореСуите 2. БефореТест 3. БефореЦласс 4. БефореМетход 5. Тест 6. АфтерМетход 7. АфтерЦласс 8. АфтерТест 9. АфтерСуите

Резултат горњег кода биће:

Овај део кода се извршава пре извршавања класе Овај део кода се извршава пре методе: - миТестМетход Унутрашња метода: - миТестМетход 1493192682118 гецкодривер ИНФО Слушање на 127.0.0.1.13676 1493192682713 мозпрофиле :: профил ИНФО Коришћење путање профила Ц: УсерсВардханАппДатаЛоцалТемп уст_ .вГкцвввКскл2и 1493192682729 гецкодривер :: марионетте ИНФО Покретање прегледача Ц: Програмске датотеке (к86) Мозилла Фирефокирефок.еке 1493192682729 гецкодривер :: марионетте ИНФО Повезивање са Марионетом на локалном хосту: 59792 [ГПУ 6152] датотека грађења: ц / 109: ц /моз2_славе/м-рел-в32-00000000000000000000/буилд/срц/ипц/цхромиум/срц/цхроме/цоммон/ипц_цханнел_вин.цц, линија 346 1493192688316 Марионет ИНФО Слушање на порту 59792 26. априла 2017. 13:14:49 орг. опенка.селениум.ремоте.ПротоцолХандсхаке цреатеСессион ИНФО: Откривен дијалект: В3Ц ЈаваСцрипт грешка: хттп://т.дтсцоут.цом/и/?л=хттп%3А%2Ф%2Фввв.селениумфрамеворк.цом%2ФПрацтицеформ%2Ф&ј=, линија 1: ТипЕррор: доцумент.гетЕлементсБиТагНа ме (...) [0] је недефинисан Селениум Фрамеворк | Працтицеформ 1493192695134 Марионетте ИНФО Нове везе више неће бити прихваћене 26. априла 2017. 13:14:57 орг.опенка.селениум.ос.УникПроцесс уништити ТЕШКО: Није могуће убити процес са ПИД 6724 Овај део кода се извршава након методе: - миТестМетход Овај део кода се извршава након извршавања класе ПАССЕД: миТестМетход =================================== ============ Подразумевани тест Покретање тестова: 1, неуспеха: 0, прескакања: 0 ======================== ======================= ============================= ==================== Подразумевани пакет Укупно покренутих тестова: 1, Откази: 0, Прескочи: 0 =============== ================================

Као што видите из горњег резултата, број извршених тестова је 1, а неуспелих 0. То значи да је код успешан. Чак ће и редослед извршења метода бити у редуЈашто је раније поменуто.

Када извршите овај код на својој машини, Селениум ВебДривер ће покренути инсталацију вашег прегледача Фирефок, прећи на образац за праксу Селениум Фрамеворк-а, затворити инстанцу прегледача и приказати исти излаз као што је приказано горе у вашем Ецлипсе ИДЕ-у.

У свом коду сам користио само 5 различитих напомена. Али постоји много више напомена које се могу користити за контролу следећег метода који треба извршити. Цела листа напомена објашњена је устодоле:

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

@АфтерСуите - Метода означена са @АфтерСуите покренуће се након извршавања свих тестова у пакету.

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

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

@БефореГроуп - Метода означена са @БефореГроуп покренуће се пре покретања сваке групе.

@АфтерГроуп - Метода означена са @АфтерГроуп покренуће се након покретања сваке групе.

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

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

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

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

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

питхон деф __инит __ (само)

Снимак екрана извештаја ТестНГ јеприсутни у наставку: -

Одређивање приоритета

Говорили смо о томе како се различите методе могу дефинисати тако да се извршавају око @Тест метода. Али, шта ако их имате више @Тест методу и желите да дефинишете редослед извршења између њих?

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

@Тест (Приорити = 2) јавна статичка празнина ФирстТест () {систем.оут.принтлн ('Ово је тест случај број два због приоритета # 2')} @Тест (Приорити = 1) јавна статичка празнина СецондТест () { систем.оут.принтлн ('Ово је тест случај број један због приоритета бр. 1')} @Тест публиц статиц воид ФиналТест () {систем.оут.принтлн ('Ово је завршни тест случај јер нема приоритета') )}

Онемогућавање тест случајева

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

Чин онемогућавања тест случаја се такође врши путем параметара. Можемо поставити омогућено атрибут „лажно“. Подразумевано ће бити омогућени сви примери испитивања, па их стога не морамо дефинирати сваки пут када напишемо тест. Погледајте параметре треће и четврте методе у доњем делукод.

@Тест (Приоритет = 2, омогућено = Тачно) јавна статичка воид ФирстТест () {систем.оут.принтлн ('Ово је тест број два због приоритета # 2')} @Тест (Приоритет = 1, омогућено = Тачно ) публиц статиц воид СецондТест () {систем.оут.принтлн ('Ово је тест случај број један због приоритета # 1')} @Тест (енаблед = фалсе) публиц статиц воид СкиппедТест () {систем.оут.принтлн ( 'Ово је прескочени тест случај јер је ово онемогућено')} @Тест (енаблед = Труе) јавна статичка воид ФиналТест () {систем.оут.принтлн ('Ово је завршни тест случај, који је омогућен и нема приоритет ')}

Зависност методе

Сада у случају да имате ситуацију у којој желите да се део кода изврши само ако задовољава услов или само ако се одређена метода успешно изврши, онда то можемо да урадимо помоћу зависиОнМетход (). Ово је у основи услов зависности методе где ће се метода извршити у зависности од друге методе. Ако додатно поставимо алваисРун атрибут тачно, тада ће се метода извршити без обзира на услов неуспјеха / проласка зависне методе. Погледајте код у доњем исечку кода.

@Тест јавна статичка воид ФирстТест () {систем.оут.принтлн ('Ово је први тест случај који је извршен')} @Тест (депендОнМетходс = {'ФирстТест'}) јавна статичка воид СецондТест () {систем.оут. принтлн ('Ово је други тест случај који се извршава Ово је зависна метода')} @Тест (депендОнМетходс = {'СецондТест'}) публиц статиц воид ФиналТест () {систем.оут.принтлн ('Ово је завршни тест Случај Ионако ће се извршити. ')}

Ово нас води на још један важан аспект тестанапомене која је Груписање .

Груписање

До сада морате знати да ће у коду бити низ метода као део нашег тест случаја. Рецимо да постоји 100 тест случајева, али желимо да извршимо само 20 тест случајева у следећем тесту. Да ли мислите да то можемо? Наравно да можемо.

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

@Тест (гроупс = {'МиГроуп'})) публиц статиц воид ФирстТест () {систем.оут.принтлн ('Тхис ис а парт оф тхе Гроуп: МиГроуп')} @Тест (гроупс = {'МиГроуп'})) публиц статиц воид СецондТест () {систем.оут.принтлн ('Ово је такође део Групе: МиГроуп')} @Тест јавна статичка воид ТхирдТест () {систем.оут.принтлн ('Али, ово није део Група: МиГроуп ')}

Тврдње ТестНГ-а

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

У доњи код сам укључио 3 методе испитивања, при чему прва и трећа метода имају услов проласка, а друга метода неуспех. Погледајте код сами.

пакет тестнг импорт орг.тестнг.аннотатионс.Тест импорт орг.тестнг.аннотатионс.БефореМетход импорт орг.опенка.селениум.ВебДривер импорт орг.опенка.селениум.фирефок.ФирефокДривер импорт орг.тестнг.Ассерт импорт орг.тестнг.аннотатионс.АфтерМетход тврдње јавне класе {@БефореМетход јавна воид преМетход () {Систем.сетПроперти ('вебдривер.гецко.дривер', 'Ц: УсерсВардханворкспацеСелениумПројецтфилесгецкодривер.еке')} публиц боолеан исЕкуал (инт а, инт б) {иф (а == б ) {ретурн труе} елсе {ретурн фалсе}} @Тест публиц воид тестЕкуалити1 () {Ассерт.ассертЕкуалс (труе, исЕкуал (10, 10)) Систем.оут.принтлн ('Ово је услов за пролаз')} @Тест публиц воид тестЕкуалити2 () {Ассерт.ассертЕкуалс (труе, исЕкуал (10, 11)) Систем.оут.принтлн ('Ово је услов неуспеха')} @Тест публиц воид гетТитле () {ВебДривер дривер = нови управљачки програм ФирефокДривер (). гет ('хттпс://ввв.гмаил.цом') Стринг титле = дривер.гетТитле () Ассерт.ассертЕкуалс (титле, 'Гмаил') Систем.оут.принтлн ('Ово је поново услов за пролаз')} }

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

1493277977348 гецкодривер ИНФОРМАЦИЈЕ Слушање на 127.0.0.1:47035 1493277977993 мозпрофиле :: Информације о профилу Користећи профил путање Ц: УсерсВардханАппДатаЛоцалТемп уст_мозпрофиле.З7Кс9уФдКОДви 1493277977994 гецкодривер :: марионета ИНФОРМАЦИЈЕ Покретање претраживача, Ц: Програм Филес (к86) Опера Фирефокирефок.еке 1493277977998 гецкодривер :: марионета ИНФО Повезивање са Марионетом на локалном хосту: 50758 [ГПУ 6920] УПОЗОРЕЊЕ: грешка цеви: 109: датотека ц: / буилдс / моз2_славе / м-рел-в32-00000000000000000000 / буилд / срц / ипц / цхромиум / срц / цхроме / цоммон / ипц_цханнел_вин. цц, линија 346 1493277981742 Марионетте ИНФО Слушање на порту 50758 27. априла 2017. 12:56:22 орг.опенка.селениум.ремоте.ПротоцолХандсхаке цреатеСессион ИНФО: Откривен дијалект: В3Ц Ово је поново услов за пролаз Ово је услов за пролаз ПРОШЛО: гетТитле ПАССЕД: тестЕкуалити1 ФАИЛЕД: тестЕкуалити2 јава.ланг.АссертионЕррор: очекује се [нетачно], али је пронађено [тачно] на орг.тестнг.Ассерт.фаил (Ассерт.јава:93) на орг.тестнг.Ассерт.фаилНотЕкуалс (Ассерт.јава: 512) на орг.тестнг.Ассерт.ассертЕ куалсИмпл (Ассерт.јава:134) на орг.тестнг.Ассерт.ассертЕкуалс (Ассерт.јава:115) на орг.тестнг.Ассерт.ассертЕкуалс (Ассерт.јава:304) на орг.тестнг.Ассерт.ассертЕкуалс (Ассерт.јава : 314) ат тестнг.Ассертионс.тестЕкуалити2 (Ассертионс.јава:38) ат сун.рефлецт.НативеМетходАццессорИмпл.инвоке0 (Нативе Метход) ат сун.рефлецт.НативеМетходАццессорИмпл.инвоке (Ункновн Соурце) ат сун.рефлецт.ДелегоркеИметлИнделвокеМетходАнцессорИнделвокеМетход Извор) на јава.ланг.рефлецт.Метход.инвоке (непознати извор) на орг.тестнг.интернал.МетходИнвоцатионХелпер.инвокеМетход (МетходИнвоцатионХелпер.јава:108) на орг.тестнг.интернал.Инвокер.инвокеМетход (Инвокер.јава:661) на орг.тестнг.интернал.Инвокер.инвокеТестМетход (Инвокер.јава:869) на орг.тестнг.интернал.Инвокер.инвокеТестМетходс (Инвокер.јава:1193) на орг.тестнг.интернал.ТестМетходВоркер.инвокеТестМетходс (ТестМетходВоркер.јава:126 ) на орг.тестнг.интернал.ТестМетходВоркер.рун (ТестМетходВоркер.јава:109) на орг.тестнг.ТестРуннер.приватеРун (ТестРуннер.јава:744) на орг.тестнг.ТестРу ннер.рун (ТестРуннер.јава:602) на орг.тестнг.СуитеРуннер.рунТест (СуитеРуннер.јава:380) на орг.тестнг.СуитеРуннер.рунСекуентиалли (СуитеРуннер.јава:375) на орг.тестнг.СуитеРуннер.приватеРун (СуитеРуннер .јава: 340) на орг.тестнг.СуитеРуннер.рун (СуитеРуннер.јава:289) на орг.тестнг.СуитеРуннерВоркер.рунСуите (СуитеРуннерВоркер.јава:52) на орг.тестнг.СуитеРуннерВоркер.рун (СуитеРуннерВоркер.јава:86) на орг.тестнг.ТестНГ.рунСуитесСекуентиалли (ТестНГ.јава:1301) на орг.тестнг.ТестНГ.рунСуитесЛоцалли (ТестНГ.јава:1226) на орг.тестнг.ТестНГ.рунСуитес (ТестНГ.јава:1144) на орг.тестнг. ТестНГ.рун (ТестНГ.јава:1115) на орг.тестнг.ремоте.АбстрацтРемотеТестНГ.рун (АбстрацтРемотеТестНГ.јава:132) на орг.тестнг.ремоте.РемотеТестНГ.инитАндРун (РемотеТестНГ.јава:230) на орг.тестнг.ремоте .РемотеТестНГ.маин (РемотеТестНГ.јава:76) ======================================= ======== Подразумевани тест Тестови: 3, неуспеси: 1, прескоци: 0 ============================ =================== ================================= ================ Подразумевани пакет Укупно покренутих тестова: 3, Откази: 1, Прескочи: 0 ===================================== ============

Дакле, то је крај концепата који се односе на управљање тест случајем. Преостала нам је још једна тема, а то је генерисање извештаја. Генерисање извештаја је последња тема у овом водичу за Селениум ВебДривер, јер се извештаји могу генерисати само након свихтестови се извршавају.

структура података речника у јави

Генерација извештаја

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

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

 

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

У сваком случају враћајући се на наш извештај, можете именовати сваки пакет или тест или класу након отварања тих ознака и не заборавите да затворите сваку ознаку коју отворите. Име свог апартмана дао сам као ТестНГс , назив теста као Тест Биљешке и назив класе као тестнг.ТестАннотатионс. Имајте на уму да је назив класе у формату ' пацкагенаме.цласснаме ’ .

Када покренете ову датотеку као ТестНГ пакет, извршавање ће започети и добићете детаљне извештаје о тестирању. Резултат теста добићете на картици конзоле, а резултат пакета теста на следећој картици. Извештај који сам генерисао за извршавање мог кода јеудоњи снимак екрана. Приметићете да овог пута постоји назив скупа, назив теста, назив класе, као и време потребно за извршавање сваког од њих.

У случају да желите да погледате ХТМЛ извештај (индексни извештај или извештај који се може послати путем е-поште), можете да одете на тест-оутпут директоријум у директоријуму пројекта у вашем радном простору. Кликом на њих можете да прегледате извештаје и касније. Испод су њихове снимке екрана.

Индексни извештај : -

Извештај доступан : -

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

Можете погледати доле наведени туториал видео за Селениум ВебДривер да бисте били сведоци демонстрације различитих концепата објашњених на овом блогу.

Обука за селен | ТестНГ Фрамеворк за селен | Едурека

Овај видео о Едурека Селениум Траининг водиће вас кроз детаљне детаље о Селениум ВебДривер. Овај туториал видео за Селениум идеалан је и за почетнике и за професионалце који желе да разјасне основе ВебДривер наредби и науче како ТестНГ може да се користи са Селениум за управљање разним тест случајевима.

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

Имате питање за нас? Молимо вас да то споменете у одељку за коментаре и јавићемо вам се.