data driven framework selenium webdriver using apache poi
Kako raditi na podatkovnom okviru u selenu koristeći Apache POI?
Data Driven Framework jedan je od popularnih okvira za testiranje automatizacije na trenutnom tržištu. Automatizirano testiranje na temelju podataka metoda je kojom se skup podataka o testiranju kreira u excel listu, a zatim uvozi u alate za automatizaciju za testiranje radi unosa u softver koji se testira.
Selenium Webdriver izvrstan je alat za automatizaciju web aplikacija. Ali ne podržava operacije čitanja i pisanja na excel datotekama.
Stoga koristimo API-ji treće strane poput Apache POI.
java pitanje za intervju i odgovori za svježe
Što ćete naučiti u ovom vodiču:
- Što je okvir vođen podacima u programu Selenium WebDriver na primjeru excela
- Kako čitati i pisati podatke s excel lista u programu Selenium WebDriver pomoću Apache POI
Što ćete naučiti:
- Što je Apache POI?
- Zašto testovi podatkovnih pogona?
- Što nam je potrebno za implementaciju Okvira vođenog podacima?
- Sučelje u POI
- Koraci za upotrebu selena s Apache POI
- Prednosti upotrebe Data Driven Framework-a
- Zaključak
- Preporučena literatura
Što je Apache POI?
Apache POI (Poor Obfuscation Implementation) je API napisan na Javi za podršku operacijama čitanja i pisanja - izmjeni uredskih datoteka. Ovo je najčešći API koji se koristi za Testovi vođeni podacima o selenu .
Postoji nekoliko načina za implementaciju Okvira vođenog podacima , a svaki se razlikuje u naporima potrebnim za razvoj okvira i održavanja.
Razvijanje okvira vođenog podacima u seleniju pomoću POI pomaže smanjiti održavanje, poboljšati pokrivenost testom pružajući tako dobar povrat ulaganja.
Preporučena čitanja:
Zašto testovi pogona podataka?
Često može postojati niz skupova podataka koji se moraju koristiti za testiranje značajke aplikacije. Sada je ručno izvođenje istog testa s različitim podacima dugotrajno, podložno pogreškama i dosadan zadatak.
Razumijemo ovaj scenarij na primjeru .
Pretpostavimo da trebamo testirati obrazac za prijavu / registraciju / bilo koji obrazac s više polja za unos sa 100 različitih skupova podataka.
Da biste to testirali, imate tri različita pristupa:
1) Stvorite 100 skripti jednu za svaki skup podataka i izvršite svaki test jedan po jedan.
dva) Promijenite podatke u skripti i izvršite ih više puta.
3) Uvezite podatke s excel lista i izvedite skriptu više puta s različitim podacima.
Prva dva scenarija su naporan, dugotrajan - što podrazumijeva nizak ROI. Stoga moramo slijediti treći pristup.
U trećem pristupu implementiramo okvir vođen podacima, gdje se svi naši podaci nalaze u excel listu, gdje se uvoze i koriste za testiranje značajki aplikacije.
=> Želite li saznati više o Okviru upravljanom podacima? Imamo detaljan članak možete pogledati ovdje .
Što nam je potrebno za implementaciju Okvira vođenog podacima?
Da bismo slijedili ovaj pristup, moramo imati Eclipse, TestNG pravilno konfiguriran.
Kada završimo, pogledat ćemo:
- Razna sučelja Apache POI.
- Integracija Apache POI u Eclipse.
- Pročitajte podatke iz Excel lista.
- Zapišite podatke u Excel list.
- Prednosti upotrebe Apache POI sa selenom.
Sučelje u POI
Jedna od najistaknutijih karakteristika Apache POI jest da podržava operacije čitanja i pisanja i .xls i .xslx datoteka.
Ispod su navedeni neki od sučelja POI .
- XSSFRadna knjiga: Predstavlja radnu knjigu u xlsx datoteci.
- HSSFRadna knjiga: Predstavlja radnu knjigu u xls datoteci.
- XSSFSheet: Predstavlja list u XLSX datoteci.
- HSSFSheet: Predstavlja list u XLS datoteci.
- XSSFRow: Predstavlja red u listu XLSX datoteke.
- HSSFRow: Predstavlja red u listu XLS datoteke.
- XSSFCell: Predstavlja ćeliju u nizu XLSX datoteke.
- HSSFCell: Predstavlja ćeliju u nizu XLS datoteke.
Polja dostupna u ćeliji:
- CELL_TYPE_BLANK: Predstavlja praznu ćeliju.
- CELL_TYPE_BOOLEAN: Predstavlja logičku ćeliju (točno ili netačno).
- GREŠKA CELL_TYPE_: Predstavlja vrijednost pogreške u ćeliji.
- CELL_TYPE_FORMULA: Predstavlja rezultat formule na ćeliji.
- CELL_TYPE_NUMERIC: Predstavlja numeričke podatke u ćeliji.
- CELL_TYPE_STRING: Predstavlja niz u ćeliji.
Koraci za upotrebu selena s Apache POI
Stvorimo skriptu za automatizaciju kako bismo testirali postupak prijave aplikacija zasnovanih na webu.
najbolje besplatno uklanjanje adwarea i malwarea
Evo, uzeo sam LinkedIn kao primjer .
Uvozimo podatke s excel lista, a zatim ih koristimo za prijavu u aplikaciju i nakon izvršenja zapisujemo rezultat u excel list.
Za nastavak koraka za izvršavanje okvira potreban nam je sljedeći softver instaliran na našem sustavu:
- Java JDK 1.7+
- Eclipse IDE
- TestNG
- Tegle od selena
- Microsoft Office / Open Office
Korak 1)
Prvo, moramo konfigurirati Eclipse sa Apache POI .
preuzimanje datoteka jar datoteke za Apache POI.
Korak 2)
Raspakirajte datoteku jar i dodajte sljedeće staklenke u svoj projekt i konfigurirajte ih.
- 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
Korak 3)
Nakon konfiguriranja odgovarajućih staklenki, stvorite excel list, u njega unesite neke podatke i spremite ih kao TestData.xlsx na vašem omiljenom mjestu.
Korak # 4)
Sada slijedimo primjer koda za čitanje podataka s excel lista i upotrijebimo ga za prijavu na 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()); } } }
Korak # 5)
Desni klik na klasu testnog slučaja i kliknite na Pokrenite kao -> TestNG Test.
Apache POI uvozi podatke s excel lista i koristi ih za prijavu u našu aplikaciju. Sad kad smo vidjeli kako čitati podatke s excel lista, pogledajmo kako pisati na list.
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(); } } }
Bilješka : Ako naiđete na bilo kakve probleme tijekom ovog postupka, provjerite sljedeće točke.
- Provjerite jesu li sve spomenute staklenke dodane u projekt i jesu li pravilno konfigurirane.
- Potreban softver je ispravno instaliran.
- Pravilna uporaba sučelja s obzirom na excel datoteku, poput HSSF-a za .xls i XSSF za .xlsx.
- Koristi se valjani indeks redaka i stupaca.
- Datoteka Excel mora se zatvoriti prije izvršenja.
- Odgovarajuće klase korištene za excel datoteku poput XSSF koja se koristi za .xlsx datoteke i HSSF koja se koristi za .xls datoteke.
Prednosti korištenja okvira vođenog podacima
- Poboljšava pokrivenost testom.
- Ponovna upotrebljivost koda.
- Manje održavanja.
- Brže izvršenje.
- Omogućuje bolje rješavanje pogrešaka.
Zaključak
Ulaz / izlaz iz i u datoteku vrlo je važan dio procesa testiranja softvera. Apache POI igra vitalnu ulogu u omogućavanju toga za automatsku automatizaciju selena.
Selen integriran sa Apache POI olakšava vam pokretanje vaše skripte više puta s različitim skupovima podataka, sa svim podacima koji se održavaju na jednom mjestu. Štedi vrijeme i napore na održavanju testne skripte.
O Autor: Ovo je gost Viveka, inženjera QA automatizacije.
Koji je najbolji besplatni glazbeni downloader
Imate li upita za implementaciju podatkovnog okvira za testiranje u Selenium WebDriver pomoću Apache POI? Javite nam u komentarima ispod.
Preporučena literatura
- Stvaranje okvira za selenij i pristupanje testnim podacima iz programa Excel - Tutorial br. 21
- Testiranje na temelju podataka ili parametrizirano sa Spock Frameworkom
- Kako funkcionira testiranje na temelju podataka (primjeri QTP-a i selena)
- Uvod u JUnit Framework i njegovu upotrebu u skripti za selenij - Vodič za selen br. 11
- Kako izvesti testiranje na temelju podataka pomoću alata TestComplete
- QTP vodič # 18 - Pokrenuti podacima i hibridni okviri objašnjeni s primjerima QTP-a
- Kako se koristi TestNG Framework za stvaranje skripti za selen - TestNG Selen Tutorial # 12
- Kako izvesti testiranje na temelju podataka u SoapUI Pro - Vodič za SoapUI # 14