most popular test automation frameworks with pros
У последњих неколико туторијала за Селениум, разговарали смо о разним уобичајено и популарно коришћеним команде у ВебДривер-у , руковање веб елементима као што су веб табеле, оквири и руковање изузецима у скриптама селена.
Разговарали смо о свакој од ових наредби са примерцима исечака кода и примерима како бисмо вам омогућили ефикасно коришћење ових наредби кад год се сусретнете са сличним ситуацијама. Међу наредбама о којима смо расправљали у претходном упутству, мало њих дугује највећу важност.
Како напредујемо у селенијској серији, концентрисали бисмо свој фокус на Стварање оквира за аутоматизацију у следећих неколико предстојећих водича. Такође бисмо осветлили различите аспекте оквира за аутоматизацију, типове оквира за аутоматизацију, предности коришћења оквира и основне компоненте које чине оквир за аутоматизацију.
Шта ћете научити:
- Шта је Фрамеворк?
- Тест Аутоматион Фрамеворк
- Врсте оквира за аутоматизацију испитивања
- # 1) Оквир тестирања заснован на модулу
- # 2) Оквир за тестирање архитектуре библиотеке
- # 3) Оквир за тестирање на основу података
- # 4) Оквир за тестирање на основу кључних речи
- # 5) Оквир хибридног тестирања
- # 6) Оквир развоја вођен понашањем
- Закључак
- Препоручено читање
Шта је Фрамеворк?
Сматра се да је оквир комбинација постављених протокола, правила, стандарда и смерница који се могу уградити или следити у целини како би се искористиле предности скеле предвиђене Оквиром.
Размотримо сценариј из стварног живота.
Веома често користимо лифтове или лифтове. Постоји неколико смерница које се помињу у лифту и којих се треба придржавати и којима се треба пазити како би се искористила максимална корист и продужена услуга система.
Стога су корисници можда приметили следеће смернице:
- Обавезно проверите максимални капацитет лифта и не улазите у лифт ако је максимални капацитет достигнут.
- Притисните дугме аларма у случају било какве нужде или проблема.
- Дозволите путнику да изађе из лифта пре него што уђе у лифт и станите ван врата.
- У случају пожара у згради или ако постоји нека случајна ситуација, избегавајте употребу лифта.
- Не играјте се и не скачите унутар лифта.
- Не пушите у лифту.
- Позовите помоћ / помоћ ако се врата не отворе или ако лифт уопште не ради. Не покушавајте да отворите врата на силу.
Може бити много више правила или скупова смерница. Стога ове смернице ако се следе чине систем кориснијим, доступнијим, скалабилнијим и мање забринутим за кориснике.
Сада, док говоримо о „Тест Аутоматион Фрамеворкс“, померимо свој фокус ка њима.
Тест Аутоматион Фрамеворк
„Тест Аутоматион Фрамеворк“ је скела постављена да обезбеди окружење за извршавање скрипти за аутоматизацију теста. Оквир пружа кориснику разне погодности које му помажу да ефикасно развијају, извршавају и пријављују скрипте за аутоматизацију. То је више попут система који је створен посебно за аутоматизацију наших тестова.
На врло једноставном језику можемо рећи да је оквир конструктивна мешавина различитих смерница, стандарда кодирања, концепата, процеса, пракси, хијерархије пројеката, модуларности, механизма извештавања, убризгавања података из теста итд. У тестирање аутоматизације стубова. Дакле, корисник може следити ове смернице док аутоматизује апликацију како би искористио предности различитих продуктивних резултата.
дубина прва претрага ц ++
Предности могу бити у различитим облицима, попут лакоће скриптирања, скалабилности, модуларности, разумљивости, дефиниције процеса, поновне употребљивости, трошкова, одржавања итд. Стога, да би могли искористити ове погодности, програмерима се саветује да користе једну или више оквир за аутоматизацију испитивања.
Штавише, потреба за јединственим и стандардним оквиром за аутоматизацију тестирања се јавља када имате гомилу програмера који раде на различитим модулима исте апликације и када желимо да избегнемо ситуације у којима сваки од програмера примењује свој приступ аутоматизацији.
Белешка : Имајте на уму да је оквир за тестирање увек неовисан о апликацији, односно да се може користити са било којом апликацијом, без обзира на компликације (попут технолошког слога, архитектуре итд.) Апликације која се тестира. Оквир треба да буде скалабилан и одржив.
Предност оквира за аутоматизацију испитивања
- Поновна употребљивост кода
- Максимална покривеност
- Сценарио опоравка
- Повољно одржавање
- Минимална ручна интервенција
- Једноставно извештавање
Врсте оквира за аутоматизацију испитивања
Сад кад имамо основну идеју о томе шта је Аутоматизациони оквир, у овом одељку би вам предочили разне типове тестних аутоматизационих оквира који су доступни на тржишту. Такође бисмо покушали да осветлимо њихове предности и недостатке и препоруке за употребљивост.
Данас постоји различит распон оквира за аутоматизацију. Ови оквири могу се разликовати једни од других на основу подршке различитим кључним факторима за аутоматизацију као што је поновна употреба, лакоћа одржавања итд.
Размотримо неколико најпопуларнијих оквира за аутоматизацију испитивања:
- Оквир за испитивање заснован на модулима
- Оквир за испитивање архитектуре библиотеке
- Оквир за тестирање на основу података
- Оквир за тестирање на основу кључних речи
- Оквир хибридног тестирања
- Оквир развоја вођен понашањем
(кликните на слику за увећан приказ)
Размотримо детаљно сваку од њих.
Али пре тога, такође бих желео да напоменем да, упркос томе што има овај оквир, корисник се увек ослања на изградњу и дизајн сопственог оквира који најбоље одговара његовим / њеним пројектним потребама.
# 1) Оквир тестирања заснован на модулу
Оквир за тестирање заснован на модулу заснован је на једном од популарно познатих концепата ООП-ова - Апстракција. Оквир дели целокупну „Пробну апликацију“ на више логичких и изолованих модула. За сваки модул креирамо засебну и независну скрипту за тестирање. Дакле, када се ове тестне скрипте повежу, гради се већа тестна скрипта која представља више од једног модула.
Ови модули су одвојени слојем апстракције на такав начин да промене направљене у одељцима апликације не дају утицаја на овај модул.
Прос:
- Оквир уводи висок ниво модуларизације што доводи до лакшег и економичнијег одржавања.
- Оквир је прилично скалабилан
- Ако су промене примењене у једном делу апликације, потребно је поправити само тест скрипту која представља тај део апликације како би сви остали делови остали нетакнути.
Против:
- Током примене тест скрипти за сваки модул посебно, уграђујемо податке о тесту (Подаци са којима би требало да извршимо тестирање) у тест скрипте. Дакле, кад год би требало да тестирамо са различитим скупом података о тесту, захтева се да се манипулације изврше у тест скриптама.
# 2) Оквир за тестирање архитектуре библиотеке
Оквир за тестирање библиотечке архитектуре у основи је и темељен на модулском оквиру за тестирање са неким додатним предностима. Уместо да поделимо апликацију која се тестира на тест скрипте, ми раздвајамо апликацију на функције, односно уобичајене функције могу да користе и други делови апликације. Тако креирамо заједничку библиотеку која чини заједничке функције за тестирану апликацију. Стога се ове библиотеке могу позивати из тест скрипти кад год је то потребно.
Основни темељ иза оквира је утврђивање заједничких корака и њихово груписање у функције у библиотеци и позивање тих функција у тест скриптама кад год је то потребно.
Пример : Кораци за пријаву могу се комбиновати у функцију и чувати у библиотеци. Према томе, све тест скрипте које захтевају пријаву у апликацију могу да позову ту функцију уместо да поново пишу код.
како се прави лажна адреса е-поште
Прос:
- Попут модуларно заснованог оквира, овај оквир такође уводи висок ниво модуларизације што доводи до лакшег и економичнијег одржавања и скалабилности.
- Како стварамо заједничке функције које могу ефикасно да користе различите тест скрипте широм Фрамеворк-а. Дакле, оквир уводи велики степен поновне употребљивости.
Против:
- Попут оквира заснованог на модулима, подаци о тесту се смештају у тест скрипте, па би свака промена у подацима о испитивању захтевала промене и у тест скрипти.
- Увођењем библиотека оквир постаје мало компликованији.
# 3) Оквир за тестирање на основу података
Док аутоматизујете или тестирате било коју апликацију, понекад ће бити потребно да исту функцију тестирате више пута са различитим скупом улазних података. Дакле, у таквим случајевима не можемо дозволити да подаци о тестирању буду уграђени у тест скрипту. Стога се саветује да податке о тестовима задржите у некој спољној бази података изван тест скрипти.
Оквир за тестирање на основу података помаже кориснику да међусобно раздвоји логику скрипте за тестирање и тест податке. Омогућава кориснику да похрани тест податке у спољну базу података. Вањске базе података могу бити датотеке својстава, кмл датотеке, екцел датотеке, текстуалне датотеке, ЦСВ датотеке, ОДБЦ спремишта итд. Подаци се конвенционално чувају у паровима „Кључ-вриједност“. Дакле, кључ се може користити за приступ и попуњавање података у тест скриптама.
Белешка : Подаци о тестирању ускладиштени у спољној датотеци могу припадати матрици очекиване вредности као и матрици улазних вредности.
Пример:
Да разумемо горњи механизам уз помоћ примера.
Размотримо функцију „Гмаил - Пријава“.
Корак 1: Први и најважнији корак је стварање спољне датотеке која чува тест податке (улазни подаци и очекивани подаци). Размотримо на пример екцел лист.
Корак 2: Следећи корак је попуњавање података о тесту у скрипту за аутоматизацију теста. У ту сврху се за читање података о тестирању може користити неколико АПИ-ја.
public void readTD(String TestData, String testcase) throws Exception { TestData=readConfigData(configFileName,'TestData',driver); testcase=readConfigData(configFileName,'testcase',driver); FileInputStream td_filepath = new FileInputStream(TestData); Workbook td_work =Workbook.getWorkbook(td_filepath); Sheet td_sheet = td_work.getSheet(0); if(counter==0) { for (int i = 1,j = 1; i <= td_sheet.getRows()-1; i++){ if(td_sheet.getCell(0,i).getContents().equalsIgnoreCase(testcase)){ startrow = i; arrayList.add(td_sheet.getCell(j,i).getContents()); testdata_value.add(td_sheet.getCell(j+1,i).getContents());}} for (int j = 0, k = startrow +1; k <= td_sheet.getRows()-1; k++){ if (td_sheet.getCell(j,k).getContents()==''){ arrayList.add(td_sheet.getCell(j+1,k).getContents()); testdata_value.add(td_sheet.getCell(j+2,k).getContents());}} } counter++; }
Горња метода помаже у читању података о тестирању, а доњи корак корака помаже кориснику да укуца податке о тестирању на ГУИ.
елемент.сендКеис (обј_валуе.гет (обј_индек));
Прос:
- Најважнија карактеристика овог оквира је да знатно смањује укупан број скрипти потребних да покрију све могуће комбинације тест сценарија. Стога је потребна мања количина кода за тестирање комплетног скупа сценарија.
- Свака промена матрице података теста не би омела код скрипте теста.
- Повећава флексибилност и одрживост
- Може се извршити појединачни тест тест мењајући вредности података теста.
Против:
како додати елемент у низ у јави
- Процес је сложен и захтева додатни напор да би се пронашли тестни извори података и механизми читања.
- Захтева знање програмског језика који се користи за развој тест скрипти.
# 4) Оквир за тестирање на основу кључних речи
Оквир за тестирање вођен кључним речима представља проширење Оквира за тестирање вођен подацима у смислу да не само да раздваја тестне податке од скрипти, већ задржава и одређени скуп кода који припада тестној скрипти у спољну датотеку података.
Ови скупови кода су познати као Кључне речи и стога је оквир тако назван. Кључне речи су самоуправне о томе које радње треба извршити у апликацији.
Кључне речи и подаци о тесту чувају се у табеларној структури и стога се у народу такође сматрају оквиром вођеним табелом. Обратите пажњу да су кључне речи и подаци о тестирању ентитети независни од алата за аутоматизацију који се користи.
ПримерТест пример оквира за вођење кључних речи
У горњем примеру, кључне речи попут пријаве, клика и верификације везе дефинисане су у коду.
У зависности од природе апликације могу се извести кључне речи. Све кључне речи могу се поново користити више пута у једном тест примеру. Колона Лоцатор садржи вредност локатора која се користи за идентификовање веб елемената на екрану или пробних података које треба доставити.
Све потребне кључне речи су дизајниране и смештене у основни код оквира.
Прос:
- Поред предности које пружа тестирање на основу података, оквир вођен кључним речима не захтева да корисник поседује знање скриптирања, за разлику од тестирања на основу података.
- Једна кључна реч може се користити у више тест скрипти.
Против:
- Корисник би требао бити добро упућен у механизам за стварање кључних речи како би могао ефикасно искористити благодати које пружа оквир.
- Оквир се постепено компликује како расте тако што се уводи низ нових кључних речи.
# 5) Оквир хибридног тестирања
Као што и само име говори, Хибридни оквир за тестирање је комбинација више од једног горе поменутог оквира. Најбоља ствар код таквог подешавања је што користи предности свих врста придружених оквира.
Примерхибридног оквира
Пробни лист би садржао и кључне речи и податке.
У горњем примеру, колона кључних речи садржи све потребне кључне речи које се користе у одређеном тест случају, а колона података покреће све податке потребне у тестном сценарију. Ако било којем кораку није потребан никакав унос, онда може остати празан.
# 6) Оквир развоја вођен понашањем
Оквир за развој на основу понашања омогућава аутоматизацију функционалних валидација у лако читљивом и разумљивом формату за пословне аналитичаре, програмере, тестере итд. Такви оквири не захтевају нужно да корисник буде упознат са програмским језиком. Постоје различити алати доступни за БДД попут краставца, Јбехаве итд. Детаљи БДД оквира разматрани су касније у водичу за краставце. Такође смо разговарали о детаљима о корнишонском језику за писање тест случајева у краставцу.
Компоненте оквира за испитивање аутоматизације
Иако је горњи сликовни приказ оквира само по себи објашњен, ипак бисмо истакли неколико тачака.
- Спремиште објеката : Акроним Објецт Репоситори-а као ОР састављен је од скупа типова локатора повезаних са веб елементима.
- Тест подаци: Улазни подаци са којима би се сценарио тестирао и то могу бити очекиване вредности са којима би се упоређивали стварни резултати.
- Конфигурациона датотека / Константе / Поставке окружења : Датотека чува информације о УРЛ-у апликације, информације специфичне за прегледач итд. То су обично информације које остају статичне у целом оквиру.
- Генерички / Програмска логика / Читачи : Ово су класе које чувају функције које се могу често користити у читавом оквиру.
- Израда алата и континуирана интеграција : Ово су алати који помажу могућностима оквира за генерисање извештаја о тестовима, обавештења путем е-поште и информација о евидентирању.
Закључак
Илустровани оквири су најпопуларнији оквири које користи братство за тестирање. Постоје и разни други оквири. За све даље водиче базираћемо се на Оквир за тестирање на основу података .
У овом упутству смо разговарали о основама оквира за аутоматизацију. Такође смо разговарали о врстама оквира доступних на тржишту.
Следећи водич # 21 : У следећем упутству бисмо кратко упознаћемо вас са узорком оквира, МС Екцел-ом који ће чувати податке о тестовима, екцел манипулацијама итд.
До тада слободно постављајте своја питања о оквирима аутоматизације.
Препоручено читање
- 7 фактора који утичу на процену теста пројекта аутоматизације селена - Водич за селен бр. 32
- Увод у Селениум ВебДривер - Водич за селен бр. 8
- Ефикасни сценарији за скриптирање и решавање проблема са селенијем - Водич за селениј # 27
- Отклањање грешака у селенијевим скриптама помоћу дневника (Водич за Лог4ј) - Водич за селениум # 26
- 30+ најбољих водича за селен: научите селен на стварним примерима
- Дубински водичи за помрачење за почетнике
- Како лоцирати елементе у Цхроме и ИЕ прегледачима за изградњу скрипти за селен - Водич за селен # 7
- Водич за краставац селениј: Интеграција Јава Селениум ВебДривер краставца