data driven framework selenium webdriver using apache poi
Як працювати над структурою, керованою даними в селеніні, використовуючи Apache POI?
Data Driven Framework - одна з найпопулярніших платформ тестування автоматизації на сучасному ринку. Автоматизоване тестування, кероване даними, - це метод, при якому набір даних тесту створюється в аркуші Excel, а потім імпортується до засобів тестування автоматизації для подачі до тестового програмного забезпечення.
Selenium Webdriver - чудовий інструмент для автоматизації веб-програм. Але він не підтримує операції читання та запису файлів Excel.
Тому ми використовуємо сторонні API як Apache POI.
Що ви дізнаєтесь із цього підручника:
скопіювати DVD на жорсткий диск безкоштовно - -
- Що таке фреймворк, керований даними в Selenium WebDriver на прикладі Excel
- Як читати та писати дані з аркуша Excel у Selenium WebDriver за допомогою Apache POI
Що ви дізнаєтесь:
- Що таке POI Apache?
- Чому тестування даних?
- Що нам потрібно для реалізації Data Driven Framework?
- Інтерфейс у POI
- Етапи використання селену з Apache POI
- Переваги використання Data Driven Framework
- Висновок
- Рекомендована література
Що таке POI Apache?
Apache POI (Poor Obfuscation Implementation) - це API, написаний на Java для підтримки операцій читання та запису - модифікації офісних файлів. Це найпоширеніший API, який використовується для Тести на основі даних селену .
Існує декілька способів реалізації Data Driven Framework , і кожен відрізняється зусиллями, необхідними для розробки структури та обслуговування.
Розробка фреймворку, керованого даними, в Selenium з використанням POI допомагає зменшити обслуговування, покращити охоплення тестом, забезпечуючи тим самим хорошу рентабельність інвестицій.
Рекомендовані читання:
Чому тестування даних?
Часто може існувати декілька наборів даних, які потрібно використовувати для тестування функції програми. Зараз проведення одного і того ж тесту з різними даними вручну - це трудомістке, схильне до помилок і нудне завдання.
Давайте розберемося в цьому сценарії на прикладі .
Припустимо, нам потрібно протестувати форму входу / реєстрації / будь-якої форми з кількома полями введення зі 100 різними наборами даних.
Щоб перевірити це, у вас є три різні підходи:
1) Створіть 100 сценаріїв по одному для кожного набору даних і виконуйте кожен тест по одному.
два) Змініть дані в сценарії та виконуйте їх кілька разів.
3) Імпортуйте дані з аркуша Excel і виконуйте сценарій кілька разів з різними даними.
Перші два сценарії трудомісткі, трудомісткі - передбачають низьку рентабельність інвестицій. Отже, ми повинні слідувати третьому підходу.
У третьому підході реалізуємо фреймворк, керований даними, де всі наші дані містяться в аркуші Excel, де вони імпортуються з і використовуються для тестування особливостей програми.
=> Хочете дізнатись більше про Data Driven Framework? У нас є докладний статтю, яку ви можете переглянути тут .
Що нам потрібно для реалізації Data Driven Framework?
Для того, щоб слідувати цьому підходу, ми повинні мати Eclipse, TestNG належним чином налаштований.
Після цього ми розглянемо:
- Різні інтерфейси Apache POI.
- Інтеграція POI Apache в Eclipse.
- Прочитайте дані з аркуша Excel.
- Запишіть дані в аркуш Excel.
- Переваги використання Apache POI з селеном.
Інтерфейс у POI
Одна з найвизначніших особливостей Apache POI полягає в тому, що він підтримує операції читання та запису як .xls, так і .xslx файлів.
Нижче згадані деякі з інтерфейси POI .
- XSSFРобоча книга: Представляє книгу у файлі xlsx.
- HSSFРобоча книга: Представляє книгу у файлі xls.
- XSSFSheet: Представляє аркуш у файлі XLSX.
- Аркуш HSSF: Представляє аркуш у файлі XLS.
- XSSFRow: Представляє рядок у аркуші файлу XLSX.
- HSSFRow: Представляє рядок у аркуші файлу XLS.
- XSSFCell: Представляє комірку в рядку файлу XLSX.
- HSSFCПродаж: Представляє комірку в рядку файлу XLS.
Доступні поля в комірці:
- CELL_TYPE_BLANK: Представляє порожню комірку.
- CELL_TYPE_BOOLEAN: Представляє логічну комірку (істинну чи хибну).
- CELL_TYPE_ERROR: Представляє значення помилки в комірці.
- CELL_TYPE_FORMULA: Представляє результат формули на комірці.
- CELL_TYPE_NUMERIC: Представляє числові дані в комірці.
- CELL_TYPE_STRING: Представляє рядок у комірці.
Етапи використання селену з Apache POI
Давайте створимо сценарій автоматизації для перевірки процесу входу в веб-додатки.
Запитання та відповіді на запитання співбесіди для селену веб-драйвер для досвідченого PDF
Ось я взяв LinkedIn як приклад .
Ми імпортуємо дані з аркуша Excel, а потім використовуємо їх для входу в додаток, а після виконання записуємо результат у аркуші Excel.
Нам потрібно наступне програмне забезпечення, встановлене в нашій системі, щоб продовжити кроки для виконання фреймворку:
- Java JDK 1.7+
- Eclipse IDE
- ТестNG
- Селенові банки
- Microsoft Office / Open Office
Крок 1)
По-перше, нам потрібно налаштувати Eclipse за допомогою Apache POI .
Завантажити jar-файли для POI Apache.
Запитання та відповіді на співбесіду з angularjs для досвідченого pdf
Крок No2)
Розпакуйте файл jar та додайте наступні банки до свого проекту та налаштуйте їх.
- dom4j-1.6.1.jar
- poi-3.10-FINAL-20140208.jar
- poi-ooxml-3.10-FINAL-20140208.jar
- poi-ooxml-schemas-3.10-FINAL-20140208.jar
- xmlbeans-2.3.0.jar
Крок No3)
Після налаштування відповідних банок створіть аркуш Excel, введіть до нього деякі дані та збережіть як TestData.xlsx у бажаному місці.
Крок No4)
Тепер давайте слідувати зразку коду, щоб прочитати дані з аркуша Excel і використати його для входу linkedin.com .
package automationFramework; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.concurrent.TimeUnit; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; /** * @author Admin * */ public class ReadWriteExcel { WebDriver driver; WebDriverWait wait; HSSFWorkbook workbook; HSSFSheet sheet; HSSFCell cell; @BeforeTest public void TestSetup() { // Set the path of the Firefox driver. System.setProperty('webdriver.gecko.driver', 'C:\Users\geckodriver.exe'); driver = new FirefoxDriver(); // Enter url. driver.get('http://www.linkedin.com/'); driver.manage().window().maximize(); wait = new WebDriverWait(driver,30); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void ReadData() throws IOException { // Import excel sheet. File src=new File('C:\Users\Admin\Desktop\TestData.xls'); // Load the file. FileInputStream finput = new FileInputStream(src); // Load he workbook. workbook = new HSSFWorkbook(finput); // Load the sheet in which data is stored. sheet= workbook.getSheetAt(0); for(int i=1; i<=sheet.getLastRowNum(); i++) { // Import data for Email. cell = sheet.getRow(i).getCell(1); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-email')).sendKeys(cell.getStringCellValue()); // Import data for password. cell = sheet.getRow(i).getCell(2); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-password')).sendKeys(cell.getStringCellValue()); } } }
Крок No5)
Клацніть правою кнопкою миші на класі тестування та натисніть на Запустити як -> TestNG Test.
Apache POI імпортує дані з аркуша Excel і використовує їх для входу в наш додаток. Тепер, коли ми побачили, як читати дані з аркуша Excel, давайте розглянемо, як писати на аркуші.
package automationFramework; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.concurrent.TimeUnit; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; /** * @author Admin * */ public class ReadWriteExcel { WebDriver driver; WebDriverWait wait; HSSFWorkbook workbook; HSSFSheet sheet; HSSFCell cell; @BeforeTest public void TestSetup() { // Set the path of the Firefox driver. System.setProperty('webdriver.gecko.driver', 'C:\Users\geckodriver.exe'); driver = new FirefoxDriver(); // Enter url. driver.get('http://www.linkedin.com/'); driver.manage().window().maximize(); wait = new WebDriverWait(driver,30); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void ReadData() throws IOException { // Import excel sheet. File src=new File('C:\Users\Admin\Desktop\TestData.xls'); // Load the file. FileInputStream finput = new FileInputStream(src); // Load he workbook. workbook = new HSSFWorkbook(finput); // Load the sheet in which data is stored. sheet= workbook.getSheetAt(0); for(int i=1; i<=sheet.getLastRowNum(); i++) { // Import data for Email. cell = sheet.getRow(i).getCell(1); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-email')).sendKeys(cell.getStringCellValue()); // Import data for password. cell = sheet.getRow(i).getCell(2); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-password')).sendKeys(cell.getStringCellValue()); // Write data in the excel. FileOutputStream foutput=new FileOutputStream(src); // Specify the message needs to be written. String message = 'Data Imported Successfully.'; // Create cell where data needs to be written. sheet.getRow(i).createCell(3).setCellValue(message); // Specify the file in which data needs to be written. FileOutputStream fileOutput = new FileOutputStream(src); // finally write content workbook.write(fileOutput); // close the file fileOutput.close(); } } }
Примітка : Якщо під час цього процесу у вас виникнуть проблеми, перевірте наступні пункти.
- Переконайтесь, що всі згадані банки додані до проекту та правильно налаштовані.
- Необхідне програмне забезпечення встановлено правильно.
- Правильне використання інтерфейсу щодо файлу Excel, наприклад HSSF для .xls та XSSF для .xlsx.
- Використовується дійсний індекс рядків і стовпців.
- Файл Excel перед виконанням потрібно закрити.
- Правильні класи, що використовуються для файлу excel, такі як XSSF, що використовується для файлів .xlsx, і HSSF, що використовується для файлів .xls.
Переваги використання Data Driven Framework
- Покращує охоплення тестом.
- Повторне використання коду.
- Менше обслуговування.
- Швидше виконання.
- Дозволяє покращити обробку помилок.
Висновок
Вхід / вихід із файлу і в нього є дуже важливою частиною процесу тестування програмного забезпечення. Apache POI відіграє життєво важливу роль у здійсненні цього для автоматизації випробувань селену.
Селен, інтегрований з Apache POI полегшує вам запуск сценарію кілька разів з різними наборами даних, причому всі дані зберігаються в одному місці. Це економить час та зусилля на технічне обслуговування сценарію тесту.
Про автор: Це гостьовий допис Вівека, інженера з автоматизації контролю якості.
Чи є у вас запити щодо реалізації керованої даними основи тестування в Selenium WebDriver з використанням Apache POI? Повідомте нас у коментарях нижче.
Рекомендована література
- Створення Framework селену та доступ до тестових даних з Excel - Підручник селену №21
- Тестування на основі даних або параметризоване за допомогою Spock Framework
- Як працює тестування на основі даних (приклади QTP та селену)
- Вступ до JUnit Framework та його використання у сценарії селену - Підручник з селену No11
- Як проводити тестування на основі даних за допомогою інструмента TestComplete
- Підручник QTP # 18 - Управління даними та гібридні фреймворки, пояснені на прикладах QTP
- Як використовувати TestNG Framework для створення сценаріїв селену - Підручник No12 для TestNG
- Як виконувати тестування на основі даних у SoapUI Pro - Підручник SoapUI No14