testng 튜토리얼
testng 시작하기
수색…
비고
이 섹션은 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 단계 프로세스입니다.
- 코드 - 테스트의 비즈니스 논리를 작성하고 TestNG 주석으로 주석을 추가하십시오.
- 구성 -
testng.xml
또는build.xml
테스트 정보를 추가합니다. - 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를 설치하는 방법
- 추가를 클릭하십시오.
- 이름 및 URL 제공 - http://beast.com/eclipse
- TestNG 선택
- 다음을 클릭하십시오.
- 마침을 클릭하십시오.
- TestNG를 설치하는 데 약간의 시간이 걸립니다.
일단 설치 한 다음 이클립스를 다시 시작하십시오.
TestNG 프로젝트를 만들 수 있습니다.
파일> 새로 만들기> 자바 프로젝트> 이름을 입력하고 마침을 클릭하십시오.
TestNGClass로 클래스 만들기
다음 클래스 생성
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를 다운로드하고 프로젝트의 빌드 경로에 추가하십시오.
- 프로젝트> 빌드 경로> 빌드 경로 구성> 라이브러리 선택> 외부 Jar 추가를 마우스 오른쪽 버튼으로 클릭하십시오.
TestNG xml을 실행하는 방법? xml> Run as> TestNGSuite를 마우스 오른쪽 버튼으로 클릭하십시오.
해피 코딩 :)