selenium framework creation
지난 자습서에서 우리는 테스트 자동화 프레임 워크의 기초 , 구성 요소 및 유형. 이전 튜토리얼에서 설명 된 프레임 워크는 형제애 테스트에서 가장 많이 사용되는 프레임 워크 중 일부였습니다.
모듈 기반 프레임 워크, 라이브러리 아키텍처 기반 프레임 워크, 키워드 기반 프레임 워크, 데이터 기반 프레임 워크 및 하이브리드 프레임 워크에 대해 간략하게 설명했습니다. 그 외에도 다양한 프레임 워크가 있습니다.
우리가 채택 할 것이라는 점에 유의하십시오. 나머지 자습서를위한 데이터 기반 테스트 자동화 프레임 워크.
현재 이 시리즈의 튜토리얼 , 우리는 당신이 샘플 프레임 워크, 테스트 데이터 및 해당 Excel 조작을 저장하는 Excel . 같은 맥락에서 우리는 프레임 워크를 성숙시키기 위해 앞으로 나아가고 새로운 전략과 자원을 도입 할 것입니다.
그럼 배워 봅시다 :
- 샘플 프로젝트를 사용한 프레임 워크 생성 전략
- 외부 데이터 소스에 저장된 테스트 데이터에 액세스
계속해서 다양한 프로젝트 구성 요소를 분리하기 위해 생성 할 프로젝트 계층에 대한 설명부터 시작하겠습니다.
샘플 프로젝트를 위해 생성 된 프로젝트 계층 구조는 아래 이미지를 참조하십시오. 아래 자바 프로젝트는 이전 튜토리얼에서 프로젝트를 생성 한 방식으로 Eclipse 내에서 쉽게 생성 할 수 있습니다.
학습 내용 :
Selenium 프로젝트 폴더 구조 – 연습
# 1) src – 폴더에는 모든 테스트 스크립트, 제네릭, 판독기 및 유틸리티가 포함되어 있습니다. 이 모든 자원은 단순한 Java 클래스에 불과합니다. 소스 (src) 폴더 아래에 폴더 계층이 생성되었습니다.
시험 – 'test'폴더는 주로 두 가지 구성 요소로 구성됩니다. 테스트 스위트와 테스트중인 애플리케이션의 다양한 모듈을 나타내는 폴더입니다. 따라서 이러한 각 폴더에는 연결된 모듈과 관련된 테스트 스크립트가 포함되어 있습니다. Testsuite는 둘 이상의 테스트 스크립트의 논리적 조합입니다. 따라서 사용자는 후속 실행에서 실행하기를 원하는 테스트 스위트 내의 테스트 스크립트 항목을 표시 할 수 있습니다.
다른 어떤 이메일 제공 업체가 있습니까
b) 유틸리티 – 'utilities'폴더는 사용자 정의 예외를 구현하기위한 다양한 제네릭, 상수, 판독기 및 클래스로 구성됩니다. 유틸리티 아래의 각 폴더에는 고유 한 의미가 있습니다.
- 엑셀 리더 – Excel 시트에서 테스트 데이터 (입력 매개 변수 및 예상 결과)를 읽기 위해 일반 및 공통 클래스가 생성되었습니다.
- EnvironmentConstants – 폴더는 경로 및 기타 환경 세부 사항을 참조하는 정적 변수를 저장하는 Java 클래스의 통합입니다. 이러한 세부 정보는 응용 프로그램 URL, 데이터베이스 URL, 데이터베이스 자격 증명 및 사용중인 타사 도구의 URL 일 수 있습니다. 서로 다른 환경 (dev, prod, test, master, slave 등)에 대해 서로 다른 애플리케이션 URL을 설정할 수 있습니다.
- DataSetters – 이 폴더에는 Excel에서 가져온 테스트 데이터의 getter 및 setter를 구현하는 클래스가 통합되어 있습니다. 여러 테스트 데이터 세트를로드하기 위해 ArrayList를 만듭니다.
- UserRoles – 이 폴더는 본능적 인 사용자를위한 역할 기반 액세스 기준을 처리하는 클래스를 수용합니다.
- FunctionLibrary – 폴더는 여러 클래스간에 공유 및 사용할 수있는 함수와 메서드가 포함 된 클래스로 구성됩니다. 응용 프로그램 로그인, 환경 설정, 롤 관련 활동, 데이터 조작, 결과 작성, 다른 방법에 대한 사전 / 사후 조건을 생성하는 방법과 같은 실제 테스트 실행에 앞서 특정 절차를 수행해야하는 경우가 많습니다. . 테스트 스크립트의 전부 또는 대부분에 대해 이러한 활동을 수행하는 경향이 있기 때문입니다. 따라서 각 테스트 스크립트에서 반복적으로 코딩하는 대신 이러한 활동에 대해 별도의 클래스를 만드는 것이 항상 권장됩니다.
- PreConditionalMethods
- PostConditionalMethods
애플리케이션 로그인, 환경 설정, 사용자 역할과 관련된 활동, 데이터 조작, 결과 작성, 다른 사용자에게 사전 / 사후 조건을 생성하는 방법과 같은 실제 테스트 실행 이전 및 이후의 특정 절차를 수행해야하는 경우가 많습니다. 행동 양식. 우리는 테스트 스크립트의 전부 또는 대부분에 대해 이러한 활동을 수행하는 경향이 있으므로 각 테스트 스크립트에서 반복적으로 코딩하는 대신 이러한 활동에 대해 별도의 클래스를 만드는 것이 좋습니다.
CommonMethods
사전 및 사후 조건과 마찬가지로 둘 이상의 테스트 스크립트에서 사용할 수있는 메서드와 기능이있을 수 있습니다. 따라서 이러한 메서드는 클래스에서 함께 그룹화됩니다. 테스트 스크립트는 공통 클래스의 개체를 사용하여 이러한 메서드에 액세스 할 수 있습니다.
# 2) 엑셀 파일 – Excel 파일은 테스트 스크립트 실행을위한 데이터 소스 / 데이터 공급자로 간주됩니다. 이러한 파일은 테스트 데이터를 키-값 쌍에 저장합니다. 각 테스트 스크립트에 대해 별도의 Excel 시트를 만듭니다. 즉, 각 테스트 스크립트에는 자체 테스트 데이터 파일이 있습니다. 테스트 스크립트의 이름과 해당 테스트 데이터 파일 / 엑셀 시트는 추적 성 관점에서 동일하게 유지되었습니다. 아래의 샘플 테스트 데이터 형식을 확인하세요.
테스트 데이터 형식
각 열은 키를 나타내고 각 행은 테스트 데이터 / 값을 나타냅니다. 여러 데이터 세트로 동일한 테스트 스크립트를 실행하려면 여러 행을 지정하십시오.
qa 엔지니어 인터뷰 질문 답변 pdf
테스트 데이터 형식이 전적으로 사용자 정의임을 표시하십시오. 따라서 요구 사항에 따라 테스트 데이터 파일을 사용자 지정할 수 있습니다.
# 3) 도서관 – 폴더는 테스트 환경을 성공적으로 구축하고 테스트 스크립트를 실행하기 위해 필요한 모든 jar 파일, 라이브러리, 드라이버 등에 대한 저장소 / 아티 팩토리 역할을합니다. 다음 그림을 참조하여 프로젝트 내에서 사용할 라이브러리를 확인하십시오.
# 4) 로그 – 이 폴더에는 각 실행시 로깅 정보를 저장하는 .txt 파일이 있습니다.
# 5) 시험 재료 – 폴더에는 업로드해야하는 실제 테스트 데이터가 포함되어 있습니다. 이 폴더는 사용자가 파일, 문서, 그림, 보고서 등을 업로드해야하는 테스트 시나리오를 발견 할 때 그림으로 나타납니다.
# 6) build.xml – xml 파일은 'Ant 서버'에서 전체 빌드 프로세스를 자동화하는 데 사용됩니다.
# 7) log4j.xml – 이 xml 파일은 'Log4j'라는 이름의 Java 기반 유틸리티에서 실행 로그를 생성하는 데 사용됩니다.
노트 : 우리는 다음 튜토리얼에서 로그, 사용자 정의 예외 및 Ant에 대해 자세히 연구 할 것입니다. 그러므로 개념이 혼동 되더라도 당황하지 마십시오.
이제 앞으로 나아가면서 Excel 파일에 액세스하고 테스트 스크립트에 테스트 데이터를 채우는 현상을 이해하겠습니다.
프로세스를 더 쉽게 이해하기 위해 프로세스를 다음 단계로 나눌 것입니다.
테스트 데이터 생성
1 단계 : 첫 번째이자 가장 중요한 단계는 테스트 스크립트를 실행할 테스트 데이터를 만드는 것입니다. 앞서 언급 한 테스트 데이터 형식을 고려하여“TestScript1”이라는 이름의 엑셀 파일을 만들어 보겠습니다. 요소의 값을 제공하십시오.
2 단계 : 다음 단계는 'Java excel Library'(jxl)라는 이름의 표준 Java 기반 API / 라이브러리를 다운로드하여 Excel 조작을 위해 이미 생성 된 일반 메서드에 액세스 할 수 있도록하는 것입니다.
3 단계 : 'ExcelReader.java'라는 일반 Excel 리더 클래스를 만듭니다. ExcelReader.java에서 아래 코드를 복사합니다.
package Utilities; import java.io.File; import java.io.IOException; import java.util.Hashtable; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; /** * This is a utility class created to read the excel test data file before performing the test steps. * This class loads the excel file and * reads its column entries. * */ public class ExcelReader { /** * The worksheet to read in Excel file */ public static Sheet wrksheet; /** * The Excel file to read */ public static Workbook wrkbook = null; /** * Store the column data */ public static Hashtable dict = new Hashtable(); /** * Create a Constructor * * @param ExcelSheetPath * @throws BiffException * @throws WeblivException */ public ExcelReader(String ExcelSheetPath) throws IOException, BiffException { // Initialize try { wrkbook = Workbook.getWorkbook(new File(ExcelSheetPath)); wrksheet = wrkbook.getSheet('Sheet1'); } catch (IOException e) { throw new IOException(); } } /** * Returns the Number of Rows * * @return Rows */ public static int RowCount() { return wrksheet.getRows(); } /** * Returns the Cell value by taking row and Column values as argument * * @param column * @param row * @return Cell contents */ public static String ReadCell(int column, int row) { return wrksheet.getCell(column, row).getContents(); } /** * Create Column Dictionary to hold all the Column Names */ public static void ColumnDictionary() { // Iterate through all the columns in the Excel sheet and store the // value in Hashtable for (int col = 0; col 4 단계 : 일반 클래스 'CommonMethods.java'를 만듭니다. ExcelReader.java에서 구현 된 메서드를 사용하여 Excel 시트에서 셀을 읽는 클래스 내에서 공통 메서드를 만듭니다.
/** * Read the test data from excel file * * @param data The TestData data object */ public void readExcelData (TestData data) { ArrayList browser = new ArrayList(); ArrayList username = new ArrayList(); ArrayList password = new ArrayList(); ArrayList element1 = new ArrayList(); ArrayList element2 = new ArrayList(); ArrayList element3 = new ArrayList(); // Get the data from excel file for (int rowCnt = 1; rowCnt 5 단계 : 'TestData.java'라는 새 Java 클래스를 만듭니다. 이 클래스는 엑셀 데이터에 대한 getter 및 setter 역할을합니다. TestData.java 클래스에 다음 코드를 복사하여 붙여 넣으십시오.
package Utilities.dataSetters; import java.util.ArrayList; public class TestData { private ArrayList loginUser = null; private ArrayList password = null; private ArrayList browser = null; private ArrayList element1 = null; private ArrayList element2 = null; private ArrayList element3 = null; /** * @return loginUser */ public ArrayList getLoginUser() { return loginUser; } /** * @param loginUser */ public void setLoginUser(ArrayList loginUser) { this.loginUser = loginUser; } /** * @return password */ public ArrayList getPassword() { return password; } /** * @param password */ public void setPassword(ArrayList password) { this.password = password; } /** * @return browser */ public ArrayList getBrowser() { return browser; } /** * @param browser */ public void setBrowser(ArrayList browser) { this.browser = browser; } /** * @return element1 */ public ArrayList getElement1() { return element1; } /** * @param element1 */ public void setElement1(ArrayList element1) { this.element1 = element1; } /** * @return element2 */ public ArrayList getElement2() { return element2; } /** * @param element2 */ public void setElement2(ArrayList element2) { this.element2 = element2; } /** * @return element3 */ public ArrayList getElement3() { return element3; } /** * @param element3 */ public void setElement3(ArrayList element3) { this.element3 = element3; } }
6 단계 : 다음 단계는 테스트 데이터에 액세스하고 채우기 위해 테스트 스크립트 내에 'TestData.java'및 'CommonMethods.java'Java 클래스의 인스턴스를 만드는 것입니다. 객체 초기화, 엑셀 데이터 읽기 및 필요할 때마다 값 채우기에 대해서는 아래 코드 스 니펫을 참조하십시오.
// Create Objects public ExcelReader excelReaderObj; CommonMethods commonMethodobj = new CommonMethods(); TestData td = new TestData(); // Load the excel file for testing excelReaderObj = new ExcelReader(Path of the excel); // Load the Excel Sheet Col in to Dictionary for use in test cases excelReaderObj.ColumnDictionary(); // Get the data from excel file commonMethodobj.readExcelData (td); // Populate the username driver.findElement(By.id('idofElement')).sendKeys(data.getLoginUser().get(0));
따라서 getter와 함께 testData.java 클래스의 인스턴스를 사용하면 모든 테스트 데이터 값을 스크립트 내에서 채울 수 있습니다.
결론:
튜토리얼은 주로 프레임 워크 생성 및 엑셀에서 테스트 데이터 액세스와 같은 개념을 중심으로 진행되었습니다. 샘플 프로젝트를 사용하여 프레임 워크 생성 전략에 대해 알게되었습니다. 프레임 워크의 다양한 구성 요소와 측면에 대해 간략하게 설명했습니다.
외부 데이터 소스에 저장된 테스트 데이터에 액세스하기 위해 Java 기반 API 인 jxl을 사용했습니다. 또한 Excel 데이터를 읽고 테스트 스크립트에 채우기위한 샘플 코드를 만들었습니다.
다음 튜토리얼 # 22 : 다음 튜토리얼에서 우리는 제네릭의 개념과 접근성 메커니즘 . 몇 가지 샘플 일반 메서드를 만든 다음 테스트 스크립트 내에서 액세스합니다. 또한 Testsuite의 개념과 샘플 코드 개발을 소개합니다.
추천 도서
- JUnit 프레임 워크 소개 및 Selenium 스크립트에서의 사용법 – Selenium Tutorial # 11
- Apache POI를 사용하는 Selenium WebDriver의 데이터 기반 프레임 워크
- Cucumber Selenium 튜토리얼 : Cucumber Java Selenium WebDriver 통합
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- 초보자를위한 심층 이클립스 튜토리얼
- TestNG 프레임 워크를 사용하여 Selenium 스크립트를 작성하는 방법-TestNG Selenium Tutorial # 12
- 효율적인 Selenium 스크립팅 및 문제 해결 시나리오 – Selenium 자습서 # 27
- 로그로 Selenium 스크립트 디버깅 (Log4j 튜토리얼) – Selenium 튜토리얼 # 26