geb tutorial browser automation testing using geb tool
Geb ( 'jeb'로 발음)는 브라우저 자동화 문제에 대한 해답입니다. 웹을 통해 자동화 테스트를 수행하는 데 매우 효과적인 도구입니다.
Geb는 브라우저 자동화 (처음에는 웹 테스트 용)를 덜 복잡하고 번거롭지 않고 더 효율적으로 만들어야 할 필요성에서 시작되었습니다. 프로그래밍, 웹에서 데이터 추출 및 수동 웹 작업 자동화에 활용할 수 있습니다. 또한 Geb는 크로스 브라우저 자동화 테스트 도구입니다.
Geb는 웹 브라우저와 웹 콘텐츠 간의 공동 작업을 자동화하기위한 개발자 중심 도구로 작동합니다. Groovy 언어로 WebDriver를 실행합니다.
Geb 테스트 도구의 장점은 Groovy 프로그래밍 언어 인 jQuery의 최고의 기능을 결합한다는 것입니다. WebDriver 강력하고 강력하며 동적 인 콘텐츠 검사, 선택 및 웹 상호 작용을 제공하는 페이지 개체 모델링.
다른 것들과 비교할 때 Geb를 독특하게 만드는 것 자동화 테스트 도구 시장에서 구할 수있는 것은 구문입니다. HTML 페이지를 쉽게 쿼리하는 데 일반적으로 사용되는 jQuery와 유사합니다. 둘째, 페이지 개체 패턴에 대한 통합 지원이 있습니다.
Geb는 다음과 같이 광범위하게 사용되는 일반적인 테스트 플랫폼과의 통합을 통해 기능적 웹 테스트에 대한 큰 도움을 제공합니다. 스팍 , Grails, JUnit , 오이 -JVM , TestNG 등.이 기사의 뒷부분에서 Geb이 Grails 프레임 워크와 어떻게 통합 될 수 있는지 살펴볼 것입니다.
학습 내용 :
- 실용적인 용도
- 장점
- 전제 조건
- 시작하기
- 예제로 배우기
- Geb 스크립트를 통한 데이터베이스 유효성 검사 테스트 :
- Geb의 몇 가지 유용한 방법
- 이 도구의 단점
- 추가 리소스 :
- 결론
- 추천 도서
실용적인 용도
이 Geb 튜토리얼의 소개에서 이미 논의했듯이 다음을 사용할 수 있습니다.
- 크롬, 파이어 폭스, 인터넷 익스플로러 등과 같은 여러 브라우저에서 테스트 도구로 사용 (동일한 자동화 스크립트를 다른 브라우저에서 실행하여 애플리케이션의 웹 테스트를 수행 할 수 있음)
- 사용자 승인 및 기능 테스트 사례를 자동화합니다.
- 모든 애플리케이션의 기능 또는 웹 테스트를 위해 생성 된 테스트 시나리오를 자동화합니다.
- UI (사용자 인터페이스) 유효성 검사 및 DB (데이터베이스) 유효성 검사를 포함한 종단 간 테스트를 다룹니다.
- 웹 브라우저와 웹 콘텐츠 간의 상호 작용을 자동화하는 개발자 도구입니다.
장점
- Geb는 무료 오픈 소스 도구입니다. Apache 라이선스 버전 2.0에 따라 라이선스가 부여됩니다.
- 웹 테스트를 자동화하는 쉽고 간단합니다.
- Geb의 Page Objects와 Groovy DSL은 테스트가 평범한 영어처럼 보일 정도로 읽을 수있게합니다.
- 테스트를 빠르게 실행하여 테스트 시간과 비용을 절약합니다.
- IE, Firefox, Chrome 및 HTMLUnit과 같은 다양한 브라우저와 호환됩니다.
- 실제 브라우저에서 테스트를 실행합니다. 사용자가 보게되는 실제 환경에서 테스트하는 것과 같습니다.
- 회귀 테스트가 쉬워집니다. Geb 자동화 테스트 케이스를 실행하여 애플리케이션의 수정 또는 변경 후 기존 기능이 중단되는지 확인할 수 있습니다.
- 자동화 테스트에 Geb를 사용하는 동안 애플리케이션에 UI가 변경되면 최소한의 테스트 코드 변경이 필요합니다. 따라서 코드의 노력과 중복을 줄입니다.
- 단일 스크립트 내에서 360도 (또는 최대) 테스트 범위를 지원합니다.
전제 조건
시작하기 전에 소프트웨어를 다운로드하고 설치해야합니다. 중앙 Maven 저장소에서 Geb는 단일 Geb-core jar로 사용할 수 있습니다. 여기를 클릭하세요 컴퓨터에 설치합니다.
Geb가 컴퓨터에서 작동하도록하려면 위의 Geb-core jar, 웹 드라이버 구현 및 selenium-support jar가 필요합니다.
도구를 설치하고 실행하려면 Geb 책의 아래 설치 및 사용 섹션을 참조하십시오 => Geb 설치 및 사용 설명서 .
시작하기
이미 논의했듯이 Geb는 다양한 테스트 프레임 워크와 통합 될 수 있습니다.
선택한 프레임 워크에 따라 관련 플러그인을 설치해야합니다.
예를 들면 : Grails ( 성배 자동화 테스트 스크립트를 작성하고 테스트 시나리오를 자동화하기위한 웹 애플리케이션 용 프레임 워크입니다. Grails 기능 테스트에 Geb를 사용하려면 여기에서 관련 플러그인을 설치할 수 있습니다. grails-geb 플러그인 . 이 플러그인은 baseUrl 과 reportsDir 구성 항목.
예제로 배우기
이제 테스트 시나리오를 자동화하기 위해 Geb 스크립트를 작성하는 방법을 보여 드리겠습니다.
아래 테스트 시나리오를 사용하십시오.
테스트 시나리오 ID | Softwaretestinghelp-1 | 테스트 케이스 ID | Softwaretestinghelp -1A |
출구 | |||
테스트 케이스 설명 | 검색 엔진을 통해 Softwaretestinghelp.com 페이지 확인 | 자동화 스크립트 상태 | 진행 중 |
전제 조건 | 1 브라우저 2. 검색 엔진 3. 웹 사이트-Softwaretestinghelp.com이 있어야합니다. | 전제 조건 스크립트 | NA |
실행 단계는 다음과 같습니다.
Google 검색 엔진 실행 |
검색 엔진이 성공적으로로드되었는지 확인 |
검색 창에 softwaretestinghelp.com을 입력합니다. |
결과가로드 될 때까지 기다립니다. |
결과의 첫 번째 링크가 softwaretestinghelp.com으로 연결되는지 확인합니다. |
그렇다면 링크를 엽니 다. |
웹 사이트가 열릴 때까지 기다리십시오. |
위 시나리오에 대한 Geb 자동화 도구 스크립트는 다음과 같습니다.
import geb.Browser Browser.drive { go 'http://google.com/' //verify if we are on the correct page assert title=='Google' //enter softwaretestinghelp.com into the search field $('input',name:'q').value('softwaretestinghelp.com') //wait for the change to results page to happen //(google updates the page dynamically without a new request) waitFor{ title.endsWith('Google Serach')} //is the first link to softwaretestinghelp.com? def firstLink = $('li.g,0).find('a.l') assert firstLink.text()= ='Software Testing Help - A Must Visit Software Testing Portal' //click the link firstLink.click() //wait for Google's javascript waitFor { title = ='Software Testing Help - A Must Visit Software Testing Portal' } }
이제 위의 예를 참조하여 간단한 GEB 스크립트를 작성해 볼 수 있습니다.
Geb 스크립트를 통한 데이터베이스 유효성 검사 테스트 :
모든 웹 자동화 테스트는 세 부분으로 나뉩니다.
- UI 유효성 검사- 자동화 테스트 시나리오 실행 전후에 사용자 인터페이스 (프런트 엔드)에 반영된 데이터를 검증합니다.
- DB 검증 – 자동화 테스트 시나리오 실행 전후에 데이터베이스 (백엔드)에 반영된 데이터의 유효성을 검사합니다.
- 실제 테스트 흐름 / 스크립트 흐름.
테스트 시나리오를 자동화하기 위해 작성된 Geb 스크립트는 위의 세 섹션 모두에 대한 코드를 포함 할 수 있습니다.
위 예제 섹션의 Geb 스크립트는 테스트 흐름과 UI 유효성 검사를 자동화하기위한 것입니다. 마찬가지로 데이터베이스 유효성 검사를위한 테스트 스크립트를 작성할 수 있습니다.
모든 DB 유효성 검사 테스트의 경우 항상 아래 템플릿을 코드 개요로 사용할 수 있습니다.
def validateDB(/*define all variables here*/) { def errorMessages = '' try { Configuration conf = (new ConfigurationLoader()).getConf() def sql = Sql.newInstance(conf.readValue('dbPath', ''), conf.readValue('dbUserName', ''), conf.readValue('dbPassword', ''), conf.readValue('dbDriverName', '')) /* Populate any required variables */ } /* Give print commands here to print required values */ def qry = /* select statement to pull all required values from database */ println 'SQL=$qry' sql.eachRow(qry) { row -> /* ‘if’ block to perform validation and returning error in case of any variations */ } catch(Exception e) { println 'EEEE=$e' } return errorMessages }
Geb의 몇 가지 유용한 방법
- 테스트 케이스 시나리오에 여러 탭과 창이 포함되는 경우 : 새 창이나 탭을 여는 애플리케이션을 발견 할 때마다 예를 들면 대상 속성이 설정된 링크를 클릭하면 다음을 사용할 수 있습니다. withWindow () 과 withNewWindow () 다른 창의 컨텍스트에서 코드를 실행하는 메서드.
- 드라이브 방법 : 브라우저 클래스에는 정적 메서드가 포함되어 있습니다. 드라이브() . 이 방법은 Geb 스크립팅에 추가적인 편의를 제공합니다. 모든 최상위 메서드 호출 및 속성 액세스는 브라우저에 대해 암시됩니다.
- 요구하다: 브라우저 인스턴스는 baseUrl 모든 상대 URL을 확인하는 데 사용되는 속성입니다. 일반적으로 상대 URL에 선행 슬래시를 사용하지 않고 후행 슬래시로 기본 URL을 정의하는 것이 가장 좋습니다.
- 페이지 변경 : 유용한 도움으로 페이지() 새로운 요청을하지 않고 페이지 인스턴스를 변경하는 것이 가능합니다.
- 브라우저 종료 : 브라우저 객체는 떠나다() 과 닫기() (단순히 작업을 기본 드라이버로 넘겨주는)
이 도구의 단점
- 태어난 실행 WebDriver Groovy 언어로. 이것의 모든 아이디어는 WebDriver 더 쉽고 간단합니다. 따라서 Geb를 통해 Webdriver를 사용하는 경우 Groovy 프로그래밍 언어 만 지원됩니다. 그러나 직접 사용하는 경우 WebDriver , Ruby, C #, Python, Java와 같은 많은 언어를 지원합니다.
- 작은 프로젝트에 Geb를 사용하는 것은 권장하지 않습니다. 엄청난 작업에는 훌륭하게 작동하지만 작은 활동에는 적합합니다. 웹 애플리케이션에 정보가 전달되어야하는 여러 페이지와 양식이 포함되어 있지 않은 경우 Geb가 여분의 시간보다 더 많은 시간이 소요된다는 사실을 발견 할 수 있습니다.
- 웹 사이트 응용 프로그램이 어떤 환경을 사용하는지는 매우 특별합니다. Geb가 제대로 작동하려면 특정 환경에 잘 통합되어야합니다.
추가 리소스 :
- 확인 여기 게브의 책 자세한 문서 및 예제는.
- 다음은 Geb와 grails의 통합 .
결론
Geb는 테스트 케이스 시나리오를 자동화하는 데 매우 유용합니다. 웹, 기능 및 사용자 승인 테스트를 자동화하는 데 유용합니다. 여러 브라우저를 지원하며 다른 프레임 워크와 통합 할 수 있습니다. WebDriver의 힘, jQuery Selection의 우아함, 페이지 개체 모델링의 견고 함 및 Groovy의 표현력을 결합합니다.
Geb 스크립트는 개발자 및 사용자 친화적으로 더 나은 테스트 범위와 가속화 된 테스트를 제공하는 동시에 더 효율적입니다.
저자 정보 : 이것은 Priya K의 게스트 포스트입니다. 그녀는 다양한 응용 프로그램에 대한 테스트 및 지원에 대한 전문 지식과 함께 IT 서비스에서 4 년 이상의 경험을 가지고 있습니다.
의견에 Geb 자동화 테스트 쿼리를 자유롭게 게시하십시오.
추천 도서
- WAVE 접근성 테스트 도구 자습서
- Ranorex 자습서 : 강력한 데스크톱, 웹 및 모바일 자동화 테스트 도구
- Sikuli GUI 자동화 테스트 도구-초보자 가이드 파트 # 2
- Parrot QA 튜토리얼 : 크로스 브라우저 기능 테스트 도구 검토
- 최고의 소프트웨어 테스트 도구 2021 (QA 테스트 자동화 도구)
- 초보자를위한 심층 이클립스 튜토리얼
- 자동화 테스트 란 무엇입니까 (테스트 자동화 시작을위한 궁극적 인 가이드)
- Parasoft SOAtest 튜토리얼 : 스크립트없는 API 테스트 도구