data driven framework selenium webdriver using apache poi
Kako delati na podatkovno usmerjenem ogrodju v selenu z uporabo Apache POI?
Data Driven Framework je eden izmed priljubljenih okvirov za testiranje avtomatizacije na trenutnem trgu. Podatkovno vodeno samodejno testiranje je metoda, pri kateri se nabor testnih podatkov ustvari v Excelovem listu in nato uvozi v orodja za avtomatizacijsko testiranje, da se doda v programsko opremo, ki se preskuša.
Selenium Webdriver je odlično orodje za avtomatizacijo spletnih aplikacij. Ne podpira pa branja in pisanja v Excelovih datotekah.
Zato uporabljamo API-ji tretjih oseb kot Apache POI.
Kaj se boste naučili v tej vadnici:
- Kaj je podatkovno usmerjeno ogrodje v programu Selenium WebDriver na primeru excel
- Kako brati in zapisovati podatke z Excelovega lista v programu Selenium WebDriver z uporabo Apache POI
Kaj se boste naučili:
- Kaj je Apache POI?
- Zakaj testi podatkovnega pogona?
- Kaj potrebujemo za izvajanje Data Driven Framework?
- Vmesnik v POI
- Koraki za uporabo selena z Apache POI
- Prednosti uporabe Data Driven Framework
- Zaključek
- Priporočeno branje
Kaj je Apache POI?
Apache POI (Poor Obfuscation Implementation) je API, napisan v Javi, ki podpira operacije branja in pisanja - spreminjanje pisarniških datotek. To je najpogostejši API, ki se uporablja za Preskusi s podatki o selenu .
kako odpreti datoteko jnlp
Obstaja več načinov za izvajanje okvira, ki temelji na podatkih , in vsak se razlikuje po naporih, potrebnih za razvoj okvira in vzdrževanja.
Razvijanje okvira za upravljanje podatkov v programu Selenium z uporabo POI pomaga zmanjšati vzdrževanje, izboljšati pokritost s testi in s tem zagotoviti dobro donosnost naložbe.
Priporočeno branje:
- Najbolj priljubljeni okviri za avtomatizacijo preskusov
- Testiranje na podlagi podatkov v programu SoapUI Pro
Zakaj testi podatkovnega pogona?
Pogosto lahko obstajajo številni nabori podatkov, ki jih je treba uporabiti za preizkušanje funkcije aplikacije. Zdaj ročno izvajanje istega testa z različnimi podatki je zamudno, nagnjeno k napakam in dolgočasno opravilo.
Razumimo ta scenarij s primerom .
Recimo, da moramo preizkusiti prijavni / registracijski / kateri koli obrazec z več vnosnimi polji s 100 različnimi nabori podatkov.
Za preizkus tega imate tri različne pristope:
1) Ustvarite 100 skriptov enega za vsak nabor podatkov in izvedite vsak test enega za drugim.
dva) Spremenite podatke v skriptu in jih izvedite večkrat.
3) Uvozite podatke iz Excelovega lista in skript izvedite večkrat z različnimi podatki.
Prva dva scenarija sta dolgotrajna, dolgotrajna in pomenita nizko donosnost naložbe. Zato moramo slediti tretjemu pristopu.
V tretjem pristopu izvajamo ogrodje, ki temelji na podatkih, kjer so vsi naši podatki v Excelovem listu, kjer so uvoženi iz in uporabljeni za preizkušanje funkcij aplikacije.
=> Želite izvedeti več o Data Driven Framework? Imamo podrobno članek si lahko ogledate tukaj .
privzeti prehod ni na voljo Windows 10
Kaj potrebujemo za izvajanje Data Driven Framework?
Če želimo slediti temu pristopu, moramo imeti Eclipse, TestNG pravilno konfiguriran.
Ko končamo, si bomo ogledali:
- Različni vmesniki Apache POI.
- Vključitev Apache POI v Eclipse.
- Preberite podatke iz Excelovega lista.
- Zapišite podatke v Excelov list.
- Prednosti uporabe Apache POI s selenom.
Vmesnik v POI
Ena najpomembnejših lastnosti Apache POI je v tem, da podpira operacije branja in pisanja v datotekah .xls in .xslx.
Spodaj je omenjenih nekaj vmesniki POI .
- XSSFDelovna knjiga: Predstavlja delovni zvezek v datoteki xlsx.
- Delovna knjiga HSSF: Predstavlja delovni zvezek v datoteki xls.
- XSSFSheet: Predstavlja list v datoteki XLSX.
- HSSFSheet: Predstavlja list v datoteki XLS.
- XSSFRow: Predstavlja vrstico na listu datoteke XLSX.
- Vrstica HSSF: Predstavlja vrstico na listu datoteke XLS.
- XSSFCell: Predstavlja celico v vrsti datoteke XLSX.
- HSSFCell: Predstavlja celico v vrsti datoteke XLS.
Polja, ki so na voljo v celici:
- CELL_TYPE_BLANK: Predstavlja prazno celico.
- CELL_TYPE_BOOLEAN: Predstavlja logično celico (true ali false).
- NAPAKA CELL_TYPE_: Predstavlja vrednost napake v celici.
- CELL_TYPE_FORMULA: Predstavlja rezultat formule v celici.
- CELL_TYPE_NUMERIC: Predstavlja numerične podatke v celici.
- CELL_TYPE_STRING: Predstavlja niz v celici.
Koraki za uporabo selena z Apache POI
Ustvarimo skript za avtomatizacijo, s katerim bomo preizkusili postopek prijave v spletne aplikacije.
Tukaj sem vzel LinkedIn kot primer .
Podatke uvozimo iz Excelovega lista in jih nato uporabimo za prijavo v aplikacijo, po izvedbi pa rezultat zapišemo v Excelov list.
Za nadaljevanje korakov za izvajanje okvira potrebujemo naslednjo programsko opremo, nameščeno v našem sistemu:
- Java JDK 1.7+
- Eclipse IDE
- TestNG
- Selenovi kozarci
- Microsoft Office / Open Office
Korak 1)
Najprej moramo konfigurirati Eclipse z Apache POI .
Prenesi jar datoteke za Apache POI.
2. korak)
Razpakirajte datoteko jar in v svoj projekt dodajte naslednje kozarce ter jih konfigurirajte.
- 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
3. korak)
Po nastavitvi ustreznih kozarcev ustvarite excel list, vanj vnesite nekaj podatkov in ga shranite kot TestData.xlsx na želeni lokaciji.
4. korak)
brezplačna programska oprema za pretvorbo videoposnetkov za Windows
Zdaj sledimo vzorčni kodi, da preberemo podatke z Excelovega lista in jo uporabimo za prijavo 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()); } } }
5. korak)
Z desno miškino tipko kliknite razred testnega primera in kliknite na Zaženi kot -> TestNG Test.
Apache POI podatke uvozi iz Excelovega lista in jih uporabi za prijavo v našo aplikacijo. Zdaj, ko smo videli, kako beremo podatke z lista excel, poglejmo, kako zapisovati 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(); } } }
Opomba : Če med postopkom naletite na kakršne koli težave, preverite naslednje točke.
- Prepričajte se, da so vsi omenjeni kozarci dodani v projekt in pravilno konfigurirani.
- Potrebna programska oprema je pravilno nameščena.
- Pravilna uporaba vmesnika glede na datoteko excel, na primer HSSF za .xls in XSSF za .xlsx.
- Uporabljen je veljaven indeks vrstic in stolpcev.
- Datoteko Excel je treba pred izvajanjem zapreti.
- Pravilni razredi, ki se uporabljajo za datoteko excel, kot je XSSF, ki se uporablja za datoteke .xlsx, in HSSF, ki se uporablja za datoteke .xls.
Prednosti uporabe Data Driven Framework
- Izboljša pokritost s testom.
- Ponovna uporabnost kode.
- Manj vzdrževanja.
- Hitrejša izvedba.
- Omogoča boljše ravnanje z napakami.
Zaključek
Vhod / izhod iz in v datoteko je zelo pomemben del procesa testiranja programske opreme. Apache POI igra ključno vlogo pri omogočanju tega za avtomatizacijo preizkusov selena.
Selen, integriran z Apache POI vam olajša večkratno izvajanje skripta z različnimi nabori podatkov, pri čemer so vsi podatki na enem mestu. Pri testnem skriptu prihranite čas in napor pri vzdrževanju.
O avtor: To je gostujoča objava Viveka, inženirja za avtomatizacijo QA.
Ali imate poizvedbe o izvajanju podatkovno usmerjenega okvira za testiranje v programu Selenium WebDriver z uporabo Apache POI? Sporočite nam v komentarjih spodaj.
Priporočeno branje
- Ustvarjanje okvirja selena in dostop do testnih podatkov iz Excela - Vadnica za selen št. 21
- Podatkovno ali parametrizirano testiranje s Spock Framework
- Kako deluje preskušanje na podlagi podatkov (primera QTP in selena)
- Uvod v JUnit Framework in njegovo uporabo v skriptu selena - Vadnica za selen # 11
- Kako izvesti preskušanje na podlagi podatkov z orodjem TestComplete
- Vadnica QTP # 18 - Podatki in hibridni okviri, pojasnjeni s primeri QTP
- Kako uporabiti ogrodje TestNG za ustvarjanje skriptov za selen - Vadnica # 12 za TestNG Selenium
- Kako izvesti preskušanje na podlagi podatkov v programu SoapUI Pro - Vadnica SoapUI št. 14