수색…


비고

이 섹션은 testng이 무엇인지, 왜 개발자가 그것을 사용하고 싶어하는지에 대한 개요를 제공한다.

또한 testng 내의 큰 주제를 언급하고 관련 주제에 링크해야합니다. testng에 대한 문서는 새로운 것이므로 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.

버전

번역 날짜
1.0 2017-06-07

설치 또는 설정

TestNG를 사용하려면 JDK 7 이상이 필요합니다.

http://testng.org/doc/download.html 에 따라 testng을 설치하려면 maven pom.xml 또는 gradle build.gradle 파일에 testng 종속성을 추가해야합니다

메이븐 :

<repositories>
  <repository>
    <id>jcenter</id>
    <name>bintray</name>
    <url>http://jcenter.bintray.com</url>
  </repository>
</repositories>
 
<dependency>
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>
  <version>6.9.12</version>
  <scope>test</scope>
</dependency>

요람 :

repositories {
    jcenter()
}
 
dependencies {
    testCompile 'org.testng:testng:6.9.12'
}

더 많은 옵션은 공식 페이지 에서 찾을 수 있습니다.

TestNG를 사용한 빠른 프로그램

package example;
 
import org.testng.annotations.*; // using TestNG annotations
 
public class Test {
 
 @BeforeClass
 public void setUp() {
   // code that will be invoked when this test is instantiated
 }
 
 @Test(groups = { "fast" })
 public void aFastTest() {
   System.out.println("Fast test");
 }
 
 @Test(groups = { "slow" })
 public void aSlowTest() {
    System.out.println("Slow test");
 }
 
}

setUp() 메소드는 테스트 클래스가 빌드 된 후 테스트 메소드가 실행되기 전에 호출됩니다. 이 예제에서는 그룹을 빠르게 실행하므로 aFastTest() 를 건너 뛰는 동안 aSlowTest() 가 호출됩니다.

TestNG Hello World 예제

간단한 TestNG 프로그램 작성 및 실행은 주로 3 단계 프로세스입니다.

  1. 코드 - 테스트의 비즈니스 논리를 작성하고 TestNG 주석으로 주석을 추가하십시오.
  2. 구성 - testng.xml 또는 build.xml 테스트 정보를 추가합니다.
  3. TestNG 실행 - Eclipse와 같은 명령 행, ANT, IDE, IntelliJ의 IDEA에서 호출 할 수 있음)

예제에 대한 간략한 설명 (테스트해야 할 사항) :

우리는이 RandomNumberGenerator 메소드가 클래스 generateFourDigitPin 4 자리 PIN을 생성하고 반환 int . 그래서 여기서 우리는 그 난수가 4 자리인지 아닌지를 테스트하려고합니다. 아래는 코드입니다.

테스트 할 클래스 :

package example.helloworld;

public class RandomNumberGenerator {

public int generateFourDigitPin(){
    return (int)(Math.random() * 10000);
}
}

TestNG 테스트 클래스 :

package example.helloworld;

import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class TestRandomNumberGenerator {
    
    RandomNumberGenerator rng = null;
    
    @BeforeClass
    public void deSetup(){
        rng = new RandomNumberGenerator();
    }
    
    @Test
    public void testGenerateFourDigitPin(){
        int randomNumber = rng.generateFourDigitPin();
        Assert.assertEquals(4, String.valueOf(randomNumber).length());
    }
    
    @AfterClass
    public void doCleanup(){
        //cleanup stuff goes here
    }
}

Ther testng.xml :

<suite name="Hello World">
    <test name="Random Number Generator Test">
        <classes>
            <class name="example.helloworld.TestRandomNumberGenerator" />
        </classes>
    </test>
</suite>

Gradle로 TestNG Suite 실행

샘플 build.gradle 파일 :

plugin: 'java'

repositories {
    mavenLocal()
    mavenCentral()
    jcenter()
}

dependencies {
    compile "org.testng:testng:6.9.12"
}

test {
    useTestNG() {
    suiteXmlBuilder().suite(name: 'Sample Suite') {
        test(name : 'Sample Test') {
            classes('') {
                'class'(name: 'your.sample.TestClass')
            }
        }
    }
}

Eclipse에서 TestNG를 구성하고 xml을 사용하여 테스트 실행

Eclipse에서 TestNG를 설치하는 방법

  1. 오픈 일식
  2. 도움말> 새 소프트웨어 설치를 클릭하십시오. 목록 항목
  1. 추가를 클릭하십시오.
  2. 이름 및 URL 제공 - http://beast.com/eclipse 여기에 이미지 설명을 입력하십시오.
  1. TestNG 선택
  2. 다음을 클릭하십시오.

목록 항목

  1. 마침을 클릭하십시오.
  2. TestNG를 설치하는 데 약간의 시간이 걸립니다.

일단 설치 한 다음 이클립스를 다시 시작하십시오.

TestNG 프로젝트를 만들 수 있습니다.

  1. 파일> 새로 만들기> 자바 프로젝트> 이름을 입력하고 마침을 클릭하십시오.

  2. TestNGClass로 클래스 만들기

  3. 다음 클래스 생성

    1.LoginPage.class

    2.HomePage.class

    3.FBLoginTest.class

코드는 다음과 같습니다.

LoginPage 클래스

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;

public class LoginPage {

    @FindBy(id = "email")
    private WebElement username;
    
    @FindBy(id = "pass")
    private WebElement password;
    
    @FindBy(xpath = ".//input[@data-testid='royal_login_button']")
    private WebElement login;
    
    WebDriver driver;
    
    public LoginPage(WebDriver driver){
        this.driver = driver;
         PageFactory.initElements(driver, this);
    }
    public void enterUserName(String name){
        username.clear();
        username.sendKeys(name);
    }
    
    public void enterPassword(String passwrd){
        password.clear();
        password.sendKeys(passwrd);
    }
    

    public HomePage clickLoginButton(){
        login.click();
        return new HomePage(driver);
    }
}

HomePage 클래스 .

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;

public class HomePage {

    @FindBy(id = "userNavigationLabel")
    private WebElement userDropdown;
    
    WebDriver driver;
    
    public HomePage(WebDriver driver){
        this.driver = driver;
        PageFactory.initElements(driver, this);
    } 
    
    public boolean isUserLoggedIn(){
        return userDropdown.isDisplayed();
    }
    
}

FBLoginTest 클래스

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;

import com.testng.pages.HomePage;
import com.testng.pages.LoginPage;

public class FBLoginTest {
    
    WebDriver driver;
    LoginPage loginPage;
    HomePage homePage;
    
    @BeforeClass
    public void openFBPage(){
        driver = new FirefoxDriver();
        driver.get("https://www.facebook.com/");
        loginPage = new LoginPage(driver);
    }
    
    @Test
    public void loginToFB(){
        loginPage.enterUserName("");
        loginPage.enterPassword("");
        homePage = loginPage.clickLoginButton();
        Assert.assertTrue(homePage.isUserLoggedIn());
    }
    
    @AfterClass
    public void closeBrowser(){
        driver.quit();
    }

}

여기 testng xml이 있습니다 : 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 XML 파일을 만들고이 내용을 붙여 넣습니다.

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite">
  <test name="Test">
    <classes>
      <class name="com.testng.FBLoginTest"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

셀레늄 독립 실행 형 병을 추가하는 방법 :
최신 셀레늄 독립 실행 형 jar를 다운로드하고 프로젝트의 빌드 경로에 추가하십시오.

  1. 프로젝트> 빌드 경로> 빌드 경로 구성> 라이브러리 선택> 외부 Jar 추가를 마우스 오른쪽 버튼으로 클릭하십시오.

TestNG xml을 실행하는 방법? xml> Run as> TestNGSuite를 마우스 오른쪽 버튼으로 클릭하십시오.

해피 코딩 :)



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow