how read write data from excel sheet selenium web driver
domande e risposte dell'intervista php per 2 anni di esperienza
In questo tutorial imparerai a leggere e scrivere dati da un file Excel in Selenium WebDriver utilizzando l'API FILLO e le istruzioni SQL.
La lettura o la scrittura di dati è una delle operazioni più comunemente utilizzate, sia il recupero di valori da tabelle di database o il recupero di valori da un foglio Excel e il loro utilizzo per eseguire analisi.
In questo articolo parliamo del recupero di valori da un file excel utilizzando istruzioni SQL e FILLO API.
Cosa imparerai:
Panoramica dell'API SON
FILLO è un'API Java utilizzata per il recupero dei dati da file Excel. Con l'uso dell'API FILLO, la parametrizzazione diventa molto semplice, ovvero eseguire i test case in Selenium con un diverso set di dati.
Prima di questo, abbiamo utilizzato l'API JXL per la parametrizzazione, in seguito è entrato nel mercato Apache POI e in entrambe queste API abbiamo bisogno di scrivere un codice grande, per attraversare le righe e le colonne e recuperare i valori memorizzati in un foglio Excel.
Ma ora, con questa nuova API FILLO, non c'è bisogno di preoccuparsi della dimensione di righe e colonne, tutto sarà curato dall'API internamente. Devi solo chiamare le classi definite nell'API e dichiarare i tuoi dati di prova nel file excel. Fare riferimento al sito ufficiale per la documentazione e il download del file jar- Libreria Java SON
Se stai usando Maven, usa la dipendenza Maven.
Barattolo FILLO con dipendenza Maven
inizio
- È un'API Excel per il linguaggio Java.
- Supporta file .xls e .xlsx.
- Supporta le query SELECT, UPDATE e INSERT.
- Utilizzare con o senza la clausola WHERE e la clausola LIKE.
Operazione consentita con Fillo
SELEZIONA l'operazione: L'istruzione SELECT esegue la stessa funzione, come fa per recuperare i valori da una tabella e visualizzarli all'utente finale, allo stesso modo qui l'istruzione SELECT restituisce i dati da un foglio Excel.
Sintassi:
SELECT * From Sheet Name
Operazione di AGGIORNAMENTO: L'istruzione UPDATE modifica i record esistenti nel foglio Excel.
Sintassi:
UPDATE sheet1 Set Column Name= ‘Value’
Operazione INSERT: L'istruzione INSERT inserisce un nuovo record in un foglio Excel.
Sintassi:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Eseguire le stesse operazioni con gli operatori WHERE e LIKE:
- 'SELECT * from Sheet Name dove ID = 1 and name = 'Jesus''
- 'SELEZIONA * da Nome foglio dove colonna1 = valore1 e colonna2 = valore2 e colonna3 = valore3'
- 'UPDATE Sheet Name Set Country = 'UK' dove ID = 10 e nome = 'Jesus''
- 'SELEZIONA * dal nome del foglio dove il nome è' Jes% ''
Passaggi di esecuzione da seguire per l'operazione SELECT / INSERT / UPDATE:
# 1) // Crea un oggetto della classe Fillo.
Fillo fillo = new Fillo();
#Due) // Crea una classe Object for Connection e utilizza il metodo getConnection () definito all'interno della classe Fillo, per stabilire la connessione tra il foglio Excel e le API Fillo.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Seleziona tutti i valori presenti in un foglio. Quelle presenti all'interno dell'excel e memorizzano il suo output in una variabile stringa.
String strSelectQuerry = 'Select * from SheetName';
# 4) // esegue la query Select e archivia il risultato in una classe Recordset presente nell'API Fillo.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // usa il ciclo while per scorrere tutte le colonne e le righe disponibili nel foglio presente all'interno del file excel.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Utilizza una query di aggiornamento per aggiornare i dettagli nel file excel.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Usa Inserisci query per inserire dati nel foglio Excel.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // chiude il recordset per evitare una perdita di memoria.
recordset. Close();
# 9) // chiude la connessione per evitare perdite di memoria.
connection. Close();
Ora utilizzando i passaggi precedenti, nel framework Selenium, recupereremo i valori delle righe e delle colonne memorizzate in un file excel, ovvero 'TestFile.xlsx', e inseriremo il valore in un sito demo: https://wordpress.com/start/about?ref=create-blog-lp
Foglio Excel con valori di riga: 'New Test Help' e 'Testing_Related_Contents'
File Excel posizionato nella cartella Progetto:
Codice del selenio
Di seguito è riportato il codice Selenium completo, che recupera il valore dal foglio Excel e gli input nel sito di test:
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')); } }
Istantanea del codice in esecuzione
Output del codice che mostra il risultato dell'istruzione SQL:
File Excel dopo l'esecuzione dell'operazione di aggiornamento e inserimento:
Sito web demo in cui abbiamo recuperato i dati da Excel e inseriti nel sito:
quale delle seguenti affermazioni è vera per un test di sistema?
Conclusione
- Fillo è un'API java molto utile per l'estrazione di dati da un foglio Excel e supporta sia file .xls che .xlsx Excel.
- Supporta le istruzioni SELECT, UPDATE e INSERT.
- Fai attenzione durante la modifica del file Excel. Se alcune righe o colonne non sono necessarie, eliminarle.
- Se cancelli semplicemente i valori dalle righe e dalle colonne senza eliminare l'intera riga, l'API presumerà che i campi abbiano il valore e proverà a recuperare il valore dalle righe e dalle colonne e in cambio otterremo valori vuoti.
- Infine, non dimenticare di chiudere la connessione una volta che hai finito di recuperare i valori da Excel.
Buona lettura!!
Lettura consigliata
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- I 25 migliori comandi Selenium WebDriver che dovresti conoscere
- 10 migliori strumenti di test API nel 2021 (strumenti di test API SOAP e REST)
- Tutorial JAVA per principianti: oltre 100 tutorial video Java pratici
- Le 90 principali domande e risposte dell'intervista SQL (ULTIME)
- 30+ Migliori tutorial sul selenio: impara il selenio con esempi reali
- Creazione di Selenium Framework e accesso ai dati di test da Excel - Selenium Tutorial # 21
- Data Driven Framework in Selenium WebDriver utilizzando Apache POI