keyword driven framework selenium with examples
키워드 기반 프레임 워크에 대한이 포괄적 인 자습서에서는 프레임 워크의 다양한 구성 요소와 Selenium에서 하나를 만드는 방법을 설명합니다.
일반적으로 프레임 워크는 일련의 지침으로, 준수하면 유익한 결과를 얻을 수 있습니다.
키워드 기반 프레임 워크는 별도의 Object Repository (여기서는 Java Class 파일)에서 스크립트에 사용되는 키워드 / 액션을 구체화하는 기술로, 코드 재사용 성 향상, 스크립트 유지 관리 감소, 더 높은 휴대 성.
학습 내용 :
Selenium에서 키워드 기반 프레임 워크는 무엇입니까?
비디오 자습서는 다음과 같습니다.
키워드 기반 프레임 워크 – 계획 및 설계
Windows 10에서 .bin 파일을 여는 방법
키워드 기반 프레임 워크 파트 생성 – I
키워드 기반 프레임 워크 파트 생성 – II
키워드 기반 테스트 프레임 워크의 구성 요소
다음은 키워드 기반 프레임 워크와 관련된 구성 요소 목록입니다.
- 기능 라이브러리
- 키워드를 저장하는 Excel 시트
- 디자인 테스트 케이스 템플릿
- 요소 / 로케이터 용 개체 저장소
- 테스트 스크립트 또는 드라이버 스크립트
# 1) 함수 라이브러리
일반적으로 키워드가 정의 된 Java 클래스 파일입니다. 즉, 응용 프로그램에서 수행되는 모든 작업은 라이브러리 클래스 파일에서 사용자 정의 메서드 (키워드)로 정의됩니다.
예를 들면 :
다른 이메일 제공 업체는 무엇입니까
애플리케이션이 하나 이상의 테스트 케이스에서 다음 작업을 수행해야한다고 가정 해 보겠습니다.
- URL을 입력하십시오.
- 요소를 클릭하십시오.
- 텍스트 상자에 입력하십시오.
그때, 라이브러리 파일은 아래와 같이 이러한 모든 작업에 대해 개별 메서드를 정의하여 생성됩니다.
여기서는 'URL 입력'작업에 대한 사용자 정의 방법을 생성합니다.
사용자 정의 메소드에 제공된 이름을 예어.
여기‘enter_URL’이 키워드입니다.
public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); }
매개 변수 :
운전사 – 드라이버는 Main Class에서 초기화되고 여기에 전달됩니다.
TestData – 메인 클래스가 외부 소스에서 읽어서 여기에 전달합니다.
함수 :
여기, driver.get () – 'URL 입력'작업을 수행하는 Selenium의 기능입니다.
Keywords.java
package Keywords.Defined; import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; public class Keywords { String path = System.getProperty('user.dir'); WebDriver driver; // driver object is declared //method for entering URL – Keyword is ‘enter_URL’ public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); } //method for typing action – Keyword is ‘type’ public void type(WebDriver driver, String ObjectName, String locatorType, String testdata) { driver.findElement(this.getObject(ObjectName,locatorType)).sendKeys(testdata); } //method for click action – Keyword is ‘click’ public void click(WebDriver driver,String ObjectName, String locatorType) { driver.findElement(this.getObject(ObjectName,locatorType)).click(); } }
# 2) 키워드를 저장하는 Excel 시트
사용자가 라이브러리 파일에 포함 된 키워드를 이해할 수 있도록 모든 사용자 정의 방법과 기능 세부 정보를 Excel 시트에 언급해야합니다.
Excel 시트는 라이브러리 파일에 대한 요약 역할을하며 사용자가 Excel 시트 키워드 목록을보고 테스트 사례의 각 작업에 해당하는 키워드를 선택하는 테스트 사례 템플릿을 만드는 동안 유용합니다.
예를 들면 :
package Keywords.Defined; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class Keywords { String path = System.getProperty('user.dir'); WebDriver driver; public void enter_URL(WebDriver driver,String TestData) throws IOException{ driver.get(TestData); } public void type(WebDriver driver, String ObjectName, String locatorType, String testdata) throws IOException{ driver.findElement(this.getObject(ObjectName,locatorType)).sendKeys(testdata); //driver.findElement(By.xpath('//')).sendKeys(testdata); } public void wait(WebDriver driver,String ObjectName, String locatorType) throws IOException{ WebDriverWait wait = new WebDriverWait(driver, 60); wait.until(ExpectedConditions.visibilityOf(driver.findElement(this.getObject(ObjectName,locatorType)))); } public void click(WebDriver driver,String ObjectName, String locatorType) throws IOException{ driver.findElement(this.getObject(ObjectName,locatorType)).click(); } public String get_currentURL(WebDriver driver){ String URL = driver.getCurrentUrl(); System.out.println('print URL '+URL); return URL; } By getObject(String ObjectName, String locatorType) throws IOException{ File file = new File(path+'\Externals\Object Repository.properties'); FileInputStream fileInput = new FileInputStream(file); Properties prop = new Properties(); //find by xpath if(locatorType.equalsIgnoreCase('XPATH')){ return By.xpath(prop.getProperty(ObjectName)); } //find by class else if(locatorType.equalsIgnoreCase('CLASSNAME')){ return By.className(prop.getProperty(ObjectName)); } //find by name else if(locatorType.equalsIgnoreCase('NAME')){ return By.name(prop.getProperty(ObjectName)); } //Find by css else if(locatorType.equalsIgnoreCase('CSS')){ return By.cssSelector(prop.getProperty(ObjectName)); } //find by link else if(locatorType.equalsIgnoreCase('LINK')){ return By.linkText(prop.getProperty(ObjectName)); } //find by partial link else if(locatorType.equalsIgnoreCase('PARTIALLINK')){ return By.partialLinkText(prop.getProperty(ObjectName)); } return null; } }
# 3) 디자인 테스트 케이스 템플릿
프로젝트의 편의에 따라 Test Case Template을 생성 할 수 있습니다. 템플릿을 만드는 특별한 규칙은 없습니다. 프로젝트가 외부화 할 프레임 워크가 얼마나 필요한지에 따라 설계되었습니다. 외부화는 키워드 전용 일 수 있으며 때로는 테스트 데이터 및 UI 요소도 외부화됩니다.
샘플 테스트 케이스 템플릿이 생성됩니다.
주어진 예에서 템플릿은 다음과 같은 방식으로 생성됩니다.
- 각 시트는 테스트 케이스에 해당하며 마지막 시트는 '키워드 목록'이 들어있는 시트입니다.
- 각 행은 TC의 테스트 단계에 해당합니다.
- 각 열은 각 작업에 필요한 매개 변수입니다.
테스트 케이스 템플릿 작성 방법 :
#1) 제공된 테스트 케이스 시트에서 각 테스트 케이스와 해당 테스트 단계를 읽으십시오. 각 테스트 단계에 대해 조치를 찾고 라이브러리 파일에서 해당 키워드를 찾으십시오.
#두) 조치가 키워드와 일치하면 테스트 케이스 순서에서 테스트 케이스 템플리트를 채우고 필요에 따라 다른 필수 매개 변수도 전달하십시오.
# 4) 로케이터 용 개체 저장소
UI 로케이터를 식별 할 수 있으며 그 값은 테스트 케이스 템플릿에서 언급하거나 별도의 개체 저장소에서 유지 관리 할 수 있습니다.
아래 예에서 요소 식별 속성
- 로케이터 유형 – 사용 된 식별 기술은 id, Xpath, ClassName 등입니다.
- 로케이터 값 – 해당 속성의 값 – 예를 들면 : Id 속성이면 id 값 등이됩니다.
또 다른 방법은 개체 저장소를 유지하고 Excel 시트에서 개체 이름을 언급하는 것입니다.
- 로케이터 유형 – 사용 된 식별 기술은 id, Xpath, ClassName 등입니다.
- 로케이터 이름 – 로케이터 값이 저장된 개체 저장소의 개체 이름입니다. 예를 들어, 저장소에 ObjectName이 'Username'인 요소의 Xpath 값이있는 경우 LocatorName은 'UserName'으로 언급됩니다.
노트: 엑셀 시트에 언급 된 LocatorType에 따라 그 값은 Object Repository에 저장되어야합니다. 예를 들면 : Xpath가 LocatorType으로 지정되면 저장소는 해당 요소의 Xpath를 저장해야하며, ID가 Locatortype으로 지정되면 ID를 저장해야합니다.
# 5) 테스트 스크립트 또는 드라이버 스크립트
엑셀 시트의 모든 내용을 읽고 해당 작업을 수행하는 기본 스크립트입니다. 스크립트는 템플릿 생성 방법을 기반으로 설계되었습니다.
우리의 경우 각 테스트 시트가 테스트 케이스 역할을하고 각 행이 테스트 단계 역할을하므로 시트와 행을 반복하여 드라이버 스크립트를 만들 수 있습니다.
부하 테스트 대 성능 테스트 대 스트레스 테스트
각 특정 행에서 키워드가 읽히고 라이브러리 파일의 해당 메소드가 실행됩니다. 이는 테스트 케이스의 모든 테스트 단계가 실행될 때까지 계속됩니다. 그런 다음 다음 테스트 케이스 / 시트로 진행하여 실행합니다.
package Automation.KeywordFramework; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.LinkedList; import java.util.Properties; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.Reporter; import org.testng.annotations.BeforeTest; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.testng.asserts.Assertion; import Keywords.Defined.Assertions; import Keywords.Defined.Keywords; public class IrctcLogic { WebDriver driver; String path = System.getProperty('user.dir'); Keywords keyword = new Keywords(); Assertions assertion = new Assertions(); @Test public void readExcelandexecute() throws IOException, InterruptedException{ //From excelfile String excelFilePath = path+'\Externals\Test Cases.xlsx'; FileInputStream fileInputStream = new FileInputStream(excelFilePath); XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream); int testcasescount = workbook.getNumberOfSheets()-1; System.out.println('Total test cases :'+testcasescount); for (int testcase=0;testcase결론
따라서 프레임 워크가 생성되면 여러 테스트 케이스 / 프로젝트에 재사용 할 수 있습니다. 이러한 방식으로 각 프로젝트에 대한 자동화 스크립트를 작성하는 데 드는 공수를 줄입니다.
다음 장에서는 키워드 기반 프레임 워크와 데이터 기반 프레임 워크의 조합 인 하이브리드 기반 프레임 워크의 생성에 대해 설명합니다.
=> Easy Selenium 교육 시리즈를 읽어보십시오.
추천 도서
- Apache POI를 사용하는 Selenium WebDriver의 데이터 기반 프레임 워크
- 데이터 기반 테스트 작동 방식 (QTP 및 Selenium의 예)
- JUnit 프레임 워크 소개 및 Selenium 스크립트에서의 사용법 – Selenium Tutorial # 11
- 셀레늄의 하이브리드 프레임 워크는 무엇입니까?
- 예제와 함께 텍스트 자습서로 셀레늄 찾기 요소
- 30 개 이상의 최고의 셀레늄 튜토리얼 : 실제 예제로 셀레늄 배우기
- Selenium 프레임 워크 생성 및 Excel에서 테스트 데이터 액세스-Selenium Tutorial # 21
- Java 'this'키워드 : 코드 예제가 포함 된 자습서