Обратите внимание, как долго ваши симуляции сильно зависят от сценариев, которые вы запускаете - все этапы впрыска DSL контролируют , когда пользователей начинают работу, и это все.Поэтому, если у вас есть сценарии, которые работают очень долго или непредсказуемо, то сложно гарантировать что-то в точности как то, что вы указали.
В вашем примере
.inject(rampUsers(20) during (20 minutes)).protocols(httpConf)
).maxDuration(50 minutes)
вы вводите 20 пользователей равномерноболее 20 минут (так по одному каждую минуту).Если это действительно удерживается в течение 30 минут после рампы, то ваши сценарии, вероятно, зацикливаются, и пользователи останавливаются оператором maxDuration.
для замедления, вы можете изменить инъекцию на
.inject(
rampConcurrentUsers(1) to(20) during(20 minutes),
constantConcurrentUsers(20) during (30 minutes),
rampConcurrentUsers(20) to(1) during(20 minutes)
)
это даст вам такое же увеличение в течение 20 минут, затем будет продолжать вводить пользователей, когда другие закончат, чтобы поддерживать 20 одновременных пользователей в течение следующих 30 минут, а затем постепенно замедлять скорость введения в течение последних 20 минут.Однако, если ваш сценарий использует циклы, такие как .forever, для продолжения работы, это замедление не будет работать, поскольку пользователи, введенные в 1-й команде, никогда не остановятся.