data driven framework selenium webdriver using apache poi
Ako pracovať na Data Driven Framework v seléne pomocou Apache POI?
Data Driven Framework je jedným z populárnych rámcov testovania automatizácie na súčasnom trhu. Automatizované testovanie na základe údajov je metóda, pri ktorej sa súbor údajov o teste vytvorí v hárku programu Excel a potom sa naimportuje do nástrojov na automatizáciu na účely podania testovanému softvéru.
Selenium Webdriver je vynikajúci nástroj na automatizáciu webových aplikácií. Ale nepodporuje operácie čítania a zápisu na súboroch programu Excel.
Preto používame API tretích strán ako Apache POI.
Čo sa naučíte v tomto návode:
- Čo je to rámec riadený dátami v selenovom webovom ovládači pomocou príkladu programu Excel
- Ako čítať a zapisovať údaje z hárka programu Excel v serveri Selenium WebDriver pomocou Apache POI
Čo sa dozviete:
- Čo je to Apache POI?
- Prečo testy dátovej jednotky?
- Čo potrebujeme na implementáciu Data Driven Framework?
- Rozhranie v POI
- Kroky na použitie selénu s Apache POI
- Výhody použitia rámca riadeného dátami
- Záver
- Odporúčané čítanie
Čo je to Apache POI?
Apache POI (Poor Obfuscation Implementation) je API napísané v Jave na podporu operácií čítania a zápisu - upravujúcich kancelárske súbory. Toto je najbežnejšie API používané pre Testy založené na údajoch selénu .
Existuje niekoľko spôsobov, ako implementovať rámec riadený údajmi a každá sa líši v úsilí potrebnom na vývoj rámca a údržbu.
čo z toho platí pre test integrácie?
Vývoj rámca riadeného dátami v seléne pomocou POI pomáha znižovať údržbu, zlepšovať pokrytie testov a tým poskytuje dobrú návratnosť investícií.
Odporúčané čítanie:
Prečo testy dátovej jednotky?
Často môže existovať niekoľko súborov údajov, ktoré je potrebné použiť na otestovanie funkcie aplikácie. Spustenie toho istého testu s rôznymi údajmi manuálne je teraz časovo náročné, náchylné na chyby a nudná úloha.
Pochopme tento scenár na príklade .
Predpokladajme, že musíme otestovať prihlasovací / registračný / ľubovoľný formulár s viacerými vstupnými poľami so 100 rôznymi množinami údajov.
Na otestovanie máte tri rôzne prístupy:
1) Vytvorte 100 skriptov jeden pre každú množinu údajov a vykonajte každý test jeden po druhom.
dva) Zmeňte údaje v skripte a vykonajte ich viackrát.
3) Importujte údaje z hárka programu Excel a vykonajte skript niekoľkokrát s rôznymi údajmi.
Prvé dva scenáre sú namáhavé, časovo náročné - z čoho vyplýva nízka návratnosť investícií. Preto musíme postupovať podľa tretieho prístupu.
Tretím prístupom je implementácia rámca Data Driven, kde sa všetky naše údaje nachádzajú v excelovom hárku, odkiaľ sú importované a použité na testovanie funkcií aplikácie.
=> Chcete sa dozvedieť viac o Data Driven Framework? Máme podrobný článok si môžete pozrieť tu .
Čo potrebujeme na implementáciu Data Driven Framework?
Aby sme mohli postupovať týmto prístupom, musíme mať správne nakonfigurovaný Eclipse, TestNG.
Po dokončení sa pozrieme na:
- Rôzne rozhrania Apache POI.
- Integrácia POI Apache do Eclipse.
- Čítanie údajov z hárka programu Excel.
- Údaje zapisujte do hárka programu Excel.
- Výhody použitia Apache POI so selénom.
Rozhranie v POI
Jednou z najpozoruhodnejších vlastností produktu Apache POI spočíva v tom, že podporuje operácie čítania a zápisu na súbory .xls aj .xslx.
Nižšie sú uvedené niektoré z rozhrania POI .
- Pracovný zošit XSSF: Predstavuje zošit v súbore xlsx.
- Pracovná kniha HSSF: Predstavuje zošit v xls súbore.
- Hárok XSSFS: Predstavuje hárok v súbore XLSX.
- HSSFSheet: Predstavuje hárok v súbore XLS.
- XSSFRow: Predstavuje riadok v hárku súboru XLSX.
- HSSFRow: Predstavuje riadok v hárku súboru XLS.
- XSSFCell: Predstavuje bunku v rade súboru XLSX.
- HSSFCell: Predstavuje bunku v rade súboru XLS.
Polia dostupné v bunke:
- CELL_TYPE_BLANK: Predstavuje prázdnu bunku.
- CELL_TYPE_BOOLEAN: Predstavuje boolovskú bunku (true alebo false).
- CELL_TYPE_ERROR: Predstavuje chybovú hodnotu v bunke.
- CELL_TYPE_FORMULA: Reprezentuje výsledok vzorca v bunke.
- CELL_TYPE_NUMERIC: Predstavuje číselné údaje v bunke.
- CELL_TYPE_STRING: Predstavuje reťazec v bunke.
Kroky na použitie selénu s Apache POI
Vytvorme automatizačný skript na otestovanie procesu prihlásenia webových aplikácií.
čo je testovanie čiernej skrinky a skúšky bielej skrinky s príkladom
Tu som využil LinkedIn ako príklad .
Importujeme údaje z hárka programu Excel a pomocou nich sa potom prihlásime do aplikácie a po vykonaní výsledok zapíšeme do hárka programu Excel.
Aby sme mohli pokračovať v krokoch potrebných na vykonanie rámca, potrebujeme do nášho systému nainštalovaný nasledujúci softvér:
- Java JDK 1.7+
- Zatmenie IDE
- TestNG
- Selénové poháre
- Microsoft Office / Open Office
Krok 1)
Najprv musíme nakonfigurovať Eclipse s Apache POI .
Stiahnuť ▼ jar súbory pre Apache POI.
Krok 2)
Rozbaľte súbor jar, pridajte do svojho projektu nasledujúce poháre a nakonfigurujte ich.
- dom4j-1.6.1.jar
- poi-3.10-FINÁLNE-20140208.jar
- poi-ooxml-3.10-FINAL-20140208.jar
- poi-ooxml-schemas-3.10-FINAL-20140208.jar
- xmlbeans-2.3.0.jar
Krok č. 3)
Po nakonfigurovaní príslušných pohárov vytvorte hárok programu Excel, zadajte doň nejaké údaje a uložte ich ako TestData.xlsx vo vami preferovanom mieste.
Krok č. 4)
Teraz postupujte podľa ukážkového kódu, aby sme načítali údaje z hárka programu Excel a pomocou nich sa prihlásili 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()); } } }
Krok č. 5)
Pravým tlačidlom myši kliknite na triedu testovacích prípadov a kliknite na ikonu Spustiť ako -> TestNG Test.
Apache POI importuje údaje z hárka programu Excel a použije ich na prihlásenie do našej aplikácie. Teraz, keď sme videli, ako čítať údaje z hárka programu Excel, pozrime sa, ako zapisovať do hárka.
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(); } } }
Poznámka : Ak sa počas tohto procesu vyskytnú problémy, skontrolujte nasledujúce body.
- Skontrolujte, či sú všetky spomenuté nádoby pridané do projektu a či sú správne nakonfigurované.
- Požadovaný softvér je správne nainštalovaný.
- Správne použitie rozhrania v súvislosti so súborom programu Excel, napríklad HSSF pre .xls a XSSF pre .xlsx.
- Používa sa platný index riadkov a stĺpcov.
- Súbor Excel musí byť pred vykonaním zatvorený.
- Správne triedy používané pre súbor programu Excel, ako napríklad XSSF pre súbory .xlsx a HSSF pre súbory .xls.
Výhody použitia rámca riadeného dátami
- Zlepšuje pokrytie testom.
- Opätovná použiteľnosť kódu.
- Menej údržby.
- Rýchlejšie vykonanie.
- Umožňuje lepšie spracovanie chýb.
Záver
Vstup / výstup zo súboru a do súboru je veľmi dôležitou súčasťou procesu testovania softvéru. Apache POI hrá zásadnú rolu pri umožňovaní tejto funkcie pre selenovú skúšobnú automatizáciu.
Selén integrovaný s Apache POI vám umožňuje spustiť skript viackrát s rôznymi množinami údajov, pričom všetky údaje sa uchovávajú na jednom mieste. Šetrí čas a námahu pri údržbe testovacieho skriptu.
O autor: Toto je príspevok hosťa Vivek, QA Automation Engineer.
Máte nejaké otázky týkajúce sa implementácie testovacieho rámca založeného na dátach v Selenium WebDriver pomocou POI Apache? Dajte nám vedieť v komentároch nižšie.
Odporúčané čítanie
- Vytváranie rámca selénu a prístup k testovacím údajom z Excelu - Výučba selénu č. 21
- Testovanie na základe dát alebo parametrizovanie pomocou Spock Framework
- Ako funguje testovanie na základe dát (príklady QTP a selénu)
- Úvod do rámca JUnit a jeho použitie v selénovom skripte - selén výučba # 11
- Ako vykonať testovanie na základe údajov pomocou nástroja TestComplete
- Výukový program QTP # 18 - Dáta riadené a hybridné rámce vysvetlené na príkladoch QTP
- Ako používať rámec TestNG na vytváranie skriptov selénu - návod na testovanie selénu TestNG # 12
- Ako vykonať testovanie na základe dát v SoapUI Pro - SoapUI Tutorial # 14