как выполнять тестовые тесты параллельно с помощью плагина maven surefire - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь выполнить Testng параллельно с использованием плагина maven surefire.

Ниже приведена конфигурация, которую я использую:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
    <skipTests>${skipTests}</skipTests>
    <suiteXmlFiles>
        <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
    </suiteXmlFiles>
    <parallel>tests</parallel>
    <threadCount>5</threadCount>
    <systemProperties>
        <property>
            <name>testData</name>
            <value>${testData}</value>
        </property>
        <property>
            <name>testDataDelimiter</name>
            <value>${testDataDelimiter}</value>
        </property>
    </systemProperties>
    </configuration>
</plugin>

В этой конфигурации я вижу только один потокПриступая к исполнению.Может кто-нибудь предложить мне решение для параллельного выполнения тестовых тестов.

1 Ответ

0 голосов
/ 22 ноября 2018

Наиболее очевидным является использование параметра параллельного интерфейса.Возможные значения зависят от используемого поставщика тестов.Для JUnit 4.7 и более поздних версий это могут быть методы, классы, наборы, suitesAndClasses, suitesAndMethods, classesAndMethods или все.В качестве предварительного условия в тестах JUnit, бегун JUnit должен расширить org.junit.runners.ParentRunner.Если в аннотации @ org.junit.runner.RunWith не указан ни один исполнитель, предварительное условие выполнено.

Значение both устарело с момента подключения maven-surefire-plugin: 2.1.6.

Расширение параллелизма настраивается с использованием следующих параметров.Параметр useUnlimitedThreads допускает неограниченное количество потоков.Если только useUnlimitedThreads = true, параметр threadCount может использоваться с необязательным параметром perCoreThreadCount = true (по умолчанию true).Параметры useUnlimitedThreads и threadCount должны интерпретироваться в контексте значения, указанного для параллельного параметра.

Я рекомендую установить useUnlimitedThreads в значение false и вместо этого экспериментировать с threadCount.Начните с 10 и продолжайте идти вверх, пока не найдете приемлемый счетчик потоков, который не сильно нагружает ваш процессор.

Я взял это непосредственно из документации TestNG Surefire в качестве отправной точки:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M1</version>
        <configuration>
          <properties>
            <property>
              <name>parallel</name>
              <value>methods</value>
            </property>
            <property>
              <name>dataproviderthreadcount</name>
              <value>30</value>
            </property>
          </properties>
        </configuration>
</plugin>

Обратите внимание, что для параллельного выполнения методов тестирования необходимо, чтобы свойство dataproviderthreadcount и свойство parallel были установлены на methods.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...