data driven framework selenium webdriver using apache poi
Hvordan jobbe med datadrevet rammeverk i selen ved hjelp av Apache POI?
Data Driven Framework er en av de populære Automation Testing Framework i dagens marked. Datadrevet automatisert testing er en metode der testdatasettet blir opprettet i excel-arket, og deretter importeres til automatiseringstestverktøy for å mate til programvaren som testes.
Selenium Webdriver er et flott verktøy for å automatisere nettbaserte applikasjoner. Men den støtter ikke lese- og skriveoperasjoner på Excel-filer.
Derfor bruker vi tredjeparts APIer som Apache POI.
Hva du lærer i denne opplæringen:
- Hva er datadrevet rammeverk i Selenium WebDriver ved hjelp av excel-eksempel
- Hvordan lese og skrive data fra Excel-ark i Selenium WebDriver ved hjelp av Apache POI
Hva du vil lære:
- Hva er Apache POI?
- Hvorfor datatester?
- Hva trenger vi for å implementere Data Driven Framework?
- Grensesnitt i interessepunkt
- Fremgangsmåten for å bruke Selenium med Apache POI
- Fordeler med å bruke Data Driven Framework
- Konklusjon
- Anbefalt lesing
Hva er Apache POI?
Apache POI (Poor Obfuscation Implementation) er en API skrevet i Java for å støtte lese- og skriveoperasjoner - modifisering av kontorfiler. Dette er den vanligste API-en som brukes til Selen datadrevne tester .
Det er flere måter å implementere et datadrevet rammeverk på , og hver skiller seg i den innsatsen som kreves for å utvikle rammeverket og vedlikeholdet.
Å utvikle datadrevet rammeverk i Selen ved hjelp av POI bidrar til å redusere vedlikehold, forbedre testdekningen og dermed gi god avkastning.
Anbefalt leser:
Hvorfor datatester?
Ofte kan det være et antall datasett som må brukes til å teste en funksjon i et program. Å kjøre den samme testen med forskjellige data manuelt er tidkrevende, feilutsatt og en kjedelig oppgave.
La oss forstå dette scenariet med et eksempel .
Anta at vi må teste påloggingen / Registrer / Alle skjemaer med flere inntastingsfelt med 100 forskjellige datasett.
For å teste dette har du tre forskjellige tilnærminger:
1) Lag 100 skript ett for hvert datasett, og utfør hver test en etter en.
2) Endre dataene i skriptet og kjør dem flere ganger.
3) Importer dataene fra Excel-arket og kjør skriptet flere ganger med forskjellige data.
De to første scenariene er arbeidskrevende, tidkrevende og innebærer lav avkastning. Derfor må vi følge den tredje tilnærmingen.
I den tredje tilnærmingen implementerer vi Data Driven framework, der alle dataene våre ligger i et excel-ark, der de importeres fra og brukes til å teste funksjonene i applikasjonen.
=> Vil du lære mer om Data Driven Framework? Vi har en detaljert beskrivelse artikkel du kan sjekke her .
Hva trenger vi for å implementere Data Driven Framework?
For å følge denne tilnærmingen må vi ha Eclipse, TestNG riktig konfigurert.
Når det er gjort, vil vi se på:
- Ulike grensesnitt for Apache POI.
- Integrering av Apache POI i formørkelsen.
- Les data fra Excel-arket.
- Skriv data til Excel-arket.
- Fordeler med å bruke Apache POI med Selen.
Grensesnitt i interessepunkt
En av de mest bemerkelsesverdige funksjonene i Apache POI er at den støtter lese- og skriveoperasjoner på både .xls- og .xslx-filer.
Nedenfor er noen av de grensesnitt for interessepunkter .
- XSSF Arbeidsbok: Representerer arbeidsbok i xlsx-fil.
- HSSF Arbeidsbok: Representerer arbeidsbok i xls-fil.
- XSSFSark: Representerer et ark i XLSX-fil.
- HSSFSark: Representerer et ark i XLS-fil.
- XSSFRow: Representerer en rad i et ark med XLSX-fil.
- HSSFRow: Representerer en rad i et ark med XLS-fil.
- XSSFCell: Representerer en celle i en rad med XLSX-filen.
- HSSFCell: Representerer en celle i en rad med XLS-filer.
Felt tilgjengelig i en celle:
- CELL_TYPE_BLANK: Representerer en tom celle.
- CELL_TYPE_BOOLEAN: Representerer en boolsk celle (sann eller usann).
- CELL_TYPE_ERROR: Representerer en feilverdi i en celle.
- CELL_TYPE_FORMULA: Representerer et formelresultat på en celle.
- CELL_TYPE_NUMERIC: Representerer numeriske data i en celle.
- CELL_TYPE_STRING: Representerer streng i en celle.
Fremgangsmåten for å bruke Selenium med Apache POI
La oss lage et automatiseringsskript for å teste påloggingsprosessen til nettbaserte applikasjoner.
hva er livssyklus for programvareutvikling?
Her har jeg tatt LinkedIn som et eksempel .
Vi importerer data fra et excel-ark og bruker det deretter til å logge på applikasjonen, og etter utførelse skriver vi resultatet i excel-arket.
Vi trenger følgende programvare installert på systemet vårt for å fortsette med trinnene for å utføre rammeverket:
- Java JDK 1.7+
- Formørkelse IDE
- TestNG
- Selen krukker
- Microsoft Office / Open Office
Trinn 1)
For det første må vi konfigurere Eclipse med Apache POI .
nedlasting jar-filer for Apache POI.
Steg 2)
Pakk ut jar-filen, og legg til følgende krukker i prosjektet og konfigurer dem.
- dom4j-1.6.1.jar
- poi-3.10-FINAL-20140208.jar
- poi-ooxml-3.10-FINAL-20140208.jar
- poi-ooxml-skjemaer-3.10-FINAL-20140208.jar
- xmlbeans-2.3.0.jar
Trinn 3)
Etter å ha konfigurert de respektive glassene, opprett et Excel-ark, skriv inn noen data i det og lagre det som TestData.xlsx på ønsket sted.
Trinn 4)
La oss nå følge eksempelkoden for å lese data fra Excel-arket og bruke den til å logge på 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()); } } }
Trinn 5)
Høyreklikk på test case-klassen og klikk på Kjør som -> TestNG Test.
Apache POI importerer data fra excel-arket og bruker det til å logge på applikasjonen vår. Nå som vi så hvordan vi kan lese data fra Excel-arket, la oss se på hvordan du skriver til arket.
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(); } } }
Merk : Hvis du støter på problemer under denne prosessen, kan du sjekke følgende punkter.
- Forsikre deg om at alle de nevnte glassene er lagt til i prosjektet og er riktig konfigurert.
- Nødvendig programvare er riktig installert.
- Riktig bruk av et grensesnitt med hensyn til Excel-fil, som HSSF for .xls og XSSF for .xlsx.
- Gyldig rad- og kolonneindeks brukes.
- Excel-filen må lukkes før kjøring.
- Riktige klasser brukt for excel-filen som XSSF brukt til .xlsx filer og HSSF brukt til .xls filer.
Fordeler med å bruke Data Driven Framework
- Forbedrer testdekning.
- Gjenbrukbarhet av kode.
- Mindre vedlikehold.
- Raskere utførelse.
- Tillater bedre feilhåndtering.
Konklusjon
Inngang / utgang fra og til en fil er en veldig kritisk del av testprosessen for programvare. Apache POI spiller en viktig rolle for å gjøre dette mulig for Selenium Test Automation.
Selen integrert med Apache POI forenkler å kjøre skriptet flere ganger med forskjellige datasett, med alle data vedlikeholdt på ett sted. Det sparer tid og vedlikeholdsarbeid på testskriptet.
Om forfatter: Dette er et gjestepost av Vivek, en QA Automation Engineer.
Har du spørsmål som implementerer det datadrevne testrammeverket i Selenium WebDriver ved hjelp av Apache POI? Gi oss beskjed i kommentarene nedenfor.
Anbefalt lesing
- Selen Framework Creation and Accessing Test Data from Excel - Selenium Tutorial # 21
- Datadrevet eller parametrisert testing med Spock Framework
- Hvordan datadrevet testing fungerer (eksempler på QTP og selen)
- Introduksjon til JUnit Framework and Its Usage in Selenium Script - Selenium Tutorial # 11
- Hvordan utføre datadrevet testing ved hjelp av TestComplete Tool
- QTP Opplæring # 18 - Datadrevne og hybridrammer forklart med QTP-eksempler
- Hvordan bruke TestNG Framework for å lage selenskript - TestNG Selen Tutorial # 12
- Hvordan utføre datadrevet testing i SoapUI Pro - SoapUI Tutorial # 14