selenium framework creation
У прошлом упутству смо вас упознали са основе оквира за аутоматизацију тестова , његове компоненте и врсте. Оквири илустровани у претходном водичу били су неки од најпопуларнијих оквира које је користило тестирајуће братство.
Укратко смо разговарали о модулима заснованим на оквиру, оквиру који се заснива на архитектури библиотека, оквиру вођеном кључним речима, оквиру вођеном подацима и хибридном оквиру. Постоје и разни други оквири.
Имајте на уму да бисмо их усвојили Дата Дривен Тест Аутоматион Фрамеворк за остатак наших водича.
У текућем туториал у овој серији , упознали бисмо вас са узорак оквира, Екцелс који би чувао податке о тестовима и њихове Екцел манипулације . На истим линијама, кренули бисмо напред и увели нове стратегије и ресурсе да сазремо наш оквир.
Па научимо:
- Стратегија стварања оквира помоћу узорка пројекта
- Приступите тест подацима сачуваним у спољном извору података
Крећући се напред, започели бисмо с описом хијерархије пројекта коју бисмо креирали како бисмо раздвојили различите компоненте пројекта.
Погледајте доњу слику за хијерархију пројекта створену за пример узорка. Јава пројекат испод може се лако створити у оквиру помрачења на начин на који смо креирали пројекте у ранијим водичима.
Шта ћете научити:
- Структура директоријума пројекта Селениум - Водич кроз упутство
- Стварање података о тестирању
- Закључак:
- Препоручено читање
Структура директоријума пројекта Селениум - Водич кроз упутство
# 1) срц - Фасцикла садржи све тест скрипте, генеричке производе, читаче и услужне програме. Сви ови ресурси нису ништа друго до једноставне јава класе. Испод изворне (срц) мапе створили смо хијерархију директоријума.
Тест - Фасцикла „тест“ састоји се углавном од два састојка - пакета за тестирање и фасцикли који представљају различите модуле апликације која се тестира. Дакле, свака од ових мапа садржи тест скрипте специфичне за модул са којим је повезана. Тестсуите је логична комбинација више скрипти за тестирање. Дакле, корисник може означити унос било које тест скрипте у оквиру скупа за тестирање коју жели да изврши у наредним извођењима.
како направити листу објеката у јави
б) комуналне услуге - Фасцикла „услужни програми“ састоји се од различитих генеричких података, константи, читача и класа за примену изузетака које дефинише корисник. Свака фасцикла у услужним програмима има свој значај.
- Екцел Реадер - Створена је генеричка и уобичајена класа за читање података теста (улазни параметри и очекивани резултати) са Екцел листова
- ЕнвиронментЦонстантс - Фасцикла је интеграција јава класа које чувају статичке променљиве које се односе на путање и друге детаље околине. Ови детаљи могу бити УРЛ апликације, УРЛ базе података, акредитиви за базе података и УРЛ било ког трећег алата који се користи. Различити УРЛ-ови апликације могу се подесити за различита окружења (развој, производ, тест, мастер, славе итд.).
- ДатаСеттерс - Фасцикла укључује класе које примењују гетере и постављаче тест података преузетих из Екцелс-а. Да бисмо учитали више скупова тест података, креирамо АрраиЛистс.
- УсерРолес - Фасцикла садржи класе које воде рачуна о критеријумима приступа заснованим на улогама за кориснике инстинкта.
- ФунцтионЛибрари - Фасцикла се састоји од класа које садрже функције и методе које се могу делити и користити међу више класа. Веома често би требало да извршимо одређене процедуре пре и после стварног извршења теста, попут пријаве у апликацију, постављања окружења, активности везаних за ролне, манипулације подацима, писање резултата, методе које генеришу пре / пост-услове за друге методе . С обзиром да смо склони да ове активности изводимо за цео или већи део тест скрипте. Стога се увек препоручује стварање засебне класе за такве активности уместо да их више пута кодирате у свакој од тест скрипти.
- ПреЦондитионалМетходс
- ПостЦондитионалМетходс
Веома често би требало да извршимо одређене процедуре пре и после стварног извршења теста, попут пријаве у апликацију, постављања окружења, активности везаних за корисничке улоге, манипулације подацима, писање резултата, методе које генеришу пре / пост-услове за друге методе. С обзиром да смо склони да изводимо ове активности за целу или већину тест скрипте, стога се увек препоручује да створимо засебну класу за такве активности уместо да их више пута кодирамо у свакој од тест скрипти.
ЦоммонМетходс
Као и предуслови и постуслови, можда постоје методе и функције које може користити више скрипти за тестирање. Дакле, ове методе су груписане у разред. Тест скрипта може приступити овим методама помоћу објекта заједничке класе.
# 2) екцел датотеке - Екцелове датотеке се сматрају извором података / добављачима података за извршавање тест скрипте. Ове датотеке чувају тест податке у парове кључ / вредност. Имајте на уму да за сваку тестну скрипту креирамо засебан екцел лист, тј. Свака тестна скрипта има своју датотеку са тест подацима. Име скрипте за тест и одговарајуће датотеке са подацима о тестирању / екцел лист остали су исти за перспективу следљивости. Погледајте пример формата података за тест у наставку:
Формат података за тестирање
Свака од колона представља кључ, а свака од редова представља тест податке / вредност. Наведите више редова како бисте извршили исту тестну скрипту са више скупова података.
Означите да су формати података за тестирање искључиво кориснички дефинисани. Тако на основу ваших захтева можете да прилагодите датотеке са подацима о тестирању.
# 3) библиотека - Фасцикла делује као спремиште / артифакториј за све потребне јар датотеке, библиотеке, управљачке програме итд. За успешну изградњу тестног окружења и извршавање тестних скрипти. Погледајте следећу слику како бисте погледали библиотеке које бисмо запослили у оквиру нашег пројекта.
# 4) трупци - Фасцикла садржи .ткт датотеку која чува податке евидентирања након сваког извршавања.
# 5) тест материјал - Фасцикла садржи стварне податке о тестирању које треба отпремити ако их има. Ова мапа би се појавила када наиђемо на тест сценарије где корисник треба да отпрема датотеке, документе, слике, извештаје итд.
# 6) буилд.кмл - Ксмл датотеку користи „Мрав сервер“ за аутоматизацију целокупног процеса израде.
# 7) лог4ј.кмл - Ову кмл датотеку користи услужни програм заснован на Јави назван „Лог4ј“ за генерисање дневника извршења.
Белешка : У следећим водичима детаљно бисмо проучавали евиденције, кориснички дефинисане изузетке и Ант. Зато немојте паничарити ако се збуните између појмова.
Сада, како идемо напред, схватимо феномен када приступамо екцел датотекама и попуњавамо податке о тестирању у наше тест скрипте.
основна ц ++ питања за интервју
Да бисмо процес лакше разумели, процес бисмо рашчланили на следеће кораке.
Стварање података о тестирању
Корак 1 : Први и најважнији корак је стварање тест података помоћу којих бисмо извршавали тест скрипте. Узимајући у обзир горе поменути формат тест података, креирајмо екцел датотеку која се назива „ТестСцрипт1“. Поставите вредности у елементима.
Корак 2 : Следећи корак је преузимање стандардног АПИ-ја / библиотеке засноване на јави под називом „Јава екцел Либрари“ (јкл) да бисте могли да приступите већ створеним генеричким методама за Екцел манипулацију.
3. корак : Направите генеричку класу екцел читача названу „ЕкцелРеадер.јава“. Копирајте доњи код у ЕкцелРеадер.јава.
package Utilities; import java.io.File; import java.io.IOException; import java.util.Hashtable; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; /** * This is a utility class created to read the excel test data file before performing the test steps. * This class loads the excel file and * reads its column entries. * */ public class ExcelReader { /** * The worksheet to read in Excel file */ public static Sheet wrksheet; /** * The Excel file to read */ public static Workbook wrkbook = null; /** * Store the column data */ public static Hashtable dict = new Hashtable(); /** * Create a Constructor * * @param ExcelSheetPath * @throws BiffException * @throws WeblivException */ public ExcelReader(String ExcelSheetPath) throws IOException, BiffException { // Initialize try { wrkbook = Workbook.getWorkbook(new File(ExcelSheetPath)); wrksheet = wrkbook.getSheet('Sheet1'); } catch (IOException e) { throw new IOException(); } } /** * Returns the Number of Rows * * @return Rows */ public static int RowCount() { return wrksheet.getRows(); } /** * Returns the Cell value by taking row and Column values as argument * * @param column * @param row * @return Cell contents */ public static String ReadCell(int column, int row) { return wrksheet.getCell(column, row).getContents(); } /** * Create Column Dictionary to hold all the Column Names */ public static void ColumnDictionary() { // Iterate through all the columns in the Excel sheet and store the // value in Hashtable for (int col = 0; col 4. корак : Направите генеричку класу - „ЦоммонМетходс.јава“. Створите заједничку методу унутар класе која ће читати ћелије са Екцел листа користећи методе имплементиране у ЕкцелРеадер.јава.
/** * Read the test data from excel file * * @param data The TestData data object */ public void readExcelData (TestData data) { ArrayList browser = new ArrayList(); ArrayList username = new ArrayList(); ArrayList password = new ArrayList(); ArrayList element1 = new ArrayList(); ArrayList element2 = new ArrayList(); ArrayList element3 = new ArrayList(); // Get the data from excel file for (int rowCnt = 1; rowCnt Корак 5 : Направите нову јава класу названу „ТестДата.јава“. Ова класа би деловала као гетер и постављач за екцел податке. Копирајте и налепите следећи код у класу ТестДата.јава.
package Utilities.dataSetters; import java.util.ArrayList; public class TestData { private ArrayList loginUser = null; private ArrayList password = null; private ArrayList browser = null; private ArrayList element1 = null; private ArrayList element2 = null; private ArrayList element3 = null; /** * @return loginUser */ public ArrayList getLoginUser() { return loginUser; } /** * @param loginUser */ public void setLoginUser(ArrayList loginUser) { this.loginUser = loginUser; } /** * @return password */ public ArrayList getPassword() { return password; } /** * @param password */ public void setPassword(ArrayList password) { this.password = password; } /** * @return browser */ public ArrayList getBrowser() { return browser; } /** * @param browser */ public void setBrowser(ArrayList browser) { this.browser = browser; } /** * @return element1 */ public ArrayList getElement1() { return element1; } /** * @param element1 */ public void setElement1(ArrayList element1) { this.element1 = element1; } /** * @return element2 */ public ArrayList getElement2() { return element2; } /** * @param element2 */ public void setElement2(ArrayList element2) { this.element2 = element2; } /** * @return element3 */ public ArrayList getElement3() { return element3; } /** * @param element3 */ public void setElement3(ArrayList element3) { this.element3 = element3; } }
Корак 6 : Следећи корак је креирање примера класа Јава „ТестДата.јава“ и „ЦоммонМетходс.јава“ у оквиру скрипте за тестирање како би се приступило и попунили подаци о тесту. Погледајте доњи исечак кода за иницијализацију објекта, читање екцел података и попуњавање вредности где год је то потребно.
// Create Objects public ExcelReader excelReaderObj; CommonMethods commonMethodobj = new CommonMethods(); TestData td = new TestData(); // Load the excel file for testing excelReaderObj = new ExcelReader(Path of the excel); // Load the Excel Sheet Col in to Dictionary for use in test cases excelReaderObj.ColumnDictionary(); // Get the data from excel file commonMethodobj.readExcelData (td); // Populate the username driver.findElement(By.id('idofElement')).sendKeys(data.getLoginUser().get(0));
Стога, користећи инстанцу класе тестДата.јава заједно са геттерима, било која вредност података теста може се попунити у скрипти.
Закључак:
Водич се углавном вртио око појмова попут креирања оквира и приступа тест подацима из екцела. Упознали смо вас са стратегијом стварања оквира користећи пример пројекта. На кратко смо осветлили различите компоненте и аспекте нашег оквира.
Да бисмо приступили тест подацима сачуваним у екстерном извору података, користили смо АПИ заснован на јави - јкл. Такође смо креирали узорак кода за читање и попуњавање екцел података у тест скрипте.
Следећи водич # 22 : У следећем упутству бисмо основали наш водич на концепти генеричких средстава и њихов механизам приступачности . Створили бисмо неколико примера генеричких метода, а затим бисмо им приступили у оквиру тест скрипти. Такође бисмо вас упознали са концептом Тестсуите-а и развојем узорка кода.
Препоручено читање
- Увод у ЈУнит Фрамеворк и његову употребу у сценаријуму Селениум - Водич за селен # 11
- Оквир вођен подацима у програму Селениум ВебДривер који користи Апацхе ПОИ
- Водич за краставац селениј: Интеграција Јава Селениум ВебДривер краставца
- Увод у Селениум ВебДривер - Водич за селен бр. 8
- Дубински водичи за помрачење за почетнике
- Како се користи ТестНГ Фрамеворк за креирање скрипта за селен - ТестНГ Селениум Туториал # 12
- Ефикасни сценарији за скриптирање и решавање проблема са селенијем - Водич за селениј # 27
- Отклањање грешака у селенијевим скриптама помоћу дневника (Водич за Лог4ј) - Водич за селениум # 26