most popular test automation frameworks with pros
지난 몇 번의 Selenium 튜토리얼에서 우리는 일반적으로 널리 사용되는 다양한 WebDriver의 명령 , 웹 테이블, 프레임과 같은 웹 요소 처리 과 예외 처리 Selenium 스크립트에서.
유사한 상황이 발생할 때마다 이러한 명령을 효과적으로 사용할 수 있도록 샘플 코드 스 니펫 및 예제와 함께 이러한 각 명령을 논의했습니다. 이전 튜토리얼에서 논의한 명령 중 가장 중요한 명령은 거의 없습니다.
Selenium 시리즈를 진행하면서 우리는 자동화 프레임 워크 생성 다음 몇 가지 자습서에서. 또한 자동화 프레임 워크의 다양한 측면, 자동화 프레임 워크 유형, 프레임 워크 사용의 이점 및 자동화 프레임 워크를 구성하는 기본 구성 요소에 대해 설명합니다.
예제가있는 Linux의 grep 명령
학습 내용 :
- 프레임 워크 란?
- 테스트 자동화 프레임 워크
- 테스트 자동화 프레임 워크의 유형
- # 1) 모듈 기반 테스트 프레임 워크
- # 2) 라이브러리 아키텍처 테스트 프레임 워크
- # 3) 데이터 기반 테스트 프레임 워크
- # 4) 키워드 기반 테스트 프레임 워크
- # 5) 하이브리드 테스트 프레임 워크
- # 6) 행동 기반 개발 프레임 워크
- 결론
- 추천 도서
프레임 워크 란?
프레임 워크는 프레임 워크에서 제공하는 스캐 폴딩의 이점을 활용하기 위해 전체적으로 통합하거나 따를 수있는 일련의 프로토콜, 규칙, 표준 및 지침의 조합으로 간주됩니다.
실제 시나리오를 고려해 보겠습니다.
우리는 엘리베이터 나 엘리베이터를 자주 사용합니다. 시스템에서 최대한의 이익과 장기적인 서비스를 활용하기 위해 따라야 할 몇 가지 지침이 엘리베이터 내에 언급되어 있습니다.
따라서 사용자는 다음 지침을 알 수 있습니다.
- 엘리베이터의 최대 용량을 확인하고 최대 용량에 도달 한 경우 엘리베이터를 타지 마십시오.
- 긴급 상황이나 문제가 발생하면 알람 버튼을 누르십시오.
- 승객이 엘리베이터에 들어가기 전에 엘리베이터에서 내릴 수 있도록 허용하고 문에서 떨어지십시오.
- 건물에 화재가 발생하거나 우연한 상황이 발생하면 엘리베이터 사용을 피하십시오.
- 엘리베이터 안에서 놀거나 점프하지 마십시오.
- 엘리베이터 안에서 담배를 피우지 마십시오.
- 문이 열리지 않거나 엘리베이터가 전혀 작동하지 않으면 도움 / 지원을 요청하십시오. 강제로 문을 열지 마십시오.
더 많은 규칙이나 지침이있을 수 있습니다. 따라서 이러한 지침을 따를 경우 시스템이보다 유익하고, 액세스 가능하며, 확장 가능하며, 사용자에게 덜 문제가됩니다.
이제 '테스트 자동화 프레임 워크'에 대해 이야기하면서 초점을이 프레임 워크로 이동하겠습니다.
테스트 자동화 프레임 워크
'테스트 자동화 프레임 워크'는 자동화 테스트 스크립트를위한 실행 환경을 제공하기 위해 배치 된 스캐 폴딩입니다. 프레임 워크는 자동화 테스트 스크립트를 효율적으로 개발, 실행 및보고하는 데 도움이되는 다양한 이점을 사용자에게 제공합니다. 테스트를 자동화하기 위해 특별히 만든 시스템과 비슷합니다.
매우 간단한 언어로 프레임 워크는 다양한 지침, 코딩 표준, 개념, 프로세스, 관행, 프로젝트 계층 구조, 모듈성,보고 메커니즘, 테스트 데이터 주입 등을 기둥 자동화 테스트에 건설적으로 혼합 한 것이라고 말할 수 있습니다. 따라서 사용자는 응용 프로그램을 자동화하면서 이러한 지침을 따라 다양한 생산 결과를 활용할 수 있습니다.
장점은 스크립팅의 용이성, 확장 성, 모듈성, 이해 가능성, 프로세스 정의, 재사용 성, 비용, 유지 관리 등과 같은 다양한 형태로 나타날 수 있습니다. 따라서 이러한 이점을 얻으려면 개발자가 다음 중 하나 이상을 사용하는 것이 좋습니다. 테스트 자동화 프레임 워크.
더욱이 단일 및 표준 테스트 자동화 프레임 워크의 필요성은 여러 개발자가 동일한 애플리케이션의 서로 다른 모듈에서 작업하고 있고 각 개발자가 자동화에 대한 접근 방식을 구현하는 상황을 피하고자 할 때 발생합니다.
노트 : 테스트 프레임 워크는 항상 애플리케이션과 무관하므로 테스트중인 애플리케이션의 복잡성 (예 : 기술 스택, 아키텍처 등)에 관계없이 모든 애플리케이션에서 사용할 수 있습니다. 프레임 워크는 확장 가능하고 유지 관리 할 수 있어야합니다.
테스트 자동화 프레임 워크의 장점
- 코드의 재사용 성
- 최대 범위
- 복구 시나리오
- 저렴한 유지 보수
- 최소한의 수동 개입
- 간편한보고
테스트 자동화 프레임 워크의 유형
이제 자동화 프레임 워크가 무엇인지에 대한 기본적인 아이디어를 얻었으므로이 섹션에서는 마켓 플레이스에서 사용할 수있는 다양한 유형의 테스트 자동화 프레임 워크를 소개합니다. 우리는 또한 그들의 장단점 및 유용성 권장 사항에 대해 조명을 비추어 볼 것입니다.
오늘날 사용 가능한 다양한 범위의 자동화 프레임 워크가 있습니다. 이러한 프레임 워크는 재사용 성, 유지 보수 용이성 등과 같은 자동화를 수행하기위한 다양한 핵심 요소에 대한 지원에 따라 서로 다를 수 있습니다.
가장 널리 사용되는 몇 가지 테스트 자동화 프레임 워크에 대해 논의하겠습니다.
- 모듈 기반 테스트 프레임 워크
- 라이브러리 아키텍처 테스트 프레임 워크
- 데이터 기반 테스트 프레임 워크
- 키워드 기반 테스트 프레임 워크
- 하이브리드 테스트 프레임 워크
- 행동 기반 개발 프레임 워크
(확대하려면 이미지를 클릭하십시오)
각각에 대해 자세히 논의하겠습니다.
그러나 그 전에이 프레임 워크를 가지고 있음에도 불구하고 사용자는 항상 자신의 프로젝트 요구에 가장 적합한 자신의 프레임 워크를 구축하고 설계하는 데 활용된다는 점을 언급하고 싶습니다.
# 1) 모듈 기반 테스트 프레임 워크
모듈 기반 테스트 프레임 워크는 널리 알려진 OOP 개념 중 하나 인 추상화를 기반으로합니다. 프레임 워크는 전체 '테스트중인 응용 프로그램'을 여러 논리적 모듈과 격리 된 모듈로 나눕니다. 각 모듈에 대해 별도의 독립적 인 테스트 스크립트를 만듭니다. 따라서 이러한 테스트 스크립트가 결합되면 둘 이상의 모듈을 나타내는 더 큰 테스트 스크립트가 작성됩니다.
이러한 모듈은 응용 프로그램 섹션에서 변경 한 내용이이 모듈에 영향을주지 않도록 추상화 계층으로 구분됩니다.
장점 :
- 프레임 워크는 더 쉽고 비용 효율적인 유지 보수로 이어지는 높은 수준의 모듈화를 도입합니다.
- 프레임 워크는 상당히 확장 가능합니다.
- 변경 사항이 응용 프로그램의 한 부분에서 구현되는 경우 응용 프로그램의 해당 부분을 나타내는 테스트 스크립트 만 수정하여 다른 모든 부분을 그대로두면됩니다.
단점 :
- 각 모듈에 대한 테스트 스크립트를 개별적으로 구현하는 동안 테스트 스크립트에 테스트 데이터 (테스트를 수행 할 데이터)를 포함합니다. 따라서 다른 테스트 데이터 세트로 테스트해야 할 때마다 테스트 스크립트에서 조작을 수행해야합니다.
# 2) 라이브러리 아키텍처 테스트 프레임 워크
라이브러리 아키텍처 테스트 프레임 워크는 몇 가지 추가 이점과 함께 모듈 기반 테스트 프레임 워크를 기반으로 기본적으로 구축되었습니다. 테스트중인 애플리케이션을 테스트 스크립트로 나누는 대신 애플리케이션을 함수로 분리하거나 애플리케이션의 다른 부분에서도 일반적인 함수를 사용할 수 있습니다. 따라서 우리는 테스트중인 애플리케이션의 공통 기능으로 구성된 공통 라이브러리를 만듭니다. 따라서 이러한 라이브러리는 필요할 때마다 테스트 스크립트에서 호출 할 수 있습니다.
프레임 워크의 기본 기본은 공통 단계를 결정하고이를 라이브러리 아래의 함수로 그룹화하고 필요할 때마다 테스트 스크립트에서 해당 함수를 호출하는 것입니다.
예 : 로그인 단계를 함수로 결합하여 라이브러리에 보관할 수 있습니다. 따라서 애플리케이션에 로그인하는 데 필요한 모든 테스트 스크립트는 코드를 다시 작성하는 대신 해당 함수를 호출 할 수 있습니다.
안드로이드 용 스파이 앱 목록
장점 :
- 모듈 기반 프레임 워크와 마찬가지로이 프레임 워크는 더 쉽고 비용 효율적인 유지 관리 및 확장 성을 제공하는 높은 수준의 모듈화를 도입합니다.
- 프레임 워크 전반에 걸쳐 다양한 테스트 스크립트에서 효율적으로 사용할 수있는 공통 함수를 생성합니다. 따라서 프레임 워크는 상당한 수준의 재사용 성을 제공합니다.
단점 :
- 모듈 기반 프레임 워크와 마찬가지로 테스트 데이터는 테스트 스크립트에 저장되므로 테스트 데이터를 변경하려면 테스트 스크립트도 변경해야합니다.
- 라이브러리의 도입으로 프레임 워크가 약간 복잡해졌습니다.
# 3) 데이터 기반 테스트 프레임 워크
애플리케이션을 자동화하거나 테스트하는 동안 다른 입력 데이터 세트로 동일한 기능을 여러 번 테스트해야 할 수도 있습니다. 따라서 이러한 경우 테스트 스크립트에 테스트 데이터를 삽입 할 수 없습니다. 따라서 테스트 스크립트 외부의 일부 외부 데이터베이스에 테스트 데이터를 보관하는 것이 좋습니다.
데이터 기반 테스트 프레임 워크는 사용자가 테스트 스크립트 논리와 테스트 데이터를 서로 분리하는 데 도움이됩니다. 사용자가 테스트 데이터를 외부 데이터베이스에 저장할 수 있습니다. 외부 데이터베이스는 속성 파일, xml 파일, Excel 파일, 텍스트 파일, CSV 파일, ODBC 저장소 등이 될 수 있습니다. 데이터는 일반적으로 '키-값'쌍으로 저장됩니다. 따라서 키를 사용하여 테스트 스크립트 내의 데이터에 액세스하고 데이터를 채울 수 있습니다.
노트 : 외부 파일에 저장된 테스트 데이터는 입력 값의 행렬뿐만 아니라 기대 값의 행렬에도 속할 수 있습니다.
예:
예를 들어 위의 메커니즘을 이해하겠습니다.
'Gmail – 로그인'기능을 고려해 보겠습니다.
1 단계: 첫 번째 단계는 테스트 데이터 (입력 데이터 및 예상 데이터)를 저장하는 외부 파일을 만드는 것입니다. 예를 들어 엑셀 시트를 고려해 보겠습니다.
2 단계: 다음 단계는 테스트 데이터를 자동화 테스트 스크립트에 채우는 것입니다. 이를 위해 여러 API를 사용하여 테스트 데이터를 읽을 수 있습니다.
public void readTD(String TestData, String testcase) throws Exception { TestData=readConfigData(configFileName,'TestData',driver); testcase=readConfigData(configFileName,'testcase',driver); FileInputStream td_filepath = new FileInputStream(TestData); Workbook td_work =Workbook.getWorkbook(td_filepath); Sheet td_sheet = td_work.getSheet(0); if(counter==0) { for (int i = 1,j = 1; i <= td_sheet.getRows()-1; i++){ if(td_sheet.getCell(0,i).getContents().equalsIgnoreCase(testcase)){ startrow = i; arrayList.add(td_sheet.getCell(j,i).getContents()); testdata_value.add(td_sheet.getCell(j+1,i).getContents());}} for (int j = 0, k = startrow +1; k <= td_sheet.getRows()-1; k++){ if (td_sheet.getCell(j,k).getContents()==''){ arrayList.add(td_sheet.getCell(j+1,k).getContents()); testdata_value.add(td_sheet.getCell(j+2,k).getContents());}} } counter++; }
위의 방법은 테스트 데이터를 읽는 데 도움이되며 아래 테스트 단계는 사용자가 GUI에 테스트 데이터를 입력하는 데 도움이됩니다.
element.sendKeys (obj_value.get (obj_index));
장점 :
- 이 프레임 워크의 가장 중요한 기능은 가능한 모든 테스트 시나리오 조합을 처리하는 데 필요한 총 스크립트 수를 상당히 줄여 준다는 것입니다. 따라서 전체 시나리오 세트를 테스트하는 데 필요한 코드 양이 적습니다.
- 테스트 데이터 매트릭스의 변경은 테스트 스크립트 코드를 방해하지 않습니다.
- 유연성 및 유지 관리 용이성 증가
- 테스트 데이터 값을 변경하여 단일 테스트 시나리오를 실행할 수 있습니다.
단점 :
- 이 프로세스는 복잡하며 테스트 데이터 소스 및 읽기 메커니즘을 마련하기 위해 추가 노력이 필요합니다.
- 테스트 스크립트를 개발하는 데 사용되는 프로그래밍 언어에 능숙해야합니다.
# 4) 키워드 기반 테스트 프레임 워크
키워드 기반 테스트 프레임 워크는 테스트 데이터를 스크립트에서 분리 할뿐만 아니라 테스트 스크립트에 속한 특정 코드 세트를 외부 데이터 파일로 유지한다는 점에서 데이터 기반 테스트 프레임 워크의 확장입니다.
이러한 코드 세트를 키워드라고하므로 프레임 워크의 이름이 지정됩니다. 키워드는 애플리케이션에서 수행해야하는 작업에 대한 자체 안내입니다.
키워드와 테스트 데이터는 표와 같은 구조로 저장되므로 테이블 기반 프레임 워크로도 널리 알려져 있습니다. 키워드 및 테스트 데이터는 사용중인 자동화 도구와는 독립적 인 엔티티입니다.
예키워드 기반 테스트 프레임 워크의 테스트 사례
위의 예에서 로그인, 클릭 및 링크 확인과 같은 키워드가 코드 내에 정의되어 있습니다.
응용 프로그램의 특성에 따라 키워드가 파생 될 수 있습니다. 그리고 모든 키워드는 단일 테스트 케이스에서 여러 번 재사용 할 수 있습니다. 로케이터 열에는 화면의 웹 요소 또는 제공해야하는 테스트 데이터를 식별하는 데 사용되는 로케이터 값이 포함됩니다.
모든 필수 키워드는 프레임 워크의 기본 코드에 디자인되고 배치됩니다.
장점 :
- 데이터 기반 테스트에서 제공하는 이점 외에도 키워드 기반 프레임 워크는 데이터 기반 테스트와 달리 사용자가 스크립팅 지식을 보유 할 필요가 없습니다.
- 여러 테스트 스크립트에서 단일 키워드를 사용할 수 있습니다.
단점 :
- 사용자는 프레임 워크에서 제공하는 이점을 효율적으로 활용할 수 있도록 키워드 생성 메커니즘에 정통해야합니다.
- 프레임 워크는 성장함에 따라 점차 복잡해지고 새로운 키워드가 많이 도입됩니다.
# 5) 하이브리드 테스트 프레임 워크
이름에서 알 수 있듯이 하이브리드 테스트 프레임 워크는 위에서 언급 한 하나 이상의 프레임 워크의 조합입니다. 이러한 설정의 가장 좋은 점은 모든 종류의 관련 프레임 워크의 이점을 활용한다는 것입니다.
예하이브리드 프레임 워크
테스트 시트에는 키워드와 데이터가 모두 포함됩니다.
위의 예에서 키워드 열에는 특정 테스트 케이스에 사용 된 모든 필수 키워드가 포함되고 데이터 열은 테스트 시나리오에 필요한 모든 데이터를 구동합니다. 입력이 필요하지 않은 단계가 있으면 비워 둘 수 있습니다.
C ++에서 stringstream을 사용하는 방법
# 6) 행동 기반 개발 프레임 워크
Behavior Driven Development 프레임 워크를 사용하면 비즈니스 분석가, 개발자, 테스터 등이 쉽게 읽고 이해할 수있는 형식으로 기능 검증을 자동화 할 수 있습니다. 이러한 프레임 워크는 사용자가 반드시 프로그래밍 언어에 익숙하지 않아도됩니다. 오이, Jbehave 등과 같은 BDD에 사용할 수있는 다양한 도구가 있습니다. BDD 프레임 워크에 대한 자세한 내용은 Cucumber 자습서에서 나중에 설명합니다. 또한 Cucumber에서 테스트 케이스를 작성하기 위해 Gherkin 언어에 대한 세부 정보도 논의했습니다.
자동화 테스트 프레임 워크의 구성 요소
프레임 워크에 대한 위의 그림 표현은 자명하지만 여전히 몇 가지 요점을 강조합니다.
- 개체 저장소 : OR로서의 Object Repository 약어는 웹 요소와 연관된 로케이터 유형 세트로 구성됩니다.
- 테스트 데이터 : 시나리오를 테스트 할 입력 데이터이며 실제 결과를 비교할 예상 값일 수 있습니다.
- 구성 파일 / 상수 / 환경 설정 : 파일은 애플리케이션 URL, 브라우저 별 정보 등에 관한 정보를 저장합니다. 일반적으로 프레임 워크 전체에서 정적으로 유지되는 정보입니다.
- 제네릭 / 프로그램 로직 / 리더 : 전체 프레임 워크에서 일반적으로 사용할 수있는 함수를 저장하는 클래스입니다.
- 빌드 도구 및 지속적인 통합 : 테스트 보고서, 이메일 알림 및 로깅 정보를 생성하는 프레임 워크의 기능을 지원하는 도구입니다.
결론
위에 설명 된 프레임 워크는 테스트 형제회에서 가장 많이 사용되는 프레임 워크입니다. 그 외에도 다양한 프레임 워크가 있습니다. 모든 추가 튜토리얼을 위해 우리는 데이터 기반 테스트 프레임 워크 .
이 자습서에서는 자동화 프레임 워크의 기본 사항에 대해 설명했습니다. 또한 시장에서 사용할 수있는 프레임 워크 유형에 대해서도 논의했습니다.
다음 튜토리얼 # 21 : 다음 자습서에서는 간단히 샘플 프레임 워크, 테스트 데이터를 저장할 MS Excel, 엑셀 조작 등을 소개합니다.
그때까지 자동화 프레임 워크에 대한 질문을 자유롭게 물어보십시오.
추천 도서
- Selenium 자동화 프로젝트의 테스트 추정에 영향을 미치는 7 가지 요인 – Selenium Tutorial # 32
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- 효율적인 Selenium 스크립팅 및 문제 해결 시나리오 – Selenium 자습서 # 27
- 로그로 Selenium 스크립트 디버깅 (Log4j 튜토리얼) – Selenium 튜토리얼 # 26
- 30 개 이상의 최고의 셀레늄 튜토리얼 : 실제 예제로 셀레늄 배우기
- 초보자를위한 심층 이클립스 튜토리얼
- Selenium 스크립트 빌드를 위해 Chrome 및 IE 브라우저에서 요소를 찾는 방법 – Selenium Tutorial # 7
- Cucumber Selenium 튜토리얼 : Cucumber Java Selenium WebDriver 통합