Szukaj…


Uwagi

Ta sekcja zawiera przegląd tego, czym jest testowanie i dlaczego deweloper może chcieć go użyć.

Powinien również wymieniać wszelkie duże tematy w ramach testów i zawierać linki do powiązanych tematów. Ponieważ dokumentacja do testowania jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.

Wersje

Wersja Data
1.0 2017-06-07

Instalacja lub konfiguracja

TestNG wymaga użycia JDK 7 lub nowszej wersji.

Zgodnie z http://testng.org/doc/download.html w celu instalacji testng należy dodać zależność testng do pliku maven pom.xml lub gradle build.gradle

Maven:

<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>

Stopień:

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

Więcej opcji można znaleźć na oficjalnej stronie .

Szybki program za pomocą 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");
 }
 
}

Metoda setUp() zostanie wywołana po zbudowaniu klasy testowej i przed uruchomieniem dowolnej metody testowej. W tym przykładzie będziemy szybko uruchamiać grupę, więc aFastTest() zostanie wywołany, a aSlowTest() zostanie pominięty.

TestNG Hello World Przykład

Napisanie i wykonanie prostego programu TestNG jest głównie procesem 3-etapowym.

  1. Kod - napisz logikę biznesową swojego testu i opatrz ją adnotacjami TestNG
  2. Konfiguruj - dodaj informacje o teście w testng.xml lub build.xml
  3. Uruchom TestNG - można go wywołać z wiersza poleceń, ANT, IDE jak Eclipse, IDEA IntelliJ)

Krótkie wyjaśnienie przykładu (co należy przetestować) :

Mamy klasę RandomNumberGenerator która ma metodę generateFourDigitPin która generuje 4-cyfrowy PIN i zwraca jako int . Więc tutaj chcemy sprawdzić, czy ta losowa liczba jest 4-cyfrowa, czy nie. Poniżej znajduje się kod:

Klasa do przetestowania :

package example.helloworld;

public class RandomNumberGenerator {

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

Klasa testowa 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>

Uruchom pakiet TestNG z Gradle

Przykładowy plik 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')
            }
        }
    }
}

Jak skonfigurować TestNG w teście Eclipse & Run za pomocą xml

Jak zainstalować TestNG w środowisku Eclipse

  1. Otwórz zaćmienie
  2. Kliknij Pomoc> Zainstaluj nowe oprogramowanie Element listy
  1. Kliknij Dodaj
  2. Podaj nazwę i adres URL - http://beust.com/eclipse wprowadź opis zdjęcia tutaj
  1. Wybierz TestNG
  2. Kliknij Następny

Element listy

  1. Kliknij przycisk Zakończ
  2. Instalacja TestNG zajmie trochę czasu

Po zainstalowaniu uruchom ponownie eclipse.

Utwórzmy projekt TestNG

  1. Plik> Nowy> Projekt Java> Podaj nazwę i kliknij przycisk Zakończ

  2. Utwórz klasę jako TestNGClass

  3. Utwórz następną klasę

    1.LoginPage.class

    2.HomePage.class

    3.FBLoginTest.class

Oto kod:

Klasa 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);
    }
}

Klasa 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();
    }
    
}

Klasa 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();
    }

}

Oto testng xml: Kliknij prawym przyciskiem myszy Project stwórz plik xml i skopiuj wklej tę zawartość.

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

Jak dodać autonomiczny słoik selenu:
Pobierz najnowszy samodzielny słoik selenu i dodaj go w ścieżce kompilacji projektu.

  1. Kliknij prawym przyciskiem myszy Projekt> Ścieżka kompilacji> Konfiguruj ścieżkę kompilacji> Wybierz biblioteki> Dodaj zewnętrzne słoiki

Jak uruchomić xml TestNG? Kliknij prawym przyciskiem myszy xml> Uruchom jako> TestNGSuite

Happy Coding :)



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow