2016-12-05 4 views
3

Какова наилучшая практика параллельного выполнения нескольких сценариев? Например, 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)) 

) 

} 

ответ

3

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

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

+1

Сценарий, составленный как: 'сценарий (« Имя сценария »). Exec (Search.search, Browse.browse, Edit.edit) ' запускается параллельно? Или три компонента будут выполняться последовательно? – Sergio

+1

@Sergio Выполняется параллельно, а не в последовательности. –

+0

Спасибо. Это все еще немного сбивает с толку, когда я должен использовать идиому выше для параллельного выполнения, и когда следует использовать вместо этого отдельных «пользователей», как в: 'setUp (users.inject (atOnceUsers (1), admin.inject (atOnceUsers (1))). протоколы (httpConf)) 'Не могли бы вы уточнить? – Sergio

3

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

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

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

Смежные вопросы