Ответ 1
Все, что вы делаете, абсолютно нормально.
Как вы запускаете настройку, вы увидите, что запросы выполняются параллельно.
Какова наилучшая практика параллельного выполнения нескольких сценариев? Например, 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))
)
}
Все, что вы делаете, абсолютно нормально.
Как вы запускаете настройку, вы увидите, что запросы выполняются параллельно.
Гатлинг будет запускать каждый элемент в SetUp параллельно, так как каждый элемент, определенный в сценарии, будет выполняться последовательно. Как видно из ссылки
Определение профиля впрыска пользователей выполняется с помощью ввести метод. Этот метод принимает в качестве аргумента последовательность внедрения шаги, которые будут обработаны последовательно.
Таким образом, ваш код выше будет работать scenario01 ramp to 30 over x seconds
и scenario02 ramp to 70 over y seconds
параллельно.
Вы также можете попробовать с приведенным ниже кодом.
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))