«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу использовать Cucumber с параллельным выполнением, чтобы ускорить мои BDD-тесты?

Как я могу использовать Cucumber с параллельным выполнением, чтобы ускорить мои BDD-тесты?

Опубликовано 1 ноября 2024 г.
Просматривать:394

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

Параллельное выполнение файлов функций Cucumber

Введение

В современных средах тестирования параллельное выполнение тестов может значительно повысить эффективность и скорость процессов тестирования. Cucumber, популярная среда разработки на основе поведения (BDD), позволяет параллельно выполнять файлы функций.

Подход на основе плагинов

Чтобы добиться параллельного выполнения в Cucumber, вы можете использовать команду огурца- jvm-параллельный-плагин. Этот плагин динамически создает классы запуска тестов, которые могут выполняться параллельно.

Конфигурация

  1. Добавьте плагин в pom.xml:

  com.github.temyers
  cucumber-jvm-parallel-plugin
  2.1.0
  1. Настройте плагин в 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
      
    
  

Вызов сгенерированных классов бегунов

Добавьте плагин Maven Surefire для параллельного вызова сгенерированных классов бегунов:


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

Общий веб-драйвер

Для параллельного выполнения тестов экземпляр WebDriver должен быть общим, а не закрываться явно в тестах. Класс SharedDriver достигает этого:

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

Дополнительные рекомендации

  • Параллельное выполнение и сетка: Для оптимальной производительности используйте сетку с достаточным количеством узлов (браузеры, зарегистрированные в хабе).
  • Память концентратора: Увеличьте размер пула (например, -DPOOL_MAX=512). для установок Hub с большим количеством узлов (50 ).
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3