Ricerca…


Osservazioni

Questa sezione fornisce una panoramica di cosa è il testng e perché uno sviluppatore potrebbe volerlo usare.

Dovrebbe anche menzionare eventuali soggetti di grandi dimensioni all'interno di testng e collegarsi agli argomenti correlati. Poiché la Documentazione per testng è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.

Versioni

Versione Data
1.0 2017/06/07

Installazione o configurazione

TestNG richiede JDK 7 o superiore per l'uso.

Secondo http://testng.org/doc/download.html per installare testng è necessario aggiungere la dipendenza testng al file maven pom.xml o 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>

Gradle:

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

Altre opzioni possono essere trovate nella pagina ufficiale .

Programma rapido con 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");
 }
 
}

Il metodo setUp() verrà richiamato dopo che la classe di test è stata setUp() e prima che venga eseguito qualsiasi metodo di prova. In questo esempio, ci sarà la gestione dei gruppi veloce, così aFastTest() verrà richiamato mentre aSlowTest() sarà saltato.

TestNG Hello World Example

Scrivere ed eseguire un semplice programma TestNG è principalmente un processo in 3 fasi.

  1. Codice: scrivere la business logic del test e annotarlo con le annotazioni TestNG
  2. Configura: aggiungi le informazioni del test in testng.xml o in build.xml
  3. Esegui TestNG - può essere richiamato dalla riga di comando, ANT, IDE come Eclipse, IntelliJ's IDEA)

Breve spiegazione dell'esempio (cosa è necessario testare) :

Abbiamo una classe RandomNumberGenerator che ha un metodo generateFourDigitPin che genera un PIN di 4 cifre e restituisce come int . Quindi qui vogliamo testare se quel numero casuale è se di 4 cifre o meno. Di seguito è riportato il codice:

Classe da testare :

package example.helloworld;

public class RandomNumberGenerator {

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

La classe di test di 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>

Esegui la suite TestNG con Gradle

Esempio di file 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')
            }
        }
    }
}

Come configurare TestNG in Eclipse ed eseguire test usando xml

Come installare TestNG in eclissi

  1. Apri eclissi
  2. Fare clic su Guida> Installa nuovo software Elemento dell'elenco
  1. Fai clic su Aggiungi
  2. Fornisci nome e URL - http://beust.com/eclipse inserisci la descrizione dell'immagine qui
  1. Seleziona TestNG
  2. Fare clic su Avanti

Elemento dell'elenco

  1. Fai clic su Fine
  2. Ci vorrà del tempo per installare TestNG

Una volta installato, riavviare eclipse.

Consente di creare un progetto TestNG

  1. File> Nuovo> Progetto Java> Fornire un nome e fare clic su Fine

  2. Crea una classe come TestNGClass

  3. Crea la seguente lezione

    1.LoginPage.class

    2.HomePage.class

    3.FBLoginTest.class

Ecco il codice:

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

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

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

}

Ecco il test xml: tasto destro del mouse su Progetto creare un file xml e copiare incollare questo contenuto.

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

Come aggiungere il vaso autonomo di selenio:
Scarica l'ultimo jar autonomo di selenio e aggiungilo nel percorso di creazione del progetto.

  1. Fare clic con il tasto destro su Progetto> Crea percorso> Configura percorso build> Seleziona librerie> Aggiungi giare esterne

Come eseguire TestNG xml? Fare clic con il tasto destro su xml> Esegui come> TestNGSuite

Happy Coding :)



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow