Anotaciones TestNG

En este tutorial, estudiaremos todas las anotaciones de TestNG junto con los distintos atributos admitidos. Una anotación es una etiqueta o metadato que proporciona información adicional sobre una clase, interfaz o método. TestNG utiliza estas anotaciones para proporcionar varias funciones que ayudan a construir un marco de pruebas sólido. Llegados a este punto, echaremos un vistazo detallado a cada una de las anotaciones de TestNG y estudiaremos su sintaxis y uso.
Índice
@Prueba
@Test es la anotación más importante y más utilizada de TestNG. Se utiliza para referirse a un método como «Prueba». Así, cualquier método sobre el que veamos la anotación @Test se considera una prueba TestNG.
@Prueba
public void muestraPrueba() {
//Cualquier lógica de prueba
System.out.println(«¡Hola! ¡Ha llegado ITtester.sk!»);
}
Veamos ahora algunos atributos importantes de las anotaciones @Test:
1. descripción – el atributo «descripción» se utiliza para proporcionar una descripción del método de ensayo. Suele contener un resumen de una línea de la prueba.
@Prueba(descripción = «Resumen de la prueba»)
2. dataProvider – Este atributo ayuda a crear pruebas basadas en datos. Sirve para especificar el nombre del proveedor de datos para la prueba.
@Prueba(dataProvider = «nombre del dataProvider»)
3. Prioridad – Este atributo ayuda a priorizar los métodos de prueba. La prioridad por defecto empieza en 0 y las pruebas se ejecutan en orden ascendente.
@Prueba(prioridad = 2)
4. habilitado-Este atributo se utiliza para determinar si el método de prueba se ejecutará o no con el conjunto o la clase.
@Prueba(activado = falso)
5. grupos – sirve para determinar los grupos a los que pertenece el método de ensayo.
@Prueba(grupos = { «cordura», «regresión» })
7. dependsOnMethods – Sirve para especificar los métodos de los que depende el método de prueba. El método de prueba sólo se ejecuta después de que las pruebas dependientes se hayan ejecutado correctamente.
@Test(dependsOnMethods = { «dependentTestMethodName» })
8. dependsOnGroups – Sirve para especificar los grupos de los que depende el método de prueba.
@Prueba(dependeDeGrupos = { «grupoDependiente» })
9. alwaysRun – Si se establece en True, el método de prueba se ejecutará aunque fallen los métodos dependientes.
@Prueba(alwaysRun=Verdadero)
10. timeOut – sirve para introducir el valor del tiempo de espera de la prueba (en milisegundos). Si la prueba dura más que el valor de tiempo de espera especificado, la prueba finaliza y se marca como fallida.
@Prueba (tiempo de espera = 500)
@BeforeSuite
El método anotado se ejecuta una sola vez antes de ejecutar todas las pruebas de este conjunto.
@AfterSuite
El método anotado sólo se ejecuta una vez después de que se hayan ejecutado todas las pruebas de este conjunto.
@AntesClase
El método anotado se ejecuta sólo una vez antes de que se llame al primer método de prueba de la clase actual.
@AfterClass
El método anotado sólo se ejecuta una vez después de que se hayan ejecutado todos los métodos de prueba de la clase actual.
@AntesDeLaPrueba
@AfterTest
@ProveedorDeDatos
Utilizando @DataProvider, podemos crear un marco basado en datos en el que los datos se pasan al método de prueba apropiado y se ejecutan múltiples iteraciones de la prueba para diferentes valores de los datos de prueba pasados desde el método @DataProvider. El método anotado por la anotación @DataProvider devuelve una matriz o un objeto 2D.
//Proveedor de datos que devuelve una matriz 2D de 3*2
@DataProvider(nombre = «dataProvider1»)
public Object[][] dataProviderMethod1() {
return new Object[][] {{«it», «tester»},{«k1», «r1»},{«k2», «r2»}};
}
//Este método está vinculado al proveedor de datos anterior
//El caso de prueba se ejecutará 3 veces con diferentes conjuntos de valores
@Prueba(dataProvider = «dataProvider1»)
public void muestraPrueba(Cadena cadena1, Cadena cadena2) {
System.out.println(cadena1 + » » + cadena2);
}
@Parámetro
La etiqueta @Parámetro se utiliza para pasar parámetros a los scripts de prueba. El valor de la etiqueta @Parámetro se puede pasar a través del archivo testng.xml.
Muestra del archivo testng.xml con la etiqueta de parámetros:
<@Test (timeOut = 500) suite name=»sampleTestSuite»>
<test name=»sampleTest»>
<parameter name=»sampleParamName» value=»sampleParamValue»/>
<clases>
<class name=»ArchivoDePrueba» />
</classes>
</test>
</suite>
Script de prueba de ejemplo con la anotación @Parámetro:
public clase TestArchivo {
@Prueba
@Parámetros(«nombreParamuestra»)
public void parameterTest(String paramValue) {
System.out.println(«nombreParamuestra = » + nombreParamuestra);
}
@Oyente
TestNG nos proporciona diferentes tipos de escuchadores con los que podemos realizar una acción cuando se dispara un evento. Normalmente, los listeners de testNG se utilizan para configurar los informes y el registro.
@Escuchadores(NombrePaquete.NombreClaseAtenciónPersonalizada.clase)
public clase TestClass {
WebDriver driver= new FirefoxDriver();@Test
public void testMethod(){
//lógica de prueba
}
}
@Fábrica
La anotación @Factory ayuda en la ejecución dinámica de los casos de prueba. Utilizando la anotación @Factory, podemos pasar parámetros a toda la clase de prueba mientras ésta se ejecuta. Los parámetros pasados pueden ser utilizados por uno o varios métodos de prueba de esta clase.
En el siguiente ejemplo, la clase TestFactory ejecuta un método de prueba de la clase TestClass con distintos conjuntos de parámetros: «k1» y «k2».
public clase TestClass{
privado String str;
//Constructor
public TestClass(String str) {
este.cadena = cadena;
}
@Prueba
public void TestMethod() {
System.out.println(cadena);
}
}
public clase TestFactory{
//Debido a @Factory, el método de prueba de la clase TestClass
//se ejecutará dos veces con los datos «k1» y «k2»
@Fábrica
public Object[] métodofábrica() {
return new Object[] { new TestClass(«K1»), new TestClass(«k2») };
}
}