how use testng framework
지난 몇 번의 자습서에서는 기본적이고 일반적으로 사용되는 WebDriver 명령에 대해 설명했습니다. 또한 UI 요소의 위치 지정 전략과 테스트 스크립트에 포함하는 방법에 대해서도 배웠습니다. 따라서 우리는 첫 번째 WebDriver 자동화 테스트 스크립트 .
이 튜토리얼을 진행하면서 TestNG, 기능 및 응용 프로그램에 대한 모든 것을 논의 할 것입니다.
TestNG는 고급 프레임 워크입니다. 개발자와 테스터 모두의 이점을 활용할 수 있도록 설계되었습니다. 이미 JUnit을 사용하는 사람들에게는 TestNG가 일부 고급 기능과 다르지 않은 것처럼 보입니다. 프레임 워크의 시작과 함께 JUnit은 Java 애플리케이션, Java 개발자 및 Java 테스터 사이에서 인기를 얻었으며 코드 품질이 크게 향상되었습니다.
또한보십시오=> JUnit 튜토리얼과 Selenium 스크립트에서의 사용법
사용하기 쉽고 간단한 프레임 워크 임에도 불구하고 JUnit에는 TestNG 그림에. TestNG는 'Cedric Beust'라는 저명한 프로그래머가 만들었습니다. TestNG는 Apache Software License에 따라 배포되고 쉽게 다운로드 할 수있는 오픈 소스 프레임 워크입니다.
WebDriver와 함께 TestNG를 도입하기위한 우리의 요구 사항에 대해 이야기하는 것은 제품 / 응용 프로그램의 상태를 파악할 수 있도록 이해 관계자들과 공유 할 수있는 효율적이고 효과적인 테스트 결과 형식을 제공하여 WebDriver가 생성 할 수없는 단점을 제거한다는 것입니다. 테스트 보고서. TestNG에는 프로그램이 예기치 않게 종료되지 않고 실행될 수 있도록하는 내장 된 예외 처리 메커니즘이 있습니다.
TestNG와 JUnit은 TestNG가 JUnit의 확장 버전이며 현재 테스트 시대에 더 광범위하게 사용되는 동일한 단위 프레임 워크 제품군에 속합니다.
학습 내용 :
- TestNG의 특징
- Eclipse에서 TestNG 설치
- 샘플 TestNG 프로젝트 생성
- TestNG 클래스 생성
- TestNG 스크립트 실행
- HTML 보고서
- TestNG에서 우선 순위 설정
- 코드 연습
- TestNG 주석
- 결론
- 추천 도서
TestNG의 특징
- 주석 지원
- 매개 변수화 지원
- 테스트 스위트를 생성 할 필요가없는 고급 실행 방법론
- 데이터 공급자를 사용한 데이터 기반 테스트 지원
- 사용자가 테스트 방법에 대한 실행 우선 순위를 설정할 수 있습니다.
- 다중 스레드 실행시 위협 안전 환경 지원
- 빌드 도구 (Ant, Maven 등), 통합 개발 환경 (Eclipse)과 같은 다양한 도구 및 플러그인과의 통합을 쉽게 지원합니다.
- ReportNG를 사용하여 효과적인 보고서 생성 수단으로 사용자를 용이하게합니다.
TestNG를 JUnit보다 우수하게 만드는 여러 가지 장점이 있습니다. 그들 중 일부는 다음과 같습니다.
- 사전 및 쉬운 주석
- 실행 패턴 설정 가능
- 테스트 스크립트의 동시 실행
- 테스트 케이스 종속성을 설정할 수 있습니다.
주석은 TestNG 및 JUnit 모두에서 '@'기호가 앞에옵니다.
이제 설치 및 구현 부분부터 시작하겠습니다.
셀레늄 테스트 자동화를위한 온라인 그리드
# 1) LambdaTest
TestNG 프레임 워크는 LambdaTest와 같은 클라우드 Selenium Grid와 함께 가장 잘 활용되어 사내 Selenium Grid를 유지 관리하는 번거 로움없이 2000 개 이상의 실제 브라우저 및 운영 체제에서 병렬 테스트를 실행할 수 있습니다.
디버깅을위한 Selenium 테스트 스크립트의 전체 비디오 녹화와 함께 명령 로그, 네트워크 로그, 원시 Selenium 로그, 메타 데이터 등과 같은 다양한 로그를 얻을 수 있습니다.
LambdaTest는 또한 지속적인 테스트를 위해 Jenkins, Travis CI, CircleCI 등과 같은 여러 CI / CD 도구와의 통합을 제공합니다. LambdaTest를 사용하면 손쉬운 버그 로깅을 위해 수많은 프로젝트 관리 도구와 통합 할 수도 있습니다.
=> LambdaTest 웹 사이트 방문Eclipse에서 TestNG 설치
Eclipse에서 TestNG 다운로드 및 설치를 수행하려면 아래 단계를 따르십시오.
1 단계: Eclipse IDE 시작-> 메뉴에서 도움말 옵션 클릭-> 드롭 다운에서 'Eclipse Marketplace ..'옵션을 선택합니다.
2 단계: 검색 텍스트 상자에 키워드 'TestNG'를 입력하고 아래와 같이 '이동'버튼을 클릭합니다.
3 단계: 사용자가 '이동'버튼을 클릭하면 검색 문자열과 일치하는 결과가 표시됩니다. 이제 사용자는 설치 버튼을 클릭하여 TestNG를 설치할 수 있습니다.
4 단계: 사용자가 설치 버튼을 클릭하면 설치를 확인하는 창이 나타납니다. '확인'버튼을 클릭합니다.
5 단계: 다음 단계에서 응용 프로그램은 라이센스에 동의하라는 메시지를 표시 한 다음 '마침'버튼을 클릭합니다.
6 단계: 이제 설치가 시작되며 진행 상황은 다음과 같습니다.
변경 사항을 반영하기 위해 이클립스를 다시 시작하는 것이 좋습니다.
다시 시작할 때 사용자는 메뉴 모음의 '창'옵션에서 '기본 설정'으로 이동하여 TestNG 설치를 확인할 수 있습니다. 동일하게 다음 그림을 참조하십시오.
(확대하려면 이미지를 클릭하십시오)
샘플 TestNG 프로젝트 생성
Eclipse IDE에서 TestNG 프로젝트 생성부터 시작하겠습니다.
1 단계: 메뉴에서 파일 옵션을 클릭-> 새로 만들기 클릭-> Java 프로젝트 선택.
2 단계: 프로젝트 이름을“DemoTestNG”로 입력하고“Next”버튼을 클릭합니다. 마지막 단계로 '마침'버튼을 클릭하면 Java 프로젝트가 준비됩니다.
3 단계: 다음 단계는 TestNG 라이브러리를 새로 생성 된 Java 프로젝트로 구성하는 것입니다. 동일한 경우 빌드 경로 구성에서 '라이브러리'탭을 클릭합니다. 아래와 같이 '라이브러리 추가'를 클릭합니다.
4 단계: 사용자는 구성 할 라이브러리를 선택하라는 대화 상자가 표시됩니다. TestNG를 선택하고 아래 이미지와 같이“Next”버튼을 클릭합니다. 마지막으로 '마침'버튼을 클릭합니다.
이제 TestNG가 Java 프로젝트에 추가되었으며 프로젝트를 확장하면 패키지 탐색기에서 필요한 라이브러리를 볼 수 있습니다.
이전 가이드에 설명 된대로 다운로드 한 모든 Selenium 라이브러리와 jar를 프로젝트의 빌드 경로에 추가합니다.
TestNG 클래스 생성
이제 TestNG를 사용하여 테스트 스크립트 생성을 시작하기위한 모든 기본 설정을 완료했습니다. TestNG를 사용하여 샘플 스크립트를 만들어 보겠습니다.
1 단계: 'DemoTestNG'프로젝트를 확장하고 'src'폴더로 이동합니다. 'src'패키지를 마우스 오른쪽 버튼으로 클릭하고 New-> Other로 이동합니다.
2 단계: TestNG 옵션을 확장하고 'TestNG'클래스 옵션을 선택하고 '다음'버튼을 클릭합니다.
3 단계: 다음과 같이 필요한 세부 정보를 제공하십시오. 소스 폴더, 패키지 이름 및 TestNG 클래스 이름을 지정하고 마침 버튼을 클릭합니다. 아래 그림에서 알 수 있듯이 사용자는 테스트 클래스 스키마에 반영 될 다양한 TestNG 표기법도 확인할 수 있습니다. TestNG 주석은이 세션의 뒷부분에서 설명합니다.
위에서 언급 한 TestNG 클래스는 기본 스키마로 생성됩니다.
이제 TestNG 테스트 스크립트의 기본 기반을 만들었으므로 이제 실제 테스트 코드를 삽입하겠습니다. 이전 세션에서 사용한 것과 동일한 코드를 사용하고 있습니다.
대본:
- 브라우저를 시작하고 'gmail.com'을 엽니 다.
- 페이지 제목을 확인하고 확인 결과를 인쇄합니다.
- 사용자 이름과 암호를 입력하십시오.
- 로그인 버튼을 클릭합니다.
- 웹 브라우저를 닫습니다.
암호:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
TestNG에 대한 코드 설명
1) @Test – @Test는 TestNG 주석 . 이 주석을 통해 프로그램 실행은 @Test로 주석이 달린 메서드가 테스트 메서드라는 것을 알 수 있습니다. 다른 TestNG 주석을 사용할 수 있으려면 패키지 ' 수입 org.testng.annotations. *”.
두) TestNG를 사용하여 테스트 스크립트를 만드는 동안 main () 메서드가 필요하지 않습니다. 프로그램 실행은 주석을 기반으로 수행됩니다.
삼) 성명서에서 우리는 예상 값과 실제 값을 비교하면서 Assert 클래스를 사용했습니다. Assert 클래스는 다양한 검증을 수행하는 데 사용됩니다. 다른 어설 션을 사용할 수 있으려면 ' 수입 org.testng.Assert”.
TestNG 스크립트 실행
TestNG 테스트 스크립트는 다음과 같은 방법으로 실행할 수 있습니다.
=> 편집기 내의 클래스 또는 패키지 탐색기 내의 Java 클래스 내부를 마우스 오른쪽 버튼으로 클릭하고 '다음으로 실행'옵션을 선택한 다음 'TestNG 테스트'를 클릭합니다.
TestNG 결과는 두 개의 창에 표시됩니다.
- 콘솔 창
- TestNG 결과 창
결과 창은 아래 스크린 캐스트를 참조하십시오.
컴퓨터를 청소하는 최고의 소프트웨어
(확대하려면 이미지를 클릭하십시오)
HTML 보고서
TestNG는 테스트 실행을 위해 사용자가 읽을 수 있고 이해할 수있는 HTML 보고서를 생성하는 뛰어난 기능을 제공합니다. 이러한 보고서는 모든 브라우저에서 볼 수 있으며 Eclipse의 내장 브라우저 지원을 사용하여 볼 수도 있습니다.
HTML 보고서를 생성하려면 다음 단계를 따르십시오.
1 단계: 새로 생성 된 TestNG 클래스를 실행합니다. TestNG 클래스가 포함 된 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 '새로 고침'옵션을 선택하여 새로 고칩니다.
2 단계: 'test-output'이라는 이름의 폴더가 'src'폴더 수준의 프로젝트에서 생성됩니다. 'test-output'폴더를 확장하고 Eclipse 브라우저로 'emailable-report.html'파일을 엽니 다. HTML 파일은 최근 실행 결과를 표시합니다.
3 단계: HTML 보고서는 Eclipse 환경 내에서 열립니다. 아래 이미지를 참조하십시오.
페이지를 새로 고침하여 새로운 실행 결과를 확인하세요.
TestNG에서 우선 순위 설정
코드 스 니펫
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
코드 연습
테스트 스크립트가 둘 이상의 테스트 방법으로 구성된 경우 TestNG 주석 '@Test'를 사용하고 'priority'매개 변수의 값을 설정하여 실행 우선 순위 및 순서를 설정할 수 있습니다.
위의 코드 스 니펫에서 모든 메소드는 @Test 도움말로 주석 처리되고 우선 순위는 0, 1 및 2로 설정됩니다. 따라서 테스트 메소드가 실행되는 실행 순서는 다음과 같습니다.
- 방법 1
- 방법 2
- 방법 3
주석 지원
TestNG 및 JUnit에는 여러 주석이 제공됩니다. 미묘한 차이점은 TestNG가 JUnit에 더 많은 고급 주석을 제공한다는 것입니다.
TestNG 주석
다음은 TestNG에서 가장 유용하고 유리한 주석 목록입니다.
주석 | 기술 |
---|---|
@방과후 | 주석은 동일한 테스트 클래스 내에서 마지막 테스트 메서드를 실행 한 후 @AfterClass로 주석이 달린 메서드를 실행해야 함을 시스템에 알립니다. |
@테스트 | 주석은 @Test로 주석 처리 된 메서드가 테스트 메서드임을 시스템에 알립니다. |
안녕하세요. | 주석은 전체 스위트에서 테스트를 실행하기 전에 @BeforeSuite로 주석이 달린 메소드를 실행해야한다고 시스템에 알립니다. |
@AfterSuite | 주석은 전체 Suite에서 테스트를 실행 한 후 @AfterSuite로 주석이 달린 메서드를 실행해야 함을 시스템에 알립니다. |
@BeforeTest | 주석은 동일한 테스트 클래스 내에서 테스트 메서드를 실행하기 전에 @BeforeTest로 주석 처리 된 메서드를 실행해야한다고 시스템에 알립니다. |
@AfterTest | 주석은 동일한 테스트 클래스 내에서 테스트 메서드를 실행 한 후 @AfterTest로 주석 처리 된 메서드를 실행해야 함을 시스템에 알립니다. |
뿡 빵뀨 | 주석은 동일한 테스트 클래스 내에서 첫 번째 테스트 메서드를 실행하기 전에 @BeforeClass로 주석 처리 된 메서드를 실행해야한다고 시스템에 알립니다. |
안녕하세요. | 주석은 동일한 테스트 클래스 내의 모든 테스트 메서드를 실행하기 전에 @BeforeMethod로 주석 처리 된 메서드를 실행해야 함을 시스템에 알립니다. |
안녕하세요. | 주석은 동일한 테스트 클래스 내에서 모든 테스트 메소드를 실행 한 후 @AfterMethod로 주석이 달린 메소드를 실행해야 함을 시스템에 알립니다. |
안녕하세요. | 주석은 @BeforeGroups로 주석이 달린 메소드가 그룹을 등록하는 구성 메소드이며 그룹의 첫 번째 테스트 메소드를 실행하기 전에 실행해야 함을 시스템에 알립니다. |
@AfterGroups | 어노테이션은 @AfterGroups로 어노테이션 된 메소드가 그룹을 등록하는 구성 메소드이며 그룹의 마지막 테스트 메소드를 실행 한 후 실행해야 함을 시스템에 알립니다. |
노트 : 앞에서 언급 한 많은 주석은 JUnit 3 및 JUnit 4 프레임 워크에서도 실행할 수 있습니다.
결론
이 튜토리얼을 통해 TestNG라는 이름의 자바 기반 테스트 프레임 워크를 익히려고 노력했습니다. 우리는 프레임 워크 설치로 세션을 시작했고 스크립트 생성 및 고급 주제로 이동했습니다. TestNG에서 제공하는 모든 주석에 대해 논의했습니다. 우리는 주석과 assert 문을 사용하여 첫 번째 TestNG 테스트 스크립트를 구현하고 실행했습니다.
기사 요약 :
- TestNG는 개발자와 테스터 모두의 이점을 활용할 수 있도록 설계된 고급 프레임 워크입니다.
- TestNG는 Apache Software License에 따라 배포되고 쉽게 다운로드 할 수있는 오픈 소스 프레임 워크입니다.
- TestNG는 고급 기능으로 인해 JUnit보다 우수한 것으로 간주됩니다.
- TestNG의 특징
- 주석 지원
- 테스트 스위트를 생성 할 필요가없는 고급 실행 방법론
- 매개 변수화 지원
- 데이터 공급자를 사용한 데이터 기반 테스트 지원
- 테스트 방법에 대한 실행 우선 순위 설정
- 다중 스레드 실행시 위협 안전 환경 지원
- 빌드 도구 (Ant, Maven 등), 통합 개발 환경 (Eclipse)과 같은 다양한 도구 및 플러그인과의 통합을 쉽게 지원합니다.
- ReportNG를 사용하여 효과적인 보고서 생성 수단으로 사용자를 용이하게합니다.
- JUnit에 비해 TestNG의 장점
- 고급 및 쉬운 주석 추가
- 실행 패턴 설정 가능
- 테스트 스크립트의 동시 실행
- 테스트 케이스 종속성을 설정할 수 있습니다.
- TestNG는 무료로 제공되며 Eclipse Market을 사용하여 Eclipse IDE에 쉽게 설치할 수 있습니다.
- 설치시 TestNG는 Eclipse 환경 내에서 라이브러리로 사용할 수 있습니다.
- 새 Java 프로젝트를 만들고 TestNG 라이브러리를 사용하여 빌드 경로를 구성합니다.
- 생성 된 TestNG 프로젝트를 확장하고 'src'폴더로 이동하여 새 TestNG 클래스를 생성합니다. 'src'패키지를 마우스 오른쪽 버튼으로 클릭하고 New-> Other로 이동합니다. TestNG 클래스 옵션을 선택합니다.
- @Test는 TestNG에서 제공하는 주석 중 하나입니다. 이 주석을 통해 프로그램 실행은 @Test로 주석이 달린 메서드가 테스트 메서드라는 것을 알 수 있습니다. 다른 TestNG 주석을 사용할 수 있으려면 패키지 ' 수입 org.testng.annotations. *”.
- TestNG를 사용하여 테스트 스크립트를 만드는 동안 main () 메서드가 필요하지 않습니다.
- 예상 값과 실제 값을 비교하면서 Assert 클래스를 사용합니다. Assert 클래스는 다양한 검증을 수행하는 데 사용됩니다. 다른 어설 션을 사용할 수 있으려면 ' 수입 org.testng.Assert”.
- 테스트 스크립트가 둘 이상의 테스트 메서드로 구성된 경우 TestNG 주석 '@Test'를 사용하고 'priority'매개 변수에 대한 값을 설정하여 실행 우선 순위 및 시퀀스를 설정할 수 있습니다.
- TestNG에는 사람이 읽을 수있는 테스트 실행 보고서를 자동으로 생성하는 기능이 있습니다. 이러한 보고서는 모든 브라우저에서 볼 수 있으며 Eclipse의 내장 브라우저 지원을 사용하여 볼 수도 있습니다.
다음 튜토리얼 # 13 : Selenium 시리즈의 다음 튜토리얼을 진행하면서 웹 페이지에서 사용할 수있는 다양한 유형의 웹 요소를 처리하는 데 집중할 것입니다. 따라서, 다음 자습서에서는 '드롭 다운'에 초점을 맞추고 처리 전략을 실행합니다. 또한 WebDriver의 Select 클래스와 드롭 다운에서 값을 선택하는 방법에 대해서도 설명합니다.
독자를위한 발언 : Selenium 시리즈의 다음 튜토리얼이 처리 모드에있는 동안 독자는 TestNG 프레임 워크를 사용하여 기본 WebDriver 스크립트를 만들 수 있습니다.
더 많은 고급 스크립트와 개념을 보려면 TestNG 클래스에 많은 주석과 어설 션을 포함하고 TestNG 환경을 사용하여 실행하십시오. 또한 TestNG에서 생성 한 HTML 보고서를 분석합니다.
추천 도서
- Firebug를 사용하여 Selenium 스크립트를 만드는 방법-Selenium Tutorial # 4
- JUnit 프레임 워크 소개 및 Selenium 스크립트에서의 사용법 – Selenium Tutorial # 11
- Selenium에서 TestNG 주석을 사용하는 방법 알아보기 (예제 포함)
- Cucumber Selenium 튜토리얼 : Cucumber Java Selenium WebDriver 통합
- Selenium 스크립트 빌드를 위해 Chrome 및 IE 브라우저에서 요소를 찾는 방법 – Selenium Tutorial # 7
- Selenium 프레임 워크 생성 및 Excel에서 테스트 데이터 액세스-Selenium Tutorial # 21
- Generics 및 Testsuite 생성 – Selenium Tutorial # 22
- 초보자를위한 심층 이클립스 튜토리얼