Нагрузочное тестирование саранчи - изменить скорость вылупления с секунд на минуты? - PullRequest
1 голос
/ 13 июля 2020

Я хотел бы смоделировать шипастый трафик c, чтобы, например:

  • в первые 5 минут было только 50 пользователей (мгновенный вывод 50 за раз T0)
  • затем с 5-й по 10-ю минуту у нас будет 100 пользователей (мгновенный вывод +50 при T+5)
  • затем 150 (мгновенный вывод +50 при T+10)
  • et c.

Можно ли создать равное количество пользователей, но вместо того, чтобы делать это каждую секунду, менять это каждые xx минут?

1 Ответ

3 голосов
/ 13 июля 2020

Такой встроенной функции не существует (https://github.com/locustio/locust/issues/1353 может решить эту проблему, если она когда-либо будет реализована)

Один из способов решения проблемы - сразу создать всех ваших пользователей ( используя частоту появления что-то вроде 100 / с), и пусть они спят, пока не придет время бежать:

import time
start = time.time()

class User1(HttpUser):
    @task
    def mytask(self):
        # do actual task

class User2(HttpUser):
    @task
    def mytask(self):
        while time.time() - start < 300:
            time.sleep(1)
        # do actual task

class User3(HttpUser):
    @task
    def mytask(self):
        while time.time() - start < 600:
            time.sleep(1)
        # do actual task

...

Вы, вероятно, можете сделать что-нибудь умное и объединить все это в один класс, но я оставьте это как упражнение :)

...