selenium database testing using webdriver
У нашем последњем водичу за Селениум научили смо како решавање неких понављајућих проблема у скриптама селена . Разговарали смо о неким напредним концептима у којима бисмо се бавили догађајима миша и тастатуре, приступајући вишеструким линковима применом листа.
Крећемо напред са нашим напредне теме у серији тренинга Селениум , упознали бисмо вас са концептом Тестирање базе података помоћу Селениум ВебДривер.
најбољи програм за прављење дијаграма тока
Разговарали бисмо о основним процесима попут повезивања базе података, извршавања упита, преузимања података и прекида везе инстанци базе података итд. Такође бисмо разговарали о разним практичним импликацијама тамо где нам је потребно тестирање базе података са тестирањем аутоматизације како бисмо тестирали комплетне сценарије од краја до краја.
Пре него што кренемо даље са техничким импликацијама повезаним са тестирањем аутоматизоване базе података. Размотримо неколико сценарија у којима нам је потребно тестирање базе података заједно са тестирањем аутоматизације. Али пре тога, желео бих овде да потврдим да је тестирање базе података врло необична врста тестирања, док је Селениум ВебДривер алат који се користи за симулацију и аутоматизацију корисничких интеракција са корисничким интерфејсом апликације.
Дакле, технички гледано, не вршимо прецизно тестирање базе података, већ тестирамо нашу апликацију заједно са базом података како бисмо осигурали да се промене одражавају на оба краја и тако рано идентификују недостатке.
Апсолутно свим веб апликацијама је потребна позадина за чување података. Базе података попут МиСКЛ, Орацле и СКЛ Сервер данас су прилично популарне.
Враћајући се на првобитну тему, разговарајмо о неколико сценарија који ће илустровати потражњу за тестирањем базе података заједно са аутоматским тестирањем.
Шта ћете научити:
- Размотрите следеће сценарије
- Стварање тест података у бази података
- Стварање нове базе података
- Закључак
- Препоручено читање
Размотрите следеће сценарије
# 1) Понекад смо обавезни да осигурамо да се подаци унети из корисничког интерфејса доследно одражавају у бази података. На тај начин долазимо до података из базе података и верификујемо их према подацима испорученим из корисничког интерфејса. На пример, обрасци за регистрацију, кориснички подаци, кориснички профили, ажурирања и брисања корисничких података. Дакле, тестни сценарио за аутоматизацију може бити „Проверити да ли су корисничке информације успешно сачуване у бази података чим се корисник региструје у апликацији“.
#два) Још један случај коришћења тестирања базе података помоћу програма Селениум ВебДривер може се појавити када се кориснику упути да учита тест податке или очекиване податке из базе података. Дакле, у таквом случају, корисник би успоставио везу са базом података помоћу независног АПИ-ја, извршио упите за преузимање података из скупа података и затим утврђивао податке преузете из базе података са стварним подацима који се попуњавају у корисничком интерфејсу апликације .
# 3) Још један случај употребе је извођење асоцијативног тестирања базе података. Претпоставимо да смо извршили операцију на корисничком интерфејсу апликације и желимо да тестирамо одраз у бази података. Може се догодити да се погођени подаци налазе у различитим табелама базе података због повезаности. Због тога је увек препоручљиво тестирати одраз података на свим погођеним подручјима.
Селен, као што сам рекао, симулира интеракцију корисника са апликацијом која се тестира. Може да симулира догађаје на тастатури, радње мишем итд. Али ако корисник жели да аутоматизује било шта изван близине интеракција прегледача - веб апликација, онда селен не може бити од велике помоћи. Стога су нам потребни други алати или могућности за обављање тестирања од краја до краја.
Стога, у свим горе наведеним сценаријима, можда ћемо захтевати да извршимо тестирање базе података заједно са УИ Аутоматион. Можемо проверити пословну логику манипулишући подацима и верификујући њихов одраз. Такође можемо проверити техничке аспекте саме базе података као што су меко брисање, валидација поља итд.
Кренимо сада са стварном применом. Пре него што развијемо Селениум ВебДривер скрипте за издвајање података из извора података, креирајмо тест податке у бази података. У овом упутству користили бисмо МиСКЛ као базу података.
Стварање тест података у бази података
Ако још нисте преузели базу података, преузмите је помоћу линк . Очекује се да ће корисник следити неке основне кораке за преузимање и инсталирање базе података.
= >> Прочитајте овај водич на преузмите и инсталирајте МиСКЛ базу података .
Једном када се база података успешно инсталира, корисник може да покрене МиСКЛ командну линију која ће изгледати као следећа снимка заслона. Апликација може тражити од корисника да унесе лозинку. Подразумевана лозинка је „роот“.
Белешка : Корисник такође може путем Интернета пронаћи клијенте засноване на ГУИ-у да би се повезао са базом података. Да поменемо само неке, корисник може преузети и инсталирати претраживач упита или радни сто.
Стварање нове базе података
Следећи корак је стварање тест базе података са неколико табела и записа који се чувају у тим табелама како би се успоставила веза са базом података и извршили упити.
Корак 1) Унесите „прикажи базе података“ да бисте видели све већ доступне базе података
приказују базе података;
Корак 2) Упишите “цреате усер усер;” за стварање базе података са именом „корисник“.
креирање корисника базе података;
Имајте на уму да се име базе података као корисник креира и може се видети на листи база података.
Корак 3) Упишите „усе усер;“ да бисте изабрали новостворену базу података. Такође откуцајте „покажи табеле;“ да бисте прегледали све табеле доступне у бази података корисника.
усе усер;
показати табеле;
Забележите да је празан скуп приказан у резултату „покажи табеле“; упит јер у корисничкој бази података није било доступних табела.
Допустите нам сада неколико табела и додајте записе у њих.
Корак 4) Откуцајте следећу наредбу да бисте креирали табелу са 4 поља / колоне (усерИд, усерНаме, усерАге, усерАддресс).
креирајте корисничке податке табеле
(
усерИд инт,
усерНаме варцхар (255),
усерАге инт,
усерАддресс варцхар (255)
);
Следећи корак је додавање неких записа података у табелу „усеринфо“.
Корак 5) Унесите следећу наредбу да бисте у табелу убацили податке у табелу за сва четири поља 4 поља / колоне (усерИд, усерНаме, усерАге, усерАддресс).
убаци у усеринфо (усерИД, усерНаме, усерАге, усерАддресс) вредности (‘1’, ‘схрути’, ’25’, ‘Ноида’);
Да бисте погледали додате податке, откуцајте следећу команду:
изаберите * из корисничких података;
Слично томе, у своју табелу можете да додате више података, а можете и да креирате друге табеле.
Сада, када смо креирали нашу базу података. Можемо ићи напред и разумети имплементација аутоматизованих упита за преузимање записа из базе података.
Као што смо и раније понављали, Селениум ВебДривер је алат за аутоматизацију корисничког интерфејса. Стога, Селениум ВебДривер сам не испуњава услове за тестирање базе података, али то се може урадити помоћу Јава Датабасе Цоннецтивити АПИ (ЈДБЦ). АПИ омогућава кориснику да се повеже и ступи у интеракцију са извором података и преузме податке уз помоћ аутоматизованих упита. Да бисте могли да искористите ЈДБЦ АПИ, потребно је да Јава Виртуал Мацхине (ЈВМ) ради на систему.
ЈДБЦ Ток посла
Наш фокус би био усклађен са следећим процесима:
- Стварање везе са базом података
- Извршавање упита и ажурирање израза ради издвајања / преузимања података (ЦРУД операције)
- Коришћење и манипулација подацима извученим из базе података у облику скупа резултата. (Скуп резултата је скуп података организованих у редове и колоне)
- Прекидање везе са базом података.
Као што је раније речено, да бисмо могли аутоматски да тестирамо базу података из наших тестних скрипти Селениум ВебДривер, повезали бисмо се са Базом података путем ЈДБЦ везе у оквиру наших тест скрипти. Пошаљите на везу, можемо покренути што више операција ЦРУД (стварање, читање, ажурирање и брисање) у бази података.
У овом упутству разговарали бисмо о операцији читања и њеним варијантама и о њиховој примени у скрипти Селениум ВебДривер. Али пре тога, проверимо ручно тест тест помоћу „МиСКЛ командне линије“.
Сценарио:
1) Отворите сервер базе података и повежите се са „корисничком“ базом података.
два) Наведите све записе из табеле „усеринфо“.
Синтакса: изаберите * из корисничких података;
3) Затворите везу базе података.
Приметите да ће упит за читање навести све корисничке податке присутне у табели усеринфо. Табела се састоји од следећих колона.
- ИД корисник
- корисничко име
- усерАге
- усерАддресс
Резултат такође показује да је у табели присутан само један скуп података.
Сада, извршимо исти сценарио користећи Јава класу.
Да би могао приступити бази података, кориснику се омогућава да бира између различитих опција конектора доступних за повезивање са базом података. Већина конектора базе података се слободно дистрибуирају као „јар“ датотеке. Како МиСКЛ користимо као извор података, стога смо дужни да преузмемо јар датотеку специфичну за МиСКЛ.
Датотеку јар можете преузети са: овде или овде.
Корак 1 : Први и најважнији корак је конфигурисање путање изградње пројекта и додавање датотеке „мискл-цоннецтор-јава-3.1.13-бин.јар“ као спољне библиотеке.
Корак 2 : Направите јава класу названу „ДатабасеТесингДемо“.
3. корак : Копирајте и налепите доњи код у класу створену у горњем кораку.
Узорак кода
import org.junit.After; import org.junit.Before; import org.junit.Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class DatabaseTesingDemo { // Connection object static Connection con = null; // Statement object private static Statement stmt; // Constant for Database URL public static String DB_URL = 'jdbc:mysql://localhost:3306/user'; // Constant for Database Username public static String DB_USER = 'root'; // Constant for Database Password public static String DB_PASSWORD = 'root'; @Before public void setUp() throws Exception { try{ // Make the database connection String dbClass = 'com.mysql.jdbc.Driver'; Class.forName(dbClass).newInstance(); // Get connection to DB Connection con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); // Statement object to send the SQL statement to the Database stmt = con.createStatement(); } catch (Exception e) { e.printStackTrace(); } } @Test public void test() { try{ String query = 'select * from userinfo'; // Get the contents of userinfo table from DB ResultSet res = stmt.executeQuery(query); // Print the result untill all the records are printed // res.next() returns true if there is any next record else returns false while (res.next()) { System.out.print(res.getString(1)); System.out.print(' ' + res.getString(2)); System.out.print(' ' + res.getString(3)); System.out.println(' ' + res.getString(4)); } } catch(Exception e) { e.printStackTrace(); } } @After public void tearDown() throws Exception { // Close DB connection if (con != null) { con.close(); } } }
Резултат горњег кода је:
1 схрути 25 Ноида
2 схривастава 55 Мумбај
Прочитајте варијанте изјаве
Клаузула са једним условом
Стринг куери = “селецт * фром усеринфо вхере усерИд = '” + 1 + “‘ ”;
РесултСет рес = стмт.екецутеКуери (упит);
Излаз:
1 схрути 25 Ноида
Клаузула са више услова
Адреса низа = ”Мумбаи”;
Стринг куери = “селецт * фром усеринфо вхере усерИд = '” + 2 + “‘ анд усерАддресс =' ”+ Аддресс +” ‘”;
РесултСет рес = стмт.екецутеКуери (упит);
Излаз:
2 схривастава 55 Мумбај
Прикажи усерИд
Стринг куери = “селецт усерИд фром усеринфо”;
РесултСет рес = стмт.екецутеКуери (упит);
Излаз:
1
два
Прикажи усерИд са клаузулом вхере
Адреса низа = ”Ноида”;
Стринг куери = “селецт усерИд, усерНаме фром усеринфо вхере усерАддресс = '” + Аддресс + ”‘ ”;
РесултСет рес = стмт.екецутеКуери (упит);
Излаз:
два
схривастава
Дакле, на исти начин корисник може извршити различите упите у бази података.
Овим ћемо осветлити и методе приступачности резултата.
Резултат методе приступачности:
Назив методе | Опис |
---|---|
дупли гетДоубле () | Метода се користи за преузимање података двоструког типа из скупа резултата |
Стринг гетСтринг () | Метода се користи за дохваћање података типа низа из скупа резултата |
инт гетИнт () | Метода се користи за преузимање података целобројног типа из скупа резултата |
боолеан гетБоолеан () | Метода се користи за преузимање логичке вредности из скупа резултата |
флоат гетФлоат () | Метода се користи за преузимање података типа флоат из скупа резултата |
лонг гетЛонг () | Метода се користи за преузимање података дугог типа из скупа резултата |
кратки гетСхорт () | Метода се користи за преузимање података кратког типа из скупа резултата |
Датум гетДате () | Метода се користи за преузимање објекта типа Датум из скупа резултата |
Резултати навигационих метода:
Назив методе | Опис |
---|---|
боолеан нект () | Метода се користи за прелазак на следећи запис у скупу резултата |
логичка претходна () | Метода се користи за прелазак на претходни запис у скупу резултата |
прво логичко () | Метода се користи за прелазак на први запис у скупу резултата |
боолеан ласт () | Метода се користи за прелазак на последњи запис у скупу резултата |
боолеан апсолутни (инт ровНумбер) | Метода се користи за прелазак на одређени запис у скупу резултата |
Закључак
Кроз овај водич покушали смо да вас упознамо са концептом Аутоматско тестирање базе података . Јасно смо ставили акценат на техничке импликације и потребе тестирања базе података.
Како је читава наша серија била усредсређена на Селениум, читалац може бити заведен и може створити утисак да ће овај водич подучавати извођење тестирања базе података помоћу Селениум-а, али као што сам већ неколико пута споменуо, све што се налази изван периферије УИ тестирања , селеном се не може носити. Због тога уводимо АПИ за повезивање базе података Јава (ЈДБЦ) како бисмо извршили тестирање базе података уграђивањем кода у скрипте Селениум ВебДривер.
ЈДБЦ омогућава јава класи да се повеже са базом података, преузме податке из базе података или у ствари изврши било коју од ЦРУД операција, манипулише резултујућим подацима и затвори везу.
Дакле, водич представља основни узорак примене горе поменутог процеса.
Следећи водич # 29 : Крећемо напред са напредним темама о селену. У следећем упутству ћемо обрадити Селениум ГРИД - који се користи када морате да извршите тестирање у више прегледача и имате велики број тест случајева.
Препоручено читање
- Тестирање базе података помоћу ЈМетер-а
- Интеграција селена са ЈМетером
- Водич за краставац селенијум: Интеграција Јава Селениум ВебДривер краставца
- Увод у Селениум ВебДривер - Водич за селен бр. 8
- Најбољи алати за тестирање софтвера 2021. (Алати за аутоматизацију КА теста)
- Примена наше прве скрипте за ВебДривер - Водич бр. 10 за Селениум ВебДривер
- Најбољи курс за обуку селена ВебДривер + ЈАВА на мрежи
- Споцк за интеграцију и функционална испитивања са селеном