testng Tutorial
Empezando con testng
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.
- Código: escriba la lógica de negocios de su prueba y anótela con anotaciones de TestNG
- Configurar: agregue información de su prueba en
testng.xml
o enbuild.xml
- 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
- Haga clic en Agregar
- Proporcione nombre y URL - http://beust.com/eclipse
- Seleccione TestNG
- Haga clic en Siguiente
- Haga clic en Finalizar
- Tomará algún tiempo instalar TestNG
Una vez instalado, reinicie eclipse.
Permite crear un proyecto TestNG
Archivo> Nuevo> Proyecto Java> Proporcione un nombre y haga clic en Finalizar
Crear una clase como TestNGClass
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.
- 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 :)