Buscar..


Observaciones

Esta sección proporciona una descripción general de qué es testng y por qué un desarrollador puede querer usarlo.

También debe mencionar cualquier tema grande dentro de la prueba, y vincular a los temas relacionados. Dado que la Documentación para la prueba es nueva, es posible que deba crear versiones iniciales de los temas relacionados.

Versiones

Versión Fecha
1.0 2017-06-07

Instalación o configuración

TestNG requiere JDK 7 o superior para usar.

De acuerdo con http://testng.org/doc/download.html para instalar testng, debe agregar la dependencia de testng a su archivo pom.xml o gradle build.gradle de maven

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

Más opciones se pueden encontrar en la página oficial .

Programa rápido utilizando 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");
 }
 
}

El método setUp() se invocará después de que se haya construido la clase de prueba y antes de que se ejecute cualquier método de prueba. En este ejemplo, estaremos corriendo el grupo rápido, por lo aFastTest() será invocado mientras aSlowTest() se omitirán.

Ejemplo de prueba de Hello World

Escribir y ejecutar un programa simple de TestNG es principalmente un proceso de 3 pasos.

  1. Código: escriba la lógica de negocios de su prueba y anótela con anotaciones de TestNG
  2. Configurar: agregue información de su prueba en testng.xml o en build.xml
  3. Ejecute TestNG : se puede invocar desde la línea de comandos, ANT, IDE como Eclipse, IDEA de IntelliJ)

Breve explicación del ejemplo (lo que necesita ser probado) :

Tenemos una clase RandomNumberGenerator que tiene un método generateFourDigitPin que genera un PIN de 4 dígitos y devuelve como int . Así que aquí queremos probar si ese número aleatorio es de 4 dígitos o no. A continuación se muestra el código:

Clase a probar :

package example.helloworld;

public class RandomNumberGenerator {

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

La clase de prueba 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
    }
}

Hay testng.xml :

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

Ejecutar TestNG suite con Gradle

Ejemplo de archivo 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')
            }
        }
    }
}

Cómo configurar TestNG en Eclipse & Run test usando xml

Cómo instalar TestNG en eclipse

  1. Eclipse abierto
  2. Haga clic en Ayuda> Instalar nuevo software Elemento de lista
  1. Haga clic en Agregar
  2. Proporcione nombre y URL - http://beust.com/eclipse introduzca la descripción de la imagen aquí
  1. Seleccione TestNG
  2. Haga clic en Siguiente

Elemento de lista

  1. Haga clic en Finalizar
  2. Tomará algún tiempo instalar TestNG

Una vez instalado, reinicie eclipse.

Permite crear un proyecto TestNG

  1. Archivo> Nuevo> Proyecto Java> Proporcione un nombre y haga clic en Finalizar

  2. Crear una clase como TestNGClass

  3. Crear la siguiente clase

    1.LoginPage.class

    2.HomePage.class

    3.FBLoginTest.class

Aquí va el código:

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

Clase de página de inicio .

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

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

}

Aquí viene el testng xml: Haga clic derecho en Proyecto para crear un archivo xml y copie y pegue este contenido.

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

Cómo agregar jarra de selenio independiente:
Descargue el último tarro independiente de selenio y agregue eso en la ruta de compilación del proyecto.

  1. Haga clic con el botón derecho en Proyecto> Crear ruta> Configurar ruta de construcción> Seleccionar bibliotecas> Agregar archivos externos

¿Cómo ejecutar el testNG xml? Haga clic derecho en el xml> Ejecutar como> TestNGSuite

Feliz codificación :)



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow