Как выполнить тестовые случаи с огурцом параллельно, используя Grid?

Проведя достаточное количество исследований о том, как параллельно запускать тестовые примеры Cucumber, я нашел следующую очень полезную статью по этому вопросу:

https://www.opencredo.com/2013/07/02/running-cucumber-jvm-tests-in-parallel/

Эта статья содержит довольно хорошую информацию, которая поможет вам начать работу с многопоточной средой, включая некоторый код, который вы можете загрузить с Github.

https://github.com/tristanmccarthy/Cucumber-JVM-Parallel

Если я правильно понимаю статью, драйвер должен быть настраиваемым для работы с Grid, что позволяет запускать несколько тестовых случаев на нескольких устройствах. После некоторого тестирования кода с использованием chromedriver он работает, как описано в статье. Однако после настройки для работы с Grid тестовые случаи больше не выполняются параллельно. Вместо этого они выполняются последовательно.

В настоящее время у меня Grid настроен на 1 концентратор и 2 узла. Каждый узел может иметь максимум 2 сеанса в любой момент времени.

Примечание: без Cucumber я могу успешно развернуть несколько тестовых случаев на нескольких устройствах, поэтому я не думаю, что проблема связана с моей настройкой сетки.

Вот пример кода, связанного с веб-драйвером:

static {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setJavascriptEnabled(true);
    capabilities.setBrowserName("chrome");
    capabilities.setPlatform(Platform.ANY);
    try {
        REAL_DRIVER = new RemoteWebDriver(new URL("http://xxx.xxx.xxx.xxx:4444/wd/hub"), capabilities);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    REAL_DRIVER.manage().timeouts().pageLoadTimeout(3000, TimeUnit.SECONDS);
    REAL_DRIVER.manage().window().maximize();
    Runtime.getRuntime().addShutdownHook(CLOSE_THREAD);
}

public SharedDriver() {
    super(REAL_DRIVER);
}

@Override
public void close() {
    if (Thread.currentThread() != CLOSE_THREAD) {
        throw new UnsupportedOperationException(
                "You shouldn't close this WebDriver. It's shared and will close when the JVM exits.");
    }
    super.close();
}

Я подозреваю, что если вы используете более одного типа браузера, вы сможете запускать тестовые случаи на нескольких устройствах (1 браузер на устройство), но в моем случае я использую драйвер Chrome. Кто-нибудь знает, что может помешать распределению тестовых случаев между несколькими устройствами, или лучше понимает, как Grid работает с огурцом? Пожалуйста, поделитесь любыми статьями или информацией, связанной с этой проблемой.

Ответы на вопрос(1)

Ваш ответ на вопрос