how read write data from excel sheet selenium web driver
U ovom vodiču naučit ćete čitati i pisati podatke iz Excel datoteke u programu Selenium WebDriver koristeći FILLO API i SQL izraze.
Čitanje ili pisanje podataka jedna je od najčešće korištenih operacija, bilo dohvaćanje vrijednosti iz tablica baze podataka ili dohvaćanje vrijednosti s excel lista i njihova upotreba za obavljanje analitike.
U ovom članku govorimo o dohvaćanju vrijednosti iz excel datoteke pomoću SQL izraza i FILLO API-ja.
Što ćete naučiti:
Pregled API-ja SON
FILLO je Java API koji se koristi za dohvaćanje podataka iz Excel datoteka. Korištenjem FILLO API-ja parametriranje postaje vrlo jednostavno, tj. Pokretanje vaših test slučajeva u Seleniju s različitim skupom podataka.
Prije toga koristili smo JXL API za parametarizaciju, kasnije se na tržište pojavio apache POI, a u oba API-ja trebamo napisati veliki kôd za prelazak redaka i stupaca i dohvaćanje vrijednosti pohranjenih u excel listu.
Ali sada, s ovim novim FILLO API-jem, ne treba brinuti o veličini redaka i stupaca, API će se za sve pobrinuti interno. Samo trebate nazvati klase definirane u API-ju i prijaviti svoje test podatke u excel datoteci. Pogledajte dokumentaciju i preuzmite datoteku jar-a na službenoj stranici- SON Java knjižnica
Ako koristite Maven, tada upotrijebite ovisnost o Mavenu.
FILLO staklenka s Maven Dependency
početak
- To je izvrsni API za Java jezik.
- Podržava .xls i .xlsx datoteke.
- Podržava SELECT, UPDATE i INSERT upite.
- Upotrijebite sa ili bez klauzule WHERE i LIKE.
Operacija dopuštena s Fillom
SELECT operacija: Izraz SELECT izvodi istu funkciju kao i pri dohvaćanju vrijednosti iz tablice i prikazu krajnjem korisniku, na isti način na koji ovdje izraz SELECT vraća podatke s excel lista.
Sintaksa:
SELECT * From Sheet Name
AŽURIRANJE: UPDATE izraz modificira postojeće zapise u excel listu.
Sintaksa:
UPDATE sheet1 Set Column Name= ‘Value’
INSERT Operacija: Izjava INSERT ubacuje novi zapis u excel list.
Sintaksa:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Izvršite iste operacije s operaterima WHERE i LIKE:
- 'ODABERI * iz naziva lista gdje je ID = 1 i ime = 'Isus''
- “ODABERI * iz naziva lista gdje je stupac1 = vrijednost1 i stupac2 = vrijednost2 i stupac3 = vrijednost3”
- 'AŽURIRANJE Naziv lista Država Država = 'UK' gdje je ID = 10 i ime = 'Isus''
- “SELECT * iz naziva lista gdje je ime poput 'Jes%''
Koraci izvršenja koje treba slijediti za postupak ODABIR / UMETANJE / AŽURIRANJE:
# 1) // Stvaranje objekta klase Fillo.
Fillo fillo = new Fillo();
#dva) // Stvorimo objekt za klasu veze i upotrijebimo metodu getConnection () definiranu unutar klase Fillo, da uspostavimo vezu između excel lista i Fillo API-ja.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Odaberite sve vrijednosti prisutne u listu. Oni koji su prisutni unutar excela i pohranjuju njegov izlaz u varijablu niza.
String strSelectQuerry = 'Select * from SheetName';
# 4) // izvršavamo upit Select i pohranjujemo rezultat u klasu Recordset prisutnu u Fillo API-ju.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // koristimo while petlju za itiranje kroz sve stupce i retke dostupne u listu koji se nalazi u excel datoteci.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Upotrijebite upit za ažuriranje za ažuriranje detalja u datoteci excel.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Upotrijebite upit Umetni za umetanje podataka u excel list.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // zatvorimo set zapisa kako bismo izbjegli curenje memorije.
recordset. Close();
# 9) // zatvorite vezu kako biste izbjegli curenje memorije.
connection. Close();
Koristeći gornje korake, u okviru Selenium, dohvatit ćemo vrijednosti redaka i stupaca pohranjenih u excel datoteci, a to je 'TestFile.xlsx', i unijeti vrijednost u demo mjesto: https://wordpress.com/start/about?ref=create-blog-lp
Excel list s vrijednostima reda: 'Nova ispitna pomoć' i 'Testing_Related_Contents'
Excel datoteka smještena u mapu Project:
Selen kod
Kompletni selenov kôd koji dohvaća vrijednost s excel lista i unosa na mjestu testiranja dan je u nastavku:
package softwareTestingHelp.Com; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import com.codoid.products.exception.FilloException; import com.codoid.products.fillo.Connection; import com.codoid.products.fillo.Fillo; import com.codoid.products.fillo.Recordset; public class ReadWriteExcel { static WebDriver driver; //demo site -https://wordpress.com/start/about?ref=create-blog-lp //download jar file - https://mvnrepository.com/artifact/com.codoid.products/fillo publicstaticvoid main(String args[]) throwsInterruptedException, FilloException{ //Calling up the GoogleChrome driver System.setProperty('webdriver.chrome.driver', 'D:\Srinivas\New folder\exe\chromedriver.exe'); driver = newChromeDriver(); //Opening the demo site - wordpress.com driver.get('https://wordpress.com/start/about?ref=create-blog-lp'); //Locating the Test data excel file String excelPath = '.\Data\TestFile.xlsx'; System.out.println(excelPath); //Create an Object of Fillo Class Fillo fillo = newFillo(); //Create an Object for Connection class and use getConnection() //method defined inside Fillo class, to establish connection between excelsheet and Fillo API’s. Connection connection = fillo.getConnection(excelPath); //Select all the values present in a sheet, which is present inside the excel and store its output in a String variable String strSelectQuerry = 'Select * from Data'; System.out.println(strSelectQuerry); //Execute the Select query and store the result in a Recordset class present in Fillo API. Recordset recordset =null; recordset = connection.executeQuery(strSelectQuerry); //use while loop to iterate through all columns and rows available in sheet present inside excel file while(recordset.next()){ System.out.println('Column 1 = ' +recordset.getField('SiteTitle')); String siteTitle = recordset.getField('SiteTitle'); driver.findElement(By.xpath('//input[@name='siteTitle']')).clear(); driver.findElement(By.xpath('//input[@name='siteTitle']')).sendKeys(siteTitle) ; System.out.println('Column 2 = ' +recordset.getField('SiteTopic')); String siteTopic = recordset.getField('SiteTopic'); driver.findElement(By.xpath('//input[@name='siteTopic']')).clear(); driver.findElement(By.xpath('//input[@name='siteTopic']')).sendKeys(siteTopic) ; connection.close(); } //Use update query to update the details in excel file Connection connection1 = fillo.getConnection(excelPath); System.out.println('Column 1 value before Update clause = ' +recordset.getField('SiteTitle')); String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; System.out.println(strUpdateQuerry); connection1.executeUpdate(strUpdateQuerry); System.out.println('Column 1 value after Update clause = ' +recordset.getField('SiteTitle')); //Use Insert query to update the data in excel sheet Connection connection2 = fillo.getConnection(excelPath); System.out.println('Column 1 and column 2 value before insert clause = ' +recordset.getField('SiteTitle') +recordset.getField('siteTopic')); String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; System.out.println(strInsertQuerry); connection2.executeUpdate(strInsertQuerry); System.out.println('Column 1 and column 2 value after insert clause = ' +recordset.getField('SiteTitle') +recordset.getField('siteTopic')); } }
Snimka tekućeg koda
Izlaz koda koji prikazuje rezultat SQL izraza:
kako pokrenuti jar datoteku u sustavu Windows
Excel datoteka nakon što se izvrši operacija ažuriranja i umetanja:
Demo web lokacija na kojoj smo dohvatili podatke iz Excela i umetnuli je na web mjesto:
Zaključak
- Fillo je vrlo koristan Java API za izdvajanje podataka s excel lista i podržava i .xls i .xlsx Excel datoteke.
- Podržava naredbe SELECT, UPDATE i INSERT.
- Budite pažljivi dok uređujete excel datoteku. Ako bilo koji redak ili stupac nije potreban, izbrišite ih.
- Ako samo izbrišete vrijednosti iz redaka i stupaca bez brisanja cijelog retka, tada će API pretpostaviti da polja imaju vrijednost i pokušat će dohvatiti vrijednost iz redaka i stupaca, a zauzvrat ćemo dobiti prazne vrijednosti.
- Napokon, ne zaboravite prekinuti vezu nakon što završite s dohvaćanjem vrijednosti iz excela.
Sretno čitanje !!
Preporučena literatura
- Uvod u Selenium WebDriver - Vodič za selen br. 8
- Top 25 naredbi selena WebDriver koje biste trebali znati
- 10 najboljih alata za testiranje API-ja u 2021. godini (SOAP i REST API alati za testiranje)
- JAVA Tutorial za početnike: 100+ praktičnih Java Video tutorijala
- Vrh 90 pitanja i odgovora za SQL intervju (NAJNOVIJE)
- 30+ najboljih vodiča za selen: naučite selen na stvarnim primjerima
- Stvaranje okvira za selenij i pristupanje testnim podacima iz programa Excel - Tutorial br. 21
- Data Driven Framework u Selenium WebDriver koristeći Apache POI