Habilidades necesarias para el desarrollo de pruebas: configuración relacionada con la operación de TestNG

Un artefacto imprescindible para las pruebas de automatización de la interfaz ~ Para obtener más conocimientos y habilidades de prueba, consulte la cuenta oficial [Test Memo]

 1. Vuelva a ejecutar el caso fallido     

    Cada vez que falla una prueba en la suite, TestNG crea un archivo llamado testng-failed.xml en el directorio de salida. Este archivo XML contiene la información necesaria para volver a ejecutar los métodos que fallaron, lo que le permite reproducir rápidamente las fallas sin tener que ejecutar la prueba completa. De la siguiente manera:

java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs testng.xmljava -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs test-outputs\testng-failed.xml

Nota: testng-failed.xml contiene todos los métodos dependientes requeridos, por lo que tiene la garantía de ejecutar el método fallido sin fallas de SKIP.

    A veces, puede ser deseable que TestNG vuelva a intentarlo automáticamente cuando falla una prueba. En este caso, se puede utilizar un analizador de reintentos. Al vincular un analizador de reintentos a una prueba, TestNG llamará automáticamente al analizador de reintentos para determinar si TestNG puede volver a intentar el caso de prueba para ver si pasa una prueba que acaba de fallar. 

    Pasos para utilizar el Analizador de reintentos:

  1.  Cree una implementación de la interfaz org.testng.IRetryAnalyzer

  2. Vincule la implementación a la anotación @Test, por ejemplo, @Test(retryAnalyzer = LocalRetry.class)

    A continuación se muestra un ejemplo de implementación de un analizador de reintentos que vuelve a intentar una prueba hasta tres veces.

import org.testng.IRetryAnalyzer;import org.testng.ITestResult; public class MyRetry implements IRetryAnalyzer {
   
      private int retryCount = 0;  private static final int maxRetryCount = 3;   @Override  public boolean retry(ITestResult result) {
   
       if (retryCount < maxRetryCount) {
   
         retryCount++;      return true;    }    return false;  }}
import org.testng.Assert;import org.testng.annotations.Test; public class TestclassSample {
   
      @Test(retryAnalyzer = MyRetry.class)  public void test2() {
   
       Assert.fail();  }}

 

2. Compatibilidad con el marco de pruebas de Junit

    TestNG puede ejecutar pruebas JUnit 3 y JUnit 4. Todo lo que necesita hacer es colocar el archivo jar de JUnit en el classpath, especificar su clase de prueba JUnit en la propiedad testng.classNames y establecer la propiedad testng.junit en verdadero:

<test name="Test1" junit="true">  <classes>    <!-- ... -->

En este caso, TestNG ejecuta un método similar a JUnit basado en la versión de JUnit que se encuentra en el classpath:

  • JUnidad 3

    • Se ejecutarán todos los métodos de la clase que empiecen por test*.

    • Si tiene un método setUp() en su clase de prueba, se llamará antes de cada método de prueba.

    • Si tiene un método tearDown () en su clase de prueba, se llamará después de cada método de prueba

    • Si su clase de prueba contiene el método suite(), se llamarán todos los casos de prueba devueltos por este método.

  • JUnit4

    • TestNG utilizará el corredor org.junit.runner.JUnitCore para ejecutar los casos de prueba.

 

3. Prueba de llamada en el programa

Es fácil llamar a TestNG desde su propio programa:​​​​​​​​

TestListenerAdapter tla = new TestListenerAdapter();TestNG testng = new TestNG();testng.setTestClasses(new Class[] { Run2.class });testng.addListener(tla);testng.run();

    El ejemplo crea un objeto TestNG y ejecuta la clase de prueba Run2. También agrega un TestListener. Puede usar la clase de adaptador org.testng.TestListenerAdapter o implementar org.testng.ITestListener usted mismo. La interfaz contiene varios métodos de devolución de llamada que pueden rastrear cuándo comenzó la prueba, cuándo tuvo éxito, cuándo falló, etc.

    Del mismo modo, puede invocar TestNG en el archivo testng.xml o crear un archivo testng.xml ficticio usted mismo. Se pueden utilizar las clases del paquete org.testng.xml: XmlClass, XmlTest, etc. Cada una de estas clases corresponde a sus etiquetas XML.

    Suponga que desea generar los siguientes archivos virtuales:

<suite name="TmpSuite" >  <test name="TmpTest" >    <classes>      <class name="test.failures.Child"  />    <classes>    </test></suite>

    Puedes usar el siguiente código:

XmlSuite suite = new XmlSuite();suite.setName("TmpSuite"); XmlTest test = new XmlTest(suite);test.setName("TmpTest");List<XmlClass> classes = new ArrayList<XmlClass>();classes.add(new XmlClass("test.failures.Child"));test.setXmlClasses(classes) ;

    Este XmlSuite se puede pasar a TestNG:​​​​​​

List<XmlSuite> suites = new ArrayList<XmlSuite>();suites.add(suite);TestNG tng = new TestNG();tng.setXmlSuites(suites);tng.run();

    Bienvenido a prestar atención a mi cuenta pública de WeChat [Test Memo], y ver más habilidades y conocimientos de prueba. Aprendamos y comuniquemonos juntos~

おすすめ

転載: blog.csdn.net/hashsabr/article/details/114005940