Как сгруппировать некоторые функции в определенном потоке и запустить его параллельно в KarateDSL - PullRequest
0 голосов
/ 24 ноября 2018

Теперь я использую karatedsl для тестирования моего REST-API и хочу запустить некоторые функции параллельно. Например, у меня есть 5 функций: функция 1, функция 2, функция 3, функция 4 и функция 5 ... Каксгруппировать эти функции и запустить его параллельно в определенных потоках, например, я хочу запустить функцию 1 и функцию 2 в потоке 1, функцию 3 и 4 в потоке 2 и функцию 3 в потоке 3 ???

1 Ответ

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

До каратэ 0.8.0 вы сможете параллельно выполнять тесты на уровне функций (1 функция на каждый поток).

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

Здесьпример из документации по каратэ:

@CucumberOptions(tags = {"@smoke"})
public class TestParallel {

    @Test
    public void testParallel() {
        KarateStats stats = CucumberRunner.parallel(getClass(), 5, "target/surefire-reports");
        assertTrue("scenarios failed", stats.getFailCount() == 0);
    }

}

Используя этот параллельный бегун, вы можете указать желаемое количество потоков (, равное 5 в приведенном выше примере ).

Подробнее о параллельном выполнении здесь -> Параллельное выполнение в каратэ

Группировка объектов:

Вы можете сгруппировать файл объектов, используя tagsнапример @<tag_name>,

например:

@smoke
Feature:
    Scenario:
       * print "Smoke"

аналогично, вы можете добавить этот тег ко всем функциям, которые вы хотите сгруппировать для выполнения.

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

Подробнее о тегах: Теги / группировки

Итак, вы можете определить группировку по тегу и параллельное выполнение по потокуs НО Вы не можете определить, какой поток должен запускать какую функцию, IMO это выглядит бессмысленно.

Примечание: Если вы планируете использовать 0.9.0, вы сможете запуститьпараллельные тесты на уровне сценария (каждая функция будет разбита на сценарии и запущена как 1 сценарий на поток), и вместо CucumberOptions вам придется использовать KarateOptions

Подробнее об изменениях каратэ 0.9.0: Запланированные амортизации

...