Тесты на огурец не проводятся параллельно - PullRequest
0 голосов
/ 15 апреля 2020

Я новичок в области тестирования огурцов. Моя цель - запускать файлы сценариев параллельно, используя Junit и Maven. Я выполнил следующие действия: https://cucumber.io/docs/guides/parallel-execution/

У меня есть два файла функций

Функция 1:

    Feature: Scenarios feature file One

  Scenario: Scenario Number One
    When request is sent to fetch data with user one
    Then check the result

Функция 2:

Feature: Scenarios feature file One

      Scenario: Scenario Number Two
        When request is sent to fetch data with user two
        Then check the result

У меня также есть следующий файл бегуна:

@RunWith(Cucumber.class)
@CucumberOptions(features = { "classpath:features" },
        strict = true,
        glue = {"com.bfm.integration.cucumber.step"},
        plugin = {"pretty", "html:target/report/cucumber", "json:target/report/cucumber/cucumber.json"},
        tags = {"not @Disabled"}
        )
public class CucumberTests {
}

Мой POM выглядит следующим образом:

    <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>         
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <parallel>methods</parallel>
                        <useUnlimitedThreads>true</useUnlimitedThreads>
                    </configuration>
                </plugin>
       </plugins>  
 <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>4.4.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>4.4.0</version>
            <scope>test</scope>
        </dependency>

Когда я запускаю огурец Тесты mvn clean install, оба Scenar ios работают с разными потоками. Но я бегу, используя созданный файл бегуна (CucumberTests), и оба запускаются в одном потоке. Как мне заставить их работать с разными потоками, используя класс бегуна?

1 Ответ

0 голосов
/ 15 апреля 2020

Если вы хотите запустить это параллельно с помощью класса Test, тогда класс теста должен быть расширен до TestNG, попробуйте это

public class CucumberTests  extends AbstractTestNGCucumberTests{

    @Override
    @DataProvider(parallel = true)
    public Object[][] scenarios() {
        return super.scenarios();
    }
}

Вы использовали подход методов параллельно - с плагином - есть также опция классов AndMethods, изучите ее

<configuration>
    <parallel>classesAndMethods</parallel>
    useUnlimitedThreads>true</useUnlimitedThreads>
</configuration>
...