Параллельное выполнение нескольких сценариев

Какова наилучшая практика параллельного выполнения нескольких сценариев? Например, 30% пользователей выполняют сценарий1 и 70% пользователей2.

Является ли код ниже правильного пути или лучше иметь один сценарий с постоянным исполнением вызовов REST?

class MySimulation extends Simulation {

  val userIdsData = csv(userIdsCSV).queue



  ...



  val scenario1 = scenario("Scenario 1")

    .feed(userIdsData)

    .get(...)



  val scenario2 = scenario("Scenario 2")

    .feed(userIdsData)

    .get(...)

    .post(...)



  setUp(scenario1.inject(rampUsers(30) over (ramp seconds))

      .protocols(HttpConfig.value(baseURL)),

    scenario2.inject(rampUsers(70) over (ramp seconds))

      .protocols(HttpConfig.value(baseURL))

  )

}

Ответ 1

Все, что вы делаете, абсолютно нормально.

Как вы запускаете настройку, вы увидите, что запросы выполняются параллельно.

Ответ 2

Гатлинг будет запускать каждый элемент в SetUp параллельно, так как каждый элемент, определенный в сценарии, будет выполняться последовательно. Как видно из ссылки

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

Таким образом, ваш код выше будет работать scenario01 ramp to 30 over x seconds и scenario02 ramp to 70 over y seconds параллельно.

Ответ 3

  Вы также можете попробовать с приведенным ниже кодом.

scenario1.inject(rampConcurrentUsers(0) to (6) during(10),constantConcurrentUsers(6) during(60 seconds)),

scenario2.inject(rampConcurrentUsers(0) to (4) during(10),constantConcurrentUsers(4) during(60 seconds))