셀레늄-TestNG

TestNG는 강력한 테스트 프레임 워크로 TestNG가 존재하기 전에 오랫동안 사용되었던 JUnit의 향상된 버전입니다. NG는 'Next Generation'을 의미합니다.

TestNG 프레임 워크는 다음과 같은 기능을 제공합니다.

  • 주석은 테스트를 쉽게 구성하는 데 도움이됩니다.
  • 유연한 테스트 구성.
  • 테스트 케이스를 더 쉽게 그룹화 할 수 있습니다.
  • TestNG를 사용하여 테스트를 병렬화 할 수 있습니다.
  • 데이터 기반 테스트 지원.
  • 내장 된보고.

Eclipse 용 TestNG 설치

Step 1 − Eclipse를 시작하고 '새 소프트웨어 설치'를 선택합니다.

Step 2 − 'http://beust.com/eclipse'로 URL을 입력하고 '추가'를 클릭합니다.

Step 3− '저장소 추가'대화 상자가 열립니다. 이름을 'TestNG'로 입력하고 '확인'을 클릭합니다.

Step 4 − '모두 선택'을 클릭하면 그림과 같이 'TestNG'가 선택됩니다.

Step 5 − 계속하려면 '다음'을 클릭하십시오.

Step 6 − 선택한 항목을 검토하고 '다음'을 클릭합니다.

Step 7 − "사용권 계약에 동의"하고 '마침'을 클릭합니다.

Step 8 − TestNG 설치가 시작되고 진행률이 다음과 같이 표시됩니다.

Step 9− 소프트웨어의 유효성을 확인할 수 없으므로 보안 경고가 나타납니다. '확인'을 클릭하십시오.

Step 10− 설치 프로그램은 변경 사항을 적용하기 위해 Eclipse를 다시 시작하라는 메시지를 표시합니다. '예'를 클릭하십시오.

TestNG의 주석

주석은 JDK 5의 Java 언어에 공식적으로 추가되었으며 TestNG는 주석을 사용하여 테스트 클래스에 주석을 달도록 선택했습니다. 다음은 주석 사용의 몇 가지 이점입니다. TestNG에 대한 자세한 내용을 찾을 수 있습니다.here

  • TestNG는 주석을 조회하여 관심있는 메서드를 식별합니다. 따라서 메서드 이름은 패턴이나 형식으로 제한되지 않습니다.

  • 주석에 추가 매개 변수를 전달할 수 있습니다.

  • 주석은 강력한 형식이므로 컴파일러는 모든 실수를 즉시 표시합니다.

  • 테스트 클래스는 더 이상 아무것도 확장 할 필요가 없습니다 (예 : JUnit 3 용 TestCase).

Sr. 아니. 주석 및 설명
1

@BeforeSuite

주석이 달린 메서드는이 제품군의 모든 테스트가 실행되기 전에 한 번만 실행됩니다.

2

@AfterSuite

주석이 달린 메서드는이 제품군의 모든 테스트가 실행 된 후 한 번만 실행됩니다.

@BeforeClass

주석이 달린 메서드는 현재 클래스의 첫 번째 테스트 메서드가 호출되기 전에 한 번만 실행됩니다.

4

@AfterClass

주석이 추가 된 메서드는 현재 클래스의 모든 테스트 메서드가 실행 된 후 한 번만 실행됩니다.

5

@BeforeTest

주석이 달린 메서드는 <test> 태그 내의 클래스에 속하는 테스트 메서드가 실행되기 전에 실행됩니다.

6

@AfterTest

주석이 달린 메서드는 <test> 태그 내의 클래스에 속하는 모든 테스트 메서드가 실행 된 후에 실행됩니다.

7

@BeforeGroups

이 구성 방법이 이전에 실행될 그룹 목록입니다. 이 메서드는 이러한 그룹에 속하는 첫 번째 테스트 메서드가 호출되기 직전에 실행됩니다.

8

@AfterGroups

이 구성 방법이 실행될 그룹 목록입니다. 이 메서드는 이러한 그룹에 속하는 마지막 테스트 메서드가 호출 된 직후에 실행됩니다.

9

@BeforeMethod

주석이 달린 메서드는 각 테스트 메서드 전에 실행됩니다.

10

@AfterMethod

주석이 달린 메서드는 각 테스트 메서드 후에 실행됩니다.

11

@DataProvider

메서드를 테스트 메서드에 대한 데이터를 제공하는 것으로 표시합니다. 주석이 달린 메서드는 Object [] []를 반환해야합니다. 여기서 각 Object []에 테스트 메서드의 매개 변수 목록을 할당 할 수 있습니다. 이 DataProvider에서 데이터를 수신하려는 @Test 메서드는이 주석의 이름과 동일한 dataProvider 이름을 사용해야합니다.

12

@Factory

메서드를 TestNG에서 Test 클래스로 사용할 개체를 반환하는 팩토리로 표시합니다. 메서드는 Object []를 반환해야합니다.

13

@Listeners

테스트 클래스에서 리스너를 정의합니다.

14

@Parameters

@Test 메서드에 매개 변수를 전달하는 방법을 설명합니다.

15

@Test

클래스 또는 메서드를 테스트의 일부로 표시합니다.

TestNG-Eclipse 설정

Step 1 − Eclipse를 실행하고 아래와 같이 'New Java Project'를 생성합니다.

Step 2 − 프로젝트 이름을 입력하고 '다음'을 클릭합니다.

Step 3 − "라이브러리"탭으로 이동하고 아래와 같이 "외부 JAR 추가"를 클릭하여 Selenium Remote Control 서버 JAR 파일을 추가하십시오.

Step 4− 추가 된 JAR 파일이 여기에 표시됩니다. '라이브러리 추가'를 클릭합니다.

Step 5− '라이브러리 추가'대화창이 열립니다. 'TestNG'를 선택하고 '라이브러리 추가'대화 상자에서 '다음'을 클릭합니다.

Step 6 − 추가 된 'TestNG'Library가 추가되고 아래와 같이 표시됩니다.

Step 7 − 프로젝트 생성시 프로젝트 구조는 다음과 같습니다.

Step 8 − 'src'폴더를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 >> 기타를 선택합니다.

Step 9 − 'TestNG'를 선택하고 'Next'를 클릭합니다.

Step 10 − '소스 폴더'이름을 선택하고 '확인'을 클릭합니다.

Step 11 − '패키지 이름', '클래스 이름'을 선택하고 '마침'을 클릭합니다.

Step 12 − 패키지 탐색기와 생성 된 클래스가 표시됩니다.

TestNG의 첫 번째 테스트

이제 TestNG를 사용하여 스크립팅을 시작하겠습니다. WebDriver를 이해하는 데 사용한 것과 동일한 예제를 스크립트로 작성하겠습니다. 데모 응용 프로그램 인 www.calculator.net 을 사용하고 백분율 계산기를 수행합니다.

다음 테스트에서는 testNG가 프로그램 실행 흐름을 주도하므로 기본 메서드가 없음을 알 수 있습니다. 드라이버를 초기화 한 후 '@BeforeTest'메소드를 실행하고 '@Test', '@AfterTest'를 차례로 실행합니다. 클래스에는 '@Test'주석이 여러 개있을 수 있지만 '@BeforeTest'및 '@AfterTest'는 한 번만 나타날 수 있습니다.

package TestNG;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;

import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class TestNGClass {
   WebDriver driver = new FirefoxDriver();
   
   @BeforeTest
   public void launchapp() {
      // Puts an Implicit wait, Will wait for 10 seconds before throwing exception
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
      
      // Launch website
      driver.navigate().to("http://www.calculator.net");
      driver.manage().window().maximize();
   }
   
   @Test
   public void calculatepercent() {
      // Click on Math Calculators
      driver.findElement(By.xpath(".//*[@id='menu']/div[3]/a")).click();
      
      // Click on Percent Calculators
      driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")).click();
      
      // Enter value 10 in the first number of the percent Calculator
      driver.findElement(By.id("cpar1")).sendKeys("10");
      
      // Enter value 50 in the second number of the percent Calculator
      driver.findElement(By.id("cpar2")).sendKeys("50");
      
      // Click Calculate Button
      driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click();
      
      // Get the Result Text based on its xpath
      String result =
         driver.findElement(By.xpath(".//*[@id='content']/p[2]/span/font/b")).getText();
      
      // Print a Log In message to the screen
      System.out.println(" The Result is " + result);
      
      if(result.equals("5")) {
         System.out.println(" The Result is Pass");
      } else {
         System.out.println(" The Result is Fail");
      }
   }
   
   @AfterTest
   public void terminatetest() {
      driver.close();
   }
}

실행

실행하려면 생성 된 XML을 마우스 오른쪽 버튼으로 클릭하고 "다음으로 실행">> "TestNG Suite"를 선택합니다.

결과 분석

출력은 콘솔에 던져지고 아래와 같이 나타납니다. 콘솔 출력에는 실행 요약도 있습니다.

TestNG의 결과는 다른 탭에서도 볼 수 있습니다. 아래와 같이 'HTML Report View'버튼을 클릭합니다.

HTML 결과는 아래와 같이 표시됩니다.