selenium framework creation
В последния урок ви запознахме с основи на рамки за автоматизация на тестове , неговите компоненти и видове. Рамките, илюстрирани в предишния урок, бяха няколко сред най-популярните рамки, използвани от тестващото братство.
Накратко обсъдихме модулни рамки, библиотечна архитектура, базирана на ключови думи, управлявана от данни рамка и хибридна рамка. На мястото има и различни други рамки.
Моля, отбележете, че ще го осиновим Data Driven Test Automation Framework за останалите ни уроци.
В текущата урок от тази поредица , бихме ви запознали с примерна рамка, Excel, която ще съхранява тестовите данни и техните манипулации в Excel . По същия начин ние бихме продължили напред и ще въведем нови стратегии и ресурси, за да узрее нашата рамка.
Така че нека научим:
- Стратегия за създаване на рамка с примерен проект
- Достъп до тестовите данни, съхранявани във външния източник на данни
Продължавайки напред, бихме започнали с описанието на йерархията на проекта, която щяхме да създадем, за да отделим различните компоненти на проекта.
Вижте изображението по-долу за йерархията на проекта, създадена за примерния проект. Проектът по-долу Java може лесно да бъде създаден в рамките на затъмнението по начина, по който сме създали проектите в предишните уроци.
Какво ще научите:
- Структура на папката на проекта за селен - Упътване
- Създаване на тестови данни
- Заключение:
- Препоръчително четене
Структура на папката на проекта за селен - Упътване
# 1) src - Папката съдържа всички тестови скриптове, генерични продукти, четци и помощни програми. Всички тези ресурси не са нищо друго освен обикновените Java класове. Под папката source (src) създадохме йерархия от папки.
тест - Папката „test“ се състои от предимно две съставки - test suite и папките, представляващи различните модули на тестваното приложение. По този начин, всяка от тези папки съдържа тестовите скриптове, специфични за модула, към който е свързан. Testsuite е логична комбинация от повече от един тестов скрипт. По този начин потребителят може да маркира запис на който и да е от тестовите скриптове в тестовия пакет, който той / тя желае да изпълни в следващите изпълнения.
как играете swf файлове
б) комунални услуги - Папката „помощни програми“ се състои от различни генерични продукти, константи, четци и класове за внедряване на дефинирани от потребителя изключения. Всяка от папките в помощните програми има собствено значение.
- Excel Reader - Създаден е общ и общ клас за четене на тестовите данни (входни параметри и очаквани резултати) от листите на Excel
- Константи за околната среда - Папката е интеграция на Java класовете, които съхраняват статичните променливи, отнасящи се до пътищата и други подробности за околната среда. Тези подробности могат да бъдат URL на приложението, URL на базите данни, идентификационни данни за бази данни и URL на който и да е инструмент на трета страна, който се използва. Различните URL адреси на приложения могат да бъдат зададени за различни среди (dev, prod, test, master, slave и т.н.).
- DataSetters - Папката включва класовете, които реализират гетерите и задателите на тестовите данни, извлечени от Excels. За да заредим множество набори от тестови данни, ние създаваме ArrayLists.
- Потребителски роли - Папката побира класовете, които се грижат за ролевите критерии за достъп, ако има такива, за потребители на инстинкт.
- FunctionLibrary - Папката се състои от класовете, които съдържат функции и методи, които могат да се споделят и използват между множеството класове. Много често трябва да изпълняваме определени процедури преди и след действителното изпълнение на теста като влизане в приложението, настройка на среди, дейности, свързани с ролки, манипулации с данни, писане на резултати, методи, които генерират предварителни / последващи условия за други методи . Тъй като сме склонни да изпълняваме тези дейности за целия или по-голямата част от тестовия скрипт. Поради това винаги се препоръчва да се създаде отделен клас за такива дейности, вместо да се кодират многократно във всеки от тестовите скриптове.
- PreConditionalMethods
- PostConditionalMethods
Много често трябва да изпълняваме определени процедури преди и след действителното изпълнение на теста като влизане в приложението, настройка на среди, дейности, свързани с потребителски роли, манипулации с данни, писане на резултати, методи, които генерират предварителни / пост-условия за други методи. Тъй като сме склонни да изпълняваме тези дейности за всички или по-голямата част от тестовия скрипт, затова винаги се препоръчва да създадем отделен клас за такива дейности, вместо да ги кодираме многократно във всеки от тестовите скриптове.
CommonMethods
Подобно на Pre и postconditions, може да има методи и функции, които могат да се използват от повече от един тестов скрипт. По този начин тези методи са групирани в клас. Тестовият скрипт може да осъществи достъп до тези методи, като използва обекта на общия клас.
# 2) Excel файлове - Файловете excel се считат за източник на данни / доставчици на данни за изпълнение на тестов скрипт. Тези файлове съхраняват тестовите данни в двойки ключ-стойност. Забележете, че ние създаваме отделен лист на Excel за всеки от тестовия скрипт, т.е.всеки тестов скрипт има свой собствен файл с тестови данни. Името на тестовия скрипт и съответните файлове с тестови данни / лист на Excel са запазени еднакви за перспективата на проследяемостта. Вижте примерния формат на тестовите данни по-долу:
Формат на тестовите данни
Всяка от колоните представлява ключ и всеки от редовете представлява тестови данни / стойност. Посочете множество редове, за да изпълните един и същ тестов скрипт с множество набори от данни.
Отбележете, че форматите на тестовите данни са само потребителски дефинирани. По този начин въз основа на вашите изисквания можете да персонализирате файловете с тестови данни.
# 3) библиотека - Папката действа като хранилище / артефактор за всички необходими Jar файлове, библиотеки, драйвери и т.н. за успешно изграждане на тестовата среда и за изпълнение на тестовите скриптове. Вижте следната фигура, за да проверите библиотеките, които бихме използвали в рамките на нашия проект.
# 4) дневници - Папката съдържа .txt файл, който съхранява регистрационната информация при всяко изпълнение.
# 5) тестов материал - Папката съдържа действителните тестови данни, които трябва да бъдат качени, ако има такива. Тази папка ще се появи в картина, когато попаднем на тестови сценарии, при които потребителят трябва да качи файлове, документи, снимки, отчети и т.н.
# 6) build.xml - Xml файлът се използва от “Ant Server” за автоматизиране на целия процес на изграждане.
# 7) log4j.xml - Този xml файл се използва от Java-базирана помощна програма, наречена “Log4j”, за да генерира регистрационни файлове за изпълнение.
Забележка : Ще проучим подробно за регистрационните файлове, дефинираните от потребителя изключения и Ant подробно в предстоящите уроци. Така че не се паникьосвайте, ако се объркате между понятията.
Сега, докато се придвижваме напред, нека разберем явлението, при което имаме достъп до Excel файловете и попълваме тестовите данни в нашите тестови скриптове.
какво е мрежов ключ за сигурност за wifi
За да разберем процеса по-лесно, бихме разделили процеса на следните стъпки.
Създаване на тестови данни
Етап 1 : Първата и основна стъпка е да създадем тестови данни, с които бихме изпълнили тестовите скриптове. Имайки предвид гореспоменатия формат на тестови данни, нека създадем Excel файл, наречен „TestScript1“. Представете стойностите в елементите.
Стъпка 2 : Следващата стъпка е да изтеглите стандартен java базиран API / библиотека, наречен „Java excel Library“ (jxl), за да имате достъп до вече създадените общи методи за манипулация на Excel.
Стъпка 3 : Създайте общ клас на четец на Excel, наречен „ExcelReader.java“. Копирайте долния код в ExcelReader.java.
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 : Създайте общ клас - „CommonMethods.java“. Създайте общ метод в класа, който ще чете клетките от Excel листа, използвайки методите, внедрени в ExcelReader.java.
/** * 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 : Създайте нов java клас, наречен „TestData.java“. Този клас ще действа като гетер и създател за данни на Excel. Копирайте и поставете следния код в класа TestData.java.
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 : Следващата стъпка е да се създадат екземпляри на класове Java „TestData.java“ и „CommonMethods.java“ в тестовия скрипт, за да се осъществи достъп и да се попълнят тестовите данни. Вижте долния кодов фрагмент за инициализация на обект, четене на данни на Excel и попълване на стойностите, където е необходимо.
// 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));
Следователно, използвайки екземпляра на клас testData.java заедно с getters, всяка стойност на тестовите данни може да бъде попълнена в скрипта.
Заключение:
Урокът се въртеше главно около понятията като създаване на рамка и достъп до тестови данни от Excel. Запознахме ви със стратегията за създаване на Framework, използвайки примерен проект. Накратко осветихме различните компоненти и аспекти на нашата рамка.
За да получим достъп до тестовите данни, съхранявани във външния източник на данни, използвахме Java базиран API - jxl. Също така създадохме примерния код за четене и попълване на данните на Excel в тестовите скриптове.
Следващ урок # 22 : В следващия урок бихме основали нашия урок на понятия за генерични лекарства и техния механизъм за достъпност . Бихме създали няколко примерни общи метода и след това ще ги осъществим в рамките на тестовите скриптове. Също така бихме ви запознали с концепцията за Testsuite и разработването на примерен код.
Препоръчително четене
- Въведение в JUnit Framework и нейното използване в Selenium Script - Селен Урок # 11
- Управлявана от данни рамка в Selenium WebDriver, използваща Apache POI
- Урок за краставици селен: Интеграция на краставица Java Selenium WebDriver
- Въведение в Selenium WebDriver - Урок № 8 за селен
- Уроци за задълбочено затъмнение за начинаещи
- Как да използвам TestNG Framework за създаване на селенови скриптове - TestNG Selenium Tutorial # 12
- Ефективни сценарии за скриптове и отстраняване на неизправности при селен - Урок №27 за селен
- Отстраняване на грешки в скриптове за селен с регистрационни файлове (Урок за Log4j) - Урок за селен # 26