"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo utilizar Cucumber con ejecución paralela para acelerar mis pruebas BDD?

¿Cómo puedo utilizar Cucumber con ejecución paralela para acelerar mis pruebas BDD?

Publicado el 2024-11-01
Navegar:473

How can I use Cucumber with parallel execution to speed up my BDD tests?

Ejecución de archivos de funciones de Cucumber en paralelo

Introducción

En los entornos de prueba modernos, la ejecución de pruebas en paralelo puede mejorar significativamente la eficiencia y la velocidad de los procesos de prueba. Cucumber, un popular marco de desarrollo basado en el comportamiento (BDD), permite la ejecución paralela de archivos de funciones.

Enfoque basado en complementos

Para lograr la ejecución paralela en Cucumber, puede utilizar el marco de desarrollo basado en el comportamiento (BDD) complemento-paralelo-jvm. Este complemento crea dinámicamente clases de ejecutores de pruebas que se pueden ejecutar en paralelo.

Configuración

  1. Agregue el complemento a pom.xml:

  com.github.temyers
  cucumber-jvm-parallel-plugin
  2.1.0
  1. Configurar el complemento en pom.xml:

  com.github.temyers
  cucumber-jvm-parallel-plugin
  2.1.0
  
    
      generateRunners
      generate-test-sources
      
        generateRunners
      
      
        foo, bar
        ${project.build.directory}/generated-test-sources/cucumber
        src/test/resources/features/
        target/cucumber-parallel
        json
      
    
  

Invocar clases de ejecutor generadas

Agregue un complemento Maven Surefire para invocar las clases de ejecutor generadas en paralelo:


  org.apache.maven.plugins
  maven-surefire-plugin
  2.19
   
    5
    true
    
      **/*IT.class
    
  

WebDriver compartido

Para ejecutar pruebas en paralelo, la instancia de WebDriver debe compartirse y no cerrarse explícitamente dentro de las pruebas. La clase SharedDriver logra esto:

public class SharedDriver extends EventFiringWebDriver {
    private static WebDriver REAL_DRIVER = null;

    static {
        Runtime.getRuntime().addShutdownHook(CLOSE_THREAD);
    }

    public SharedDriver() {
        super(CreateDriver());
    }

    public static WebDriver CreateDriver() {
        WebDriver webDriver;
        if (REAL_DRIVER == null)
            webDriver = new FirefoxDriver();
        setWebDriver(webDriver);
        return webDriver;
    }
}

Consideraciones adicionales

  • Ejecución paralela y grid: Para un rendimiento óptimo, utilice un grid con suficientes nodos (navegadores registrados en el hub).
  • Memoria del concentrador: Aumente el tamaño del grupo (p. ej., -DPOOL_MAX=512) para instalaciones de concentrador con una gran cantidad de nodos (50).
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3