how read write data from excel sheet selenium web driver
В този урок ще се научите да четете и записвате данни от файл на Excel в Selenium WebDriver, използвайки FILLO API и SQL изрази.
Четенето или записването на данни е една от най-често използваните операции, или извличане на стойности от таблици на базата данни, или извличане на стойности от лист на Excel и използването им за извършване на анализи.
В тази статия говорим за извличане на стойности от файл на Excel с помощта на SQL изрази и FILLO API.
какво е описателно програмиране в qtp
Какво ще научите:
Общ преглед на SON API
FILLO е Java API, който се използва за извличане на данни от Excel файлове. С използването на FILLO API, параметризирането става много лесно, т.е.изпълнението на вашите тестови случаи в Selenium с различен набор от данни.
Преди това използвахме JXL API за извършване на параметризиране, по-късно на пазара излезе apache POI и в двата API трябва да напишем голям код, за да прекосим редовете и колоните и да извлечем стойностите, съхранени в Excel лист.
Но сега, с този нов FILLO API, няма нужда да се притеснявате за размера на редовете и колоните, всичко ще се погрижи вътрешно от API. Трябва само да извикате класовете, дефинирани в API, и да декларирате вашите тестови данни в Excel файла. Обърнете се към официалния сайт за документация и изтегляне на файла на jar- SON библиотека Java
Ако използвате Maven, използвайте зависимостта Maven.
FILLO буркан с Maven Dependency
старт
- Това е Excel API за езика Java.
- Той поддържа .xls и .xlsx файлове.
- Той поддържа заявки SELECT, UPDATE и INSERT.
- Използвайте със или без клаузата WHERE и клаузата LIKE.
Операция, разрешена с Fillo
Операция SELECT: Операторът SELECT изпълнява същата функция, както при извличането на стойностите от таблица и показването до крайния потребител, по същия начин, по който операторът SELECT връща данни от лист на Excel.
Синтаксис :
SELECT * From Sheet Name
ОПЕРАЦИЯ Операция: Операторът UPDATE променя съществуващите записи в Excel листа.
Синтаксис:
UPDATE sheet1 Set Column Name= ‘Value’
INSERT Операция: Операторът INSERT вмъква нов запис в Excel лист.
Синтаксис:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Извършете същите операции с операторите WHERE и LIKE:
- „ИЗБЕРЕТЕ * от Име на лист, където ID = 1 и име =‘ Исус ’“
- “SELECT * от име на лист, където колона1 = стойност1 и колона2 = стойност2 и колона3 = стойност3”
- „АКТУАЛИЗИРАНЕ Име на листа Задайте държава =„ Великобритания “, където ID = 10 и име =„ Исус ““
- „SELECT * от име на лист, където име като„ Jes% ““
Стъпки за изпълнение, които трябва да се следват за операция SELECT / INSERT / UPDATE:
# 1) // Създаване на обект от клас Fillo.
Fillo fillo = new Fillo();
# две) // Създайте обект за клас на свързване и използвайте метода getConnection (), дефиниран вътре в класа Fillo, за да установите връзката между Excel листа и Fillo API.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Изберете всички стойности, налични в лист. Присъстващите в Excel и съхраняват изхода му в низ променлива.
String strSelectQuerry = 'Select * from SheetName';
# 4) // изпълняваме заявката за избор и съхраняваме резултата в клас Recordset, присъстващ в API на Fillo.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // използваме цикъл while, за да прегледаме всички колони и редове, налични в листа, наличен във файла на Excel.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Използвайте заявка за актуализация, за да актуализирате подробностите във файла excel.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Използвайте Insert заявка, за да вмъкнете данни в Excel листа.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // затваряме набора от записи, за да избегнем изтичане на памет.
recordset. Close();
# 9) // затворете връзката, за да избегнете изтичане на памет.
connection. Close();
Сега, използвайки горните стъпки, в рамката на Selenium ще извлечем стойностите на редове и колони, съхранени във файл на Excel, а именно „TestFile.xlsx“, и ще въведем стойността в демонстрационен сайт: https://wordpress.com/start/about?ref=create-blog-lp
Лист в Excel със стойности на реда: „Нова тестова помощ“ и „Testing_Related_Contents“
Файл на Excel, поставен в папката Project:
Код на селен
Пълният код на Selenium, който извлича стойността от Excel лист и входове в тестовия сайт е даден по-долу:
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')); } }
Снимка на текущия код
Изходен код, който показва резултата от SQL оператора:
Файл Excel след извършване на операцията за актуализиране и вмъкване:
Демонстрационен уебсайт, откъдето изтеглихме данни от Excel и го вмъкнахме в сайта:
етапи от жизнения цикъл на разработването на софтуер
Заключение
- Fillo е много полезен java API за извличане на данни от Excel лист и поддържа както .xls, така и .xlsx Excel файлове.
- Той поддържа оператори SELECT, UPDATE и INSERT.
- Бъдете внимателни, докато редактирате Excel файла. Ако не са необходими редове или колони, изтрийте ги.
- Ако просто изтриете стойностите от редовете и колоните, без да изтриете целия ред, тогава API ще приеме, че полетата имат стойността и ще се опита да извлече стойността от редовете и колоните и в замяна ще получим празни стойности.
- И накрая, не забравяйте да затворите връзката, след като приключите с извличането на стойностите от Excel.
Честито четене !!
Препоръчително четене
- Въведение в Selenium WebDriver - Урок № 8 за селен
- Топ 25 команди за селен WebDriver, които трябва да знаете
- 10 най-добри инструмента за тестване на API през 2021 г. (SOAP и REST API инструменти за тестване)
- Урок за JAVA за начинаещи: 100+ практически ръководства за Java видео
- Топ 90 въпроси и отговори за интервю за SQL (ПОСЛЕДНИ)
- 30+ най-добри урока за селен: Научете селен с реални примери
- Създаване на Framework Selenium и достъп до тестови данни от Excel - Урок № 21 за Selenium
- Управлявана от данни рамка в Selenium WebDriver, използваща Apache POI