what is hybrid framework selenium
이 유익한 자습서는 하이브리드 프레임 워크 란 무엇이며 Selenium 하이브리드 기반 프레임 워크의 용도와 구성 요소 및 구현 방법을 설명합니다.
하이브리드 프레임 워크 란 무엇입니까?
하이브리드 기반 프레임 워크는 데이터 기반 및 키워드 기반 프레임 워크의 조합입니다.
여기에서 키워드와 테스트 데이터가 외부화됩니다. 키워드는 별도의 Java 클래스 파일에 유지되며 테스트 데이터는 속성 파일 / excel 파일에서 유지 관리 할 수 있으며 TestNG 프레임 워크의 데이터 공급자를 사용할 수 있습니다.
=> 여기에서 셀레늄 교육 자습서의 A-Z를 보려면 여기를 확인하십시오.
학습 내용 :
브라우저에서 재생되지 않는 swf 파일
하이브리드 프레임 워크 소개
다음은 비디오 자습서입니다.
Hybrid Driven 프레임 워크는 대부분없는 수동 테스터가 사용프로그래밍 언어에 대한 많은 지식. 그런 사람들은 키워드, 테스트 데이터, 개체 저장소를 살펴보고 프레임 워크에서 아무것도 코딩하지 않고도 즉시 테스트 케이스를 만들 수 있습니다.
하이브리드 기반 프레임 워크의 구성 요소
하이브리드 프레임 워크의 구성 요소는 키워드 기반 프레임 워크의 구성 요소와 유사합니다.모든 테스트 데이터와 키워드가 외부화되어 스크립트가보다 일반화 된 형태로 나타납니다.
- 기능 라이브러리
- 키워드를 저장하는 Excel 시트
- 테스트 케이스 템플릿 디자인
- 요소 / 로케이터 용 개체 저장소
- 테스트 스크립트 또는 드라이버 스크립트
# 1) 함수 라이브러리
각 사용자 작업에 대해 사용자 정의 방법이 생성됩니다. 즉, 키워드는 라이브러리 파일에 생성됩니다.
예를 들면 : 아래의 테스트 케이스를 자동화하는 인스턴스를 만들어 보겠습니다.
테스트 케이스 아니오 | 기술 | 테스트 단계 | 예상 결과 | ||
---|---|---|---|---|---|
AssertElement | xpath | // div (contains (@ id, 'usericon')) | 표시 | ||
1 | Amazon 로고 존재 확인 | 1. URL 입력-https://www.amazon.com | 아마존 로고는 홈페이지에 표시되어야합니다. | ||
두 | 유효한 로그인 확인 | 1. URL 입력-https://www.amazon.com 2. '로그인'링크를 클릭합니다. 3. 유효한 이메일을 입력하십시오 4. 계속을 클릭하십시오. 5. 유효한 암호를 입력하십시오 6. SignInButton을 클릭합니다. | 사용자 아이콘이 홈페이지에 있어야합니다. | ||
삼 | 로그인 오류 | 1. URL 입력-https://www.amazon.com 2. '로그인'링크를 클릭합니다. 3. 유효하지 않은 이메일 입력 4. 계속을 클릭하십시오. | 이 오류 메시지에는 '계정을 찾을 수 없음'이 포함되어야합니다. |
먼저 테스트 케이스와 테스트 단계를 분석하고 해당 조치를 기록합니다.
말하다 TC 01 : Amazon 로고가 있는지 확인합니다. 사용자 작업은 다음과 같습니다. URL 입력
에 TC 02 : 유효한 로그인 확인-사용자 작업은 URL 입력, 클릭, 입력입니다.
에 TC03 : 잘못된 로그인 확인-사용자 작업은 URL 입력, 클릭, 입력입니다.
이제 다음과 같이 각 작업에 대해 정의 된 키워드로 라이브러리 파일이 생성됩니다.
Eclipse에서 Java 애플리케이션을 만드는 방법
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 typeIn(WebDriver driver, String locatorValue, 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 locatorValue, String locatorType) { driver.findElement(this.getObject(ObjectName,locatorType)).click(); } }
# 2) 키워드를 저장하는 Excel 시트
라이브러리 파일에 생성 된 키워드는이 프레임 워크를 사용하는 모든 사용자가 이해할 수 있도록 설명과 함께 엑셀 시트에 저장됩니다.
# 3) 디자인 테스트 케이스 템플릿
프레임 워크에 대한 테스트 케이스 템플릿이 생성됩니다. 따라야 할 특정 템플릿이 없습니다. 하이브리드 프레임 워크에 따라 테스트 데이터와 키워드는 모두 외부화되어야합니다. 따라서 그에 따라 템플릿이 생성됩니다. 예를 들면 :
테스트 케이스 2의 경우 – 유효한 로그인 확인
테스트 단계 | 로케이터 유형 | 로케이터 값 | TestData | AssertionType | ExpectedValue |
---|---|---|---|---|---|
enter_URL | https://www.amazon.com | ||||
딸깍 하는 소리 | xpath | // div (contains (@ id, 'SignIn')) | |||
입력 | xpath | // div (contains (@ id, 'email')) | test@gmail.com | ||
딸깍 하는 소리 | xpath | // div (contains (@ id, 'continue')) | |||
입력 | 신분증 | 암호 | 비밀번호 @ 123 | ||
딸깍 하는 소리 | 신분증 | 로그인 |
마찬가지로 각 테스트 사례에 대한 테스트 단계는 별도의 시트에 채워져 있습니다.
# 4) 요소를위한 객체 저장소
웹 페이지의 모든 요소에 대해 별도의 저장소가 유지됩니다. 각 WebElement는 Object Repository (이 경우 속성 파일)에서 이름과 그 값으로 참조됩니다. 테스트 케이스 템플릿은 객체 이름을 보유하고 그 값은 아래와 같이 저장소에서 가져옵니다.
여기에서 LoginLink는 개체의 이름이며 해당 값은 OR.properties에서‘// div (contains (@id,’SignIn '))로 읽습니다.
따라서 ObjectRepository에서 값을 읽는 코드는 Keywords.java 스크립트에 포함됩니다.
예를 들어 라이브러리 파일 : Keywords.java에서 '클릭'동작 고려
public class Keywords { public void click(WebDriver driver, String ObjectName, String locatorType) throws IOException{ driver.findElement(this.getObject(ObjectName, locatorType)).click(); } By getObject(String ObjectName, String locatorType) throws IOException{ //Object Repository is opened File file = new File(path+'\Externals\Object Repository.properties'); FileInputStream fileInput = new FileInputStream(file); //Properties file is read Properties prop = new Properties(); //find by xpath if(locatorType.equalsIgnoreCase('XPATH')){ return By.xpath(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } //find by class else if(locatorType.equalsIgnoreCase('ID')){ return By.Id(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } //find by name else if(locatorType.equalsIgnoreCase('NAME')){ return By.name(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } return null; } }
테스트 케이스의 테스트 데이터를위한 개체 저장소
스크립트에 포함 된 모든 테스트 데이터가 어떻게 외부화되어 프레임 워크가 더 일반화되는지에 대한 간단한 예를 보여 드리겠습니다.
- 테스트 케이스 템플릿에서 테스트 데이터 외부화 :
마찬가지로 테스트 데이터도 속성 파일에서 읽습니다.
- 일반 스크립트의 테스트 데이터를위한 Object Repository
브라우저 이름, 실행 가능한 드라이버 위치, 테스트 케이스 파일 이름 등과 같은 기타 일반 데이터도 별도의 저장소에서 외부화 할 수 있습니다.
위의 예에서 브라우저 매개 변수는 속성 파일 (Basic.properties)에서 외부화됩니다.
- TestNG Suite에서 테스트 데이터 전달 :
TestData는 TestNG의 스위트 파일에서 메소드로 전달할 수도 있습니다.
사용되는 클래스 바로 위에 TestNG.xml 파일에서 호출 된 태그를 사용합니다.
통사론:
테스트 스위트가 매개 변수 이름과 해당 값으로 지정되면 스크립트에서 주석을 사용하여 값을 사용하는 방법을 지정합니다. 이것은 @Parameters 주석을 사용하여 지정됩니다.
통사론: @Parameters ({“value_to_be_passed”})
하드 드라이브 복제를위한 최고의 소프트웨어
여러 매개 변수를 다음과 같이 메소드에 전달할 수도 있습니다.
구문 :
@Parameters({“Chrome”}, {“ TestCase.xls”}, {“ chromedriver.exe”}) public void init(String Browser, String SheetName, String DriverLocation){ ….. …… ………. }
이는 동일한 매개 변수의 여러 값을 참조하지 않으며 서로 다른 매개 변수의 여러 값만 사용합니다.
# 5) 드라이버 스크립트
여기에는 테스트 케이스 템플릿 엑셀 시트에서 모든 테스트 케이스를 읽는 주요 논리가 포함되어 있으며 라이브러리 파일에서 읽어 해당 작업을 수행합니다. 스크립트는 생성 된 테스트 케이스 템플릿을 기반으로 설계되었습니다.
결론
따라서 하이브리드 프레임 워크를 만들어 모든 애플리케이션을 자동화 할 수 있습니다. 그러면 한 번 생성 된 프레임 워크를 사용하여 여러 애플리케이션을 자동화 할 수 있으므로 자동화 코드 스크립팅에 소요되는 공수를 줄일 수 있습니다.
마찬가지로 프로젝트 요구 사항에 따라 프레임 워크를 생성하고 자동화 목적으로 사용할 수 있습니다.
Selenium에 대한 유익한 튜토리얼 시리즈를 즐기 셨기를 바랍니다!
=> 여기에서 모든 Selenium 자습서를 확인하십시오.
추천 도서
- Apache POI를 사용하는 Selenium WebDriver의 데이터 기반 프레임 워크
- Selenium 프레임 워크 생성 및 Excel에서 테스트 데이터 액세스-Selenium Tutorial # 21
- JUnit 프레임 워크 소개 및 Selenium 스크립트에서의 사용법 – Selenium Tutorial # 11
- Selenium 스크립트 생성을 위해 TestNG 프레임 워크를 사용하는 방법-TestNG Selenium Tutorial # 12
- Spock 프레임 워크를 사용한 데이터 기반 또는 매개 변수화 된 테스트
- Cucumber Selenium 튜토리얼 : Cucumber Java Selenium WebDriver 통합
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- Selenium 웹 드라이버의 Excel 시트에서 데이터를 읽거나 쓰는 방법