selenium framework creation
В останньому уроці ми ознайомили вас із основи тестових платформ автоматизації , його складові та типи. Фреймворки, проілюстровані в попередньому навчальному посібнику, були одними з найпопулярніших фреймворків, використовуваних тестувальним братством.
Ми коротко обговорили модульні основи, основу архітектури бібліотеки, структуру, керовану ключовими словами, структуру, керовану даними, та гібридну структуру. Є також різні інші рамки.
Будь ласка, зверніть увагу, що ми будемо приймати Дані, керовані тестом для автоматизації тестів для решти наших навчальних посібників.
У поточному підручник з цієї серії , ми познайомимо вас з зразок фреймворка, Excels, який зберігав би тестові дані та їхні маніпуляції в Excel . У тому ж напрямі ми рухаємось вперед та запроваджуємо нові стратегії та ресурси для зрілості нашої системи.
Тож давайте дізнаємось:
- Стратегія створення фреймворку з використанням зразкового проекту
- Доступ до тестових даних, що зберігаються у зовнішньому джерелі даних
Рухаючись вперед, ми б розпочали з опису ієрархії проекту, яку ми створили б для того, щоб розділити різні компоненти проекту.
Зверніться до зображення нижче для ієрархії проекту, створеної для зразкового проекту. Наведений нижче проект Java можна легко створити в рамках затемнення так, як ми створювали проекти у попередніх підручниках.
Що ви дізнаєтесь:
- Структура папки селенового проекту - Покрокове керівництво
- Створення даних тесту
- Висновок:
- Рекомендована література
Структура папки селенового проекту - Покрокове керівництво
# 1) src - У цій папці містяться всі тестові сценарії, загальні відомості, програми зчитування та утиліти. Всі ці ресурси - не що інше, як прості класи Java. У папці source (src) ми створили ієрархію папок.
тест - Папка 'test' складається в основному з двох інгредієнтів - набору тестів та папок, що представляють різні модулі тестованої програми. Таким чином, кожна з цих папок містить тестові сценарії, характерні для модуля, з яким вона пов'язана. Testsuite - це логічна комбінація декількох тестових сценаріїв. Таким чином, користувач може позначити запис будь-якого з тестових скриптів у наборі тестів, який він / вона бажає виконати під час наступних запусків.
Запитання та відповіді на співбесіду адміністратора Salesforce
б) комунальні послуги - Папка «утиліти» складається з різних загальних засобів, констант, зчитувачів та класів для реалізації визначених користувачем винятків. Кожна з папок утиліт має своє значення.
- Excel Reader - Створено загальний і загальний клас для зчитування даних тесту (вхідні параметри та очікувані результати) з аркушів Excel
- Навколишнє середовище Константи - Папка являє собою інтеграцію класів Java, які зберігають статичні змінні, що посилаються на шляхи та інші деталі середовища. Ці дані можуть бути URL-адресою програми, URL-адресою до баз даних, обліковими даними для баз даних та URL-адресою будь-якого стороннього інструменту, що використовується. Різні URL-адреси додатків можна встановити для різних середовищ (розробник, продюсер, тест, майстер, ведений тощо).
- Набори даних - Папка включає класи, які реалізують геттери та сетери тестових даних, отриманих з Excels. Для завантаження декількох наборів тестових даних ми створюємо ArrayLists.
- UserRoles - У цій папці вміщуються класи, що забезпечують критерії доступу на основі ролей, якщо такі є для користувачів інстинкту.
- FunctionLibrary - Папка складається з класів, які містять функції та методи, якими можна спільно користуватися та використовуватися серед багатьох класів. Дуже часто ми маємо виконувати певні процедури до та після фактичного виконання тесту, такі як вхід до програми, налаштування середовищ, дії, пов'язані з рулонами, маніпуляціями з даними, написання результатів, методи, які генерують попередні / післяумови для інших методів . Оскільки ми, як правило, виконуємо ці дії для всієї або більшої частини тестового сценарію. Тому завжди рекомендується створити окремий клас для таких дій, замість того, щоб кодувати їх повторно в кожному з тестових сценаріїв.
- PreConditionalMethods
- PostConditionalMethods
Дуже часто ми маємо виконувати певні процедури до та після фактичного виконання тесту, такі як вхід до програми, налаштування середовищ, дії, пов'язані з ролями користувачів, маніпуляції з даними, написання результатів, методи, які генерують попередні / післяумови для інших методи. Оскільки ми схильні виконувати ці дії для всього або більшої частини тестового скрипта, тому завжди рекомендується створити окремий клас для таких дій, замість того, щоб кодувати їх повторно в кожному з тестових сценаріїв.
Загальні методи
Як і попередні та післяумови, можуть існувати методи та функції, якими може користуватися більше ніж один тестовий сценарій. Таким чином, ці методи згруповані в класі. Тестовий скрипт може отримати доступ до цих методів, використовуючи об'єкт загального класу.
# 2) файли Excel - Файли Excel вважаються джерелом даних / провайдерами даних для виконання тестового сценарію. Ці файли зберігають тестові дані у парах ключ-значення. Зверніть увагу, що ми створюємо окремий аркуш Excel для кожного тестового сценарію, тобто кожен тестовий скрипт має власний файл даних тесту. Назва сценарію тесту та відповідні файли тестових даних / аркуш Excel залишаються незмінними з точки зору простежуваності. Ознайомтесь із зразком формату тестових даних нижче:
Формат даних тесту
Кожен із стовпців представляє ключ, а кожен із рядків - тестові дані / значення. Вкажіть кілька рядків для того, щоб виконати один і той же сценарій тестування з кількома наборами даних.
Позначте, що формати тестових даних визначаються виключно користувачем. Таким чином, виходячи з ваших вимог, ви можете налаштувати файли тестових даних.
# 3) бібліотека - Папка діє як сховище / артефакторія для всіх необхідних файлів jar, бібліотек, драйверів тощо для успішного створення тестового середовища та виконання тестових скриптів. Зверніться до наступного малюнка, щоб ознайомитись із бібліотеками, які ми будемо використовувати в рамках нашого проекту.
# 4) журнали - Папка містить файл .txt, який зберігає інформацію про реєстрацію при кожному виконанні.
# 5) тестовий матеріал - Папка містить фактичні дані тесту, які потрібно завантажити, якщо такі є. Ця папка з’являється в картині, коли ми стикаємося з тестовими сценаріями, коли користувач повинен завантажувати файли, документи, малюнки, звіти тощо.
# 6) build.xml - Файл xml використовується “Ant Server” для автоматизації всього процесу збірки.
# 7) log4j.xml - Цей файл xml використовується утилітою на основі Java, яка називається “Log4j”, для створення журналів виконання.
Примітка : Ми детально вивчимо журнали, визначені користувачем винятки та Ant у наступних навчальних посібниках. Тож не панікуйте, якщо заплутаєтесь між поняттями.
Тепер, рухаючись вперед, давайте зрозуміємо явище, коли ми отримуємо доступ до файлів Excel і заповнюємо тестові дані в наші тестові скрипти.
Щоб легше зрозуміти процес, ми розбили процес на наступні етапи.
Створення даних тесту
Крок 1 : Першим і найголовнішим кроком є створення тестових даних, за допомогою яких ми б виконували тестові сценарії. Беручи до уваги згаданий вище формат тестових даних, давайте створимо файл excel з іменем “TestScript1”. Надайте значення в елементах.
Крок 2 : Наступним кроком є завантаження стандартного API / бібліотеки на основі Java, яка називається «Бібліотека Java Excel» (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 спільно з геттерами, будь-яке значення даних тесту може бути заповнене в сценарії.
Висновок:
Підручник головним чином обертався навколо таких понять, як створення фреймворку та доступ до тестових даних з Excel. Ми ознайомили вас із стратегією створення Framework за допомогою зразкового проекту. Ми коротко висвітлили різні компоненти та аспекти нашої системи.
Для доступу до тестових даних, що зберігаються у зовнішньому джерелі даних, ми використовували API на основі Java - jxl. Ми також створили зразок коду для читання та заповнення даних Excel у тестові скрипти.
безкоштовно завантажити програму YouTube в mp3 конвертер
Наступний підручник No22 : У наступному навчальному посібнику ми б базували наш підручник на поняття дженериків та механізм їх доступності . Ми створили б кілька зразків загальних методів, а потім отримали доступ до них у тестових скриптах. Ми також познайомимо вас із концепцією Testsuite та зразком розробки коду.
Рекомендована література
- Вступ до JUnit Framework та його використання в сценарії селену - Підручник з селену No11
- Data Driven Framework у Selenium WebDriver з використанням Apache POI
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- Вступ до Selenium WebDriver - Підручник з селену №8
- Поглиблені підручники Eclipse для початківців
- Як використовувати TestNG Framework для створення сценаріїв селену - Підручник No12 для TestNG
- Ефективні сценарії сценаріїв та усунення несправностей селену - Підручник селену No27
- Налагодження сценаріїв селену за допомогою журналів (Підручник Log4j) - Підручник селену No26