data driven framework selenium webdriver using apache poi
Apache POI를 사용하여 Selenium에서 데이터 기반 프레임 워크에서 작업하는 방법은 무엇입니까?
데이터 기반 프레임 워크는 현재 시장에서 널리 사용되는 자동화 테스트 프레임 워크 중 하나입니다. 데이터 기반 자동화 테스트는 테스트 데이터 세트가 Excel 시트에 생성 된 다음 자동화 테스트 도구로 가져 와서 테스트중인 소프트웨어에 공급되는 방법입니다.
Selenium Webdriver는 웹 기반 애플리케이션을 자동화하는 훌륭한 도구입니다. 그러나 Excel 파일에 대한 읽기 및 쓰기 작업은 지원하지 않습니다.
따라서 우리는 타사 API Apache POI와 같습니다.
이 자습서에서 배울 내용 :
- Excel 예제를 사용하는 Selenium WebDriver의 데이터 기반 프레임 워크는 무엇입니까?
- Apache POI를 사용하여 Selenium WebDriver의 Excel 시트에서 데이터를 읽고 쓰는 방법
학습 내용 :
- Apache POI 란 무엇입니까?
- 데이터 드라이브 테스트가 필요한 이유
- 데이터 기반 프레임 워크를 구현하려면 무엇이 필요합니까?
- POI의 인터페이스
- Apache POI와 함께 Selenium을 사용하는 단계
- 데이터 기반 프레임 워크 사용의 장점
- 결론
- 추천 도서
Apache POI 란 무엇입니까?
Apache POI (Poor Obfuscation Implementation)는 Office 파일을 수정하는 읽기 및 쓰기 작업을 지원하기 위해 Java로 작성된 API입니다. 다음 용도로 사용되는 가장 일반적인 API입니다. 셀레늄 데이터 기반 테스트 .
데이터 기반 프레임 워크를 구현하는 방법에는 여러 가지가 있습니다. , 그리고 각각은 프레임 워크 개발과 유지 관리에 필요한 노력이 다릅니다.
POI를 사용하여 Selenium에서 데이터 기반 프레임 워크를 개발하면 유지 관리를 줄이고 테스트 범위를 개선하여 투자 수익을 높일 수 있습니다.
추천 도서 :
데이터 드라이브 테스트가 필요한 이유
종종 애플리케이션의 기능을 테스트하는 데 사용해야하는 여러 데이터 세트가있을 수 있습니다. 이제 다른 데이터로 동일한 테스트를 수동으로 실행하는 것은 시간이 많이 걸리고 오류가 발생하기 쉬우 며 지루한 작업입니다.
예제를 통해이 시나리오를 이해하겠습니다. .
100 개의 서로 다른 데이터 세트가있는 여러 입력 필드가있는 로그인 / 등록 / 모든 양식을 테스트해야한다고 가정하십시오.
이를 테스트하려면 세 가지 접근 방식이 있습니다.
1) 각 데이터 세트에 대해 하나씩 100 개의 스크립트를 만들고 각 테스트를 하나씩 실행합니다.
두) 스크립트의 데이터를 변경하고 여러 번 실행하십시오.
삼) Excel 시트에서 데이터를 가져 와서 다른 데이터로 스크립트를 여러 번 실행합니다.
처음 두 시나리오는 힘들고 시간이 많이 소요되며 ROI가 낮음을 의미합니다. 따라서 우리는 세 번째 접근 방식을 따라야합니다.
세 번째 접근 방식에서는 모든 데이터가 Excel 시트에있는 데이터 기반 프레임 워크를 구현합니다. 여기서 데이터를 가져 와서 애플리케이션의 기능을 테스트하는 데 사용합니다.
최고의 무료 안티 스파이웨어 Windows 10
=> 데이터 기반 프레임 워크에 대해 자세히 알고 싶으십니까? 우리는 상세한 여기에서 확인할 수있는 기사 .
데이터 기반 프레임 워크를 구현하려면 무엇이 필요합니까?
이 접근 방식을 따르려면 Eclipse, TestNG를 올바르게 구성해야합니다.
완료되면 다음을 살펴 봅니다.
- Apache POI의 다양한 인터페이스.
- Eclipse에서 Apache POI 통합.
- Excel 시트에서 데이터를 읽습니다.
- Excel 시트에 데이터를 씁니다.
- Selenium과 함께 Apache POI를 사용할 때의 이점.
POI의 인터페이스
가장 놀라운 기능 중 하나 Apache POI .xls 및 .xslx 파일 모두에 대한 읽기 및 쓰기 작업을 지원한다는 것입니다.
아래에 언급 된 POI의 인터페이스 .
- XSSF 워크 북 : xlsx 파일의 통합 문서를 나타냅니다.
- HSSF 워크 북 : xls 파일의 통합 문서를 나타냅니다.
- XSSF 시트 : XLSX 파일의 시트를 나타냅니다.
- HSSF 시트 : XLS 파일의 시트를 나타냅니다.
- XSSFRow : XLSX 파일 시트의 행을 나타냅니다.
- HSSFRow : XLS 파일 시트의 행을 나타냅니다.
- XSSFCell : XLSX 파일 행의 셀을 나타냅니다.
- HSSFCell : XLS 파일 행의 셀을 나타냅니다.
셀에서 사용 가능한 필드 :
- CELL_TYPE_BLANK : 빈 셀을 나타냅니다.
- CELL_TYPE_BOOLEAN : 부울 셀 (true 또는 false)을 나타냅니다.
- CELL_TYPE_ERROR : 셀의 오류 값을 나타냅니다.
- CELL_TYPE_FORMULA : 셀의 수식 결과를 나타냅니다.
- CELL_TYPE_NUMERIC : 셀의 숫자 데이터를 나타냅니다.
- CELL_TYPE_STRING : 셀의 문자열을 나타냅니다.
Apache POI와 함께 Selenium을 사용하는 단계
웹 기반 애플리케이션의 로그인 프로세스를 테스트하는 자동화 스크립트를 작성해 보겠습니다.
여기, 나는 LinkedIn에 가입했습니다 예로서 .
엑셀 시트에서 데이터를 가져온 다음이를 사용하여 애플리케이션에 로그인하고 실행 후 결과를 엑셀 시트에 씁니다.
프레임 워크를 실행하는 단계를 수행하려면 시스템에 다음 소프트웨어가 설치되어 있어야합니다.
- Java JDK 1.7 이상
- 이클립스 IDE
- TestNG
- 셀레늄 항아리
- 마이크로 소프트 오피스 / 오픈 오피스
1 단계)
배열 자바에 요소를 추가하는 방법
먼저 Eclipse를 다음과 같이 구성해야합니다. Apache POI .
다운로드 Apache POI 용 jar 파일.
2 단계)
jar 파일의 압축을 풀고 프로젝트에 다음 jar를 추가하고 구성합니다.
- 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 단계)
각 항아리를 구성한 후 Excel 시트를 만들고 일부 데이터를 입력하고 다음으로 저장하십시오. TestData.xlsx 원하는 위치에서.
4 단계)
이제 샘플 코드를 따라 엑셀 시트에서 데이터를 읽고이를 사용하여 로그인합니다. 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 단계)
테스트 케이스 클래스를 마우스 오른쪽 버튼으로 클릭하고 다음으로 실행 –> TestNG 테스트.
Apache POI 엑셀 시트에서 데이터를 가져 와서 애플리케이션에 로그인하는 데 사용합니다. 이제 Excel 시트에서 데이터를 읽는 방법을 확인 했으므로 시트에 쓰는 방법을 살펴 보겠습니다.
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(); } } }
노트 : 이 과정에서 문제가 발생하면 다음 사항을 확인하십시오.
- 언급 된 모든 jar가 프로젝트에 추가되고 올바르게 구성되었는지 확인하십시오.
- 필요한 소프트웨어가 올바르게 설치되었습니다.
- .xls의 경우 HSSF 및 .xlsx의 경우 XSSF와 같이 Excel 파일과 관련된 인터페이스의 적절한 사용.
- 유효한 행 및 열 인덱스가 사용됩니다.
- 실행하기 전에 Excel 파일을 닫아야합니다.
- .xlsx 파일에 사용되는 XSSF 및 .xls 파일에 사용되는 HSSF와 같은 엑셀 파일에 사용되는 적절한 클래스.
데이터 기반 프레임 워크 사용의 장점
- 테스트 범위를 개선합니다.
- 코드의 재사용 성.
- 적은 유지 보수.
- 더 빠른 실행.
- 더 나은 오류 처리를 허용합니다.
결론
파일에 대한 입력 / 출력은 소프트웨어 테스트 프로세스에서 매우 중요한 부분입니다. Apache POI Selenium 테스트 자동화를 가능하게하는 데 중요한 역할을합니다.
통합 셀레늄 Apache POI 모든 데이터를 단일 위치에 유지하면서 다른 데이터 세트로 스크립트를 여러 번 실행할 수 있습니다. 테스트 스크립트에 대한 시간과 유지 관리 노력을 절약합니다.
대한 저자: QA 자동화 엔지니어 인 Vivek의 게스트 포스트입니다.
Apache POI를 사용하여 Selenium WebDriver에서 데이터 기반 테스트 프레임 워크를 구현하는 쿼리가 있습니까? 아래 의견에 알려주십시오.
추천 도서
- Selenium 프레임 워크 생성 및 Excel에서 테스트 데이터 액세스-Selenium Tutorial # 21
- Spock 프레임 워크를 사용한 데이터 기반 또는 매개 변수화 된 테스트
- 데이터 기반 테스트 작동 방식 (QTP 및 Selenium의 예)
- JUnit 프레임 워크 소개 및 Selenium 스크립트에서의 사용법 – Selenium Tutorial # 11
- TestComplete 도구를 사용하여 데이터 기반 테스트를 수행하는 방법
- QTP 자습서 # 18 – QTP 예제로 설명되는 데이터 기반 및 하이브리드 프레임 워크
- TestNG 프레임 워크를 사용하여 Selenium 스크립트를 작성하는 방법-TestNG Selenium Tutorial # 12
- SoapUI Pro에서 데이터 기반 테스트를 수행하는 방법 – SoapUI 자습서 # 14