data driven framework selenium webdriver using apache poi
Како радити на оквиру вођеном подацима у селенијуму користећи Апацхе ПОИ?
Дата Дривен Фрамеворк је један од популарних оквира за тестирање аутоматизације на тренутном тржишту. Аутоматизовано тестирање на основу података је метода у којој се скуп података о тестирању креира у екцел листу, а затим увози у алате за аутоматизацију за тестирање ради уноса у софтвер који се тестира.
Селениум Вебдривер је сјајан алат за аутоматизацију веб апликација. Али не подржава операције читања и писања на екцел датотекама.
Стога користимо независни АПИ-ји попут Апацхе ПОИ.
Шта ћете научити из овог водича:
- Шта је оквир за управљање подацима у програму Селениум ВебДривер на примеру екцел
- Како читати и писати податке са Екцел листа у програму Селениум ВебДривер користећи Апацхе ПОИ
Шта ћете научити:
- Шта је Апацхе ПОИ?
- Зашто тестови погона података?
- Шта нам је потребно за примену Оквира вођеног подацима?
- Интерфејс у ПОИ
- Кораци за употребу селена са Апацхе ПОИ
- Предности употребе оквира вођеног подацима
- Закључак
- Препоручено читање
Шта је Апацхе ПОИ?
Апацхе ПОИ (Поор Обфусцатион Имплементатион) је АПИ написан на Јави за подршку операцијама читања и писања - модификовању канцеларијских датотека. Ово је најчешћи АПИ који се користи за Тестови вођени подацима о селену .
Постоји неколико начина за примену Оквира вођеног подацима , а сваки се разликује у напорима потребним за развој оквира и одржавања.
Развијање оквира вођеног подацима у селенијуму користећи ПОИ помаже у смањењу одржавања, побољшању покривености тестом, обезбеђујући тако добар повраћај улагања.
Препоручена читања:
- Најпопуларнији оквири за аутоматизацију испитивања
- Тестирање на основу података у програму СоапУИ Про
Зашто тестови погона података?
Често може постојати одређени број скупова података који се морају користити за тестирање карактеристика апликације. Сада ручно покретање истог теста са различитим подацима дуготрајно је, склоно грешкама и досадан задатак.
Разумимо овај сценарио на примеру .
Претпоставимо да морамо да тестирамо образац за пријаву / регистрацију / било који образац са више поља за унос са 100 различитих скупова података.
Да бисте ово тестирали, имате три различита приступа:
1) Направите 100 скрипти по једну за сваки скуп података и извршите сваки тест један по један.
два) Промените податке у скрипти и извршите их више пута.
3) Увезите податке са Екцел листа и извршите скрипту више пута са различитим подацима.
Прва два сценарија су напоран, дуготрајан - што подразумева низак повраћај улагања. Стога морамо следити трећи приступ.
У трећем приступу примењујемо оквир вођен подацима, где се сви наши подаци налазе у екцел листу, одакле се увозе и користе за тестирање карактеристика апликације.
копирајте ДВД на чврсти диск бесплатно
=> Желите да сазнате више о Оквиру вођеном подацима? Имамо детаљно чланак можете погледати овде .
Шта нам је потребно за примену Оквира вођеног подацима?
Да бисмо следили овај приступ морамо имати Ецлипсе, ТестНГ правилно конфигурисан.
Када завршимо, погледаћемо:
- Разни интерфејси Апацхе ПОИ.
- Интеграција Апацхе ПОИ у Ецлипсе.
- Прочитајте податке из Екцел табеле.
- Напишите податке у Екцел табелу.
- Предности употребе Апацхе ПОИ са селеном.
Интерфејс у ПОИ
Једна од најзначајнијих карактеристика Апацхе ПОИ је да подржава операције читања и писања и .клс и .кслк датотека.
Испод су наведени неки од интерфејси ПОИ .
- КСССФВоркбоок: Представља радну свеску у клск датотеци.
- ХССФРадна књига: Представља радну свеску у клс датотеци.
- КСССФСхеет: Представља лист у КСЛСКС датотеци.
- ХССФСхеет: Представља лист у КСЛС датотеци.
- КСССФРов: Представља ред у листу КСЛСКС датотеке.
- ХССФРов: Представља ред у листу КСЛС датотеке.
- КСССФЦелл: Представља ћелију у низу КСЛСКС датотеке.
- ХССФЦелл: Представља ћелију у низу КСЛС датотеке.
Поља доступна у ћелији:
- ЦЕЛЛ_ТИПЕ_БЛАНК: Представља празну ћелију.
- ЦЕЛЛ_ТИПЕ_БООЛЕАН: Представља логичку ћелију (тачно или нетачно).
- ЦЕЛЛ_ТИПЕ_ЕРРОР: Представља вредност грешке у ћелији.
- ЦЕЛЛ_ТИПЕ_ФОРМУЛА: Представља резултат формуле на ћелији.
- ЦЕЛЛ_ТИПЕ_НУМЕРИЦ: Представља нумеричке податке у ћелији.
- ЦЕЛЛ_ТИПЕ_СТРИНГ: Представља низ у ћелији.
Кораци за употребу селена са Апацхе ПОИ
Створимо скрипту за аутоматизацију за тестирање процеса пријаве апликација заснованих на мрежи.
који је најбољи софтвер за одржавање рачунара
Ево, узео сам ЛинкедИн као пример .
Увозимо податке са Екцел листа, а затим их користимо за пријављивање у апликацију и након извршења записујемо резултат у Екцел лист.
За наставак корака за извршавање оквира потребан нам је следећи софтвер инсталиран на нашем систему:
- Јава ЈДК 1.7+
- Ецлипсе ИДЕ
- ТестНГ
- Тегле од селена
- Мицрософт Оффице / Опен Оффице
Корак 1)
Прво, морамо да конфигуришемо Ецлипсе са Апацхе ПОИ .
Преузимање јар датотеке за Апацхе ПОИ.
Корак 2)
Распакујте јар датотеку и додајте следеће тегле у свој пројекат и конфигуришите их.
- дом4ј-1.6.1.јар
- пои-3.10-ФИНАЛ-20140208.јар
- пои-оокмл-3.10-ФИНАЛ-20140208.јар
- пои-оокмл-сцхемас-3.10-ФИНАЛ-20140208.јар
- кмлбеанс-2.3.0.јар
Корак # 3)
Након што сте конфигурисали одговарајуће тегле, направите екцел лист, у њега унесите неке податке и сачувајте их као ТестДата.клск на вашој омиљеној локацији.
Корак # 4)
Хајде сада да следимо узорак кода за читање података са Екцел листа и да га користимо за пријављивање линкедин.цом .
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)
Десни клик на класу тест случаја и кликните на Покрените као -> ТестНГ Тест.
Апацхе ПОИ увози податке са Екцел листа и користи их за пријављивање у нашу апликацију. Сад кад смо видели како читати податке са Екцел листа, погледајмо како писати на лист.
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(); } } }
Белешка : Ако наиђете на било какве проблеме током овог процеса, проверите следеће тачке.
- Обавезно додајте све поменуте тегле у пројекат и правилно конфигуришите.
- Потребан софтвер је правилно инсталиран.
- Правилна употреба интерфејса у односу на екцел датотеку, попут ХССФ за .клс и КСССФ за .клск.
- Користи се важећи индекс редова и ступаца.
- Екцел датотека мора бити затворена пре извршења.
- Одговарајуће класе коришћене за екцел датотеку попут КСССФ која се користи за .клск датотеке и ХССФ која се користи за .клс датотеке.
Предности употребе оквира вођеног подацима
- Побољшава покривеност тестом.
- Поновна употребљивост кода.
- Мање одржавања.
- Брже извршење.
- Омогућава боље руковање грешкама.
Закључак
Улаз / излаз из и у датотеку је врло важан део процеса тестирања софтвера. Апацхе ПОИ игра виталну улогу у омогућавању тога за аутоматизацију селенских тестова.
Селен интегрисан са Апацхе ПОИ омогућава вам покретање скрипте више пута са различитим скуповима података, са свим подацима који се одржавају на једном месту. Уштеда времена и напора на одржавању тест скрипте.
О аутор: Ово је гост Вивека, КА инжењера аутоматизације.
Да ли имате питања која примењују оквир за тестирање на основу података у програму Селениум ВебДривер користећи Апацхе ПОИ? Јавите нам у коментарима испод.
Препоручено читање
- Израда оквира за селенијум и приступање тест подацима из програма Екцел - Туториал бр. 21
- Тестирање на основу података или параметризовано са Споцк Фрамеворк-ом
- Како функционише тестирање на основу података (примери КТП и селена)
- Увод у ЈУнит Фрамеворк и његову употребу у скрипту Селениум - Водич за селен # 11
- Како извршити тестирање на основу података помоћу алата ТестЦомплете
- КТП водич # 18 - Хибридни оквири вођени подацима и објашњени примерима КТП-а
- Како се користи ТестНГ Фрамеворк за креирање скрипта за селен - ТестНГ Селениум Туториал # 12
- Како извршити тестирање на основу података у програму СоапУИ Про - Водич за соапУИ бр. 14