Саранча: как сделать саранчу на определенное количество времени

Официальная документация locustio рассказывает о том, как писать простые задачи саранчи, которые выполняются неопределенно долго.

Не удалось выяснить, как выполнять загрузку, которая длится определенное время, чтобы тест автоматически останавливался после указанного интервала.

Мне не нужен он из веб-интерфейса, опция командной строки/кода будет просто великолепна.

Ответ 1

Недавно я начал использовать саранчу, и, к сожалению, саранча 0.7.1 не дает возможности завершить тест на основе продолжительности времени.

Однако он обеспечивает способ завершения теста на основе количества запросов, которые были выпущены. Если вы запускаете саранчу, используя интерфейс CLI, вы можете указать, что она прекращает выполнение после обработки определенного количества запросов. Из вывода locust --help:

-n NUM_REQUESTS, --num-request=NUM_REQUESTS
       Number of requests to perform. Only used together with --no-web

Итак, вы можете начать сеанс с чего-то по строкам:

# locust --clients=20 --hatch-rate=2 --num-request=500

и после обработки 500 запросов он должен завершить тест.

Ответ 2

можно остановить отдельную окунь ( "саранчу" ), выбросив исключение StopLocust, чтобы вы могли добавить в свою задачу защитника, проверяет время

это недокументированное поведение и может измениться в будущем, но оно работает в 0.7.2!

http://lookonmyworks.co.uk/2015/03/13/stopping-a-locust/

Ответ 3

Довольно поздно вечеринке, но я наткнулся на это, чтобы остановить тест, это может быть полезно.

stop_timeout = 20 

в вашем классе саранчи.

О, и он принимает значение в секунды.

Ответ 4

locust теперь поддерживает параметр времени выполнения --run-time=1h20m. Я установил саранчу из основной ветки. (см. выпуск GitHub). Я думаю, что эта функция официально выпущена в 0.9v.

Ответ 5

Здесь мое решение в соответствии с саранчой 0.8.1, мы не можем определить, как долго оно будет работать в режиме CLI

timeout $TIME locust -f $YOUR_FILE --host=$YOUR_HOST_TARGET --no-web

Время может быть в минутах или секундах

timeout 10s locust -f $YOUR_FILE --host=$YOUR_HOST_TARGET --no-web
timeout 10m locust -f $YOUR_FILE --host=$YOUR_HOST_TARGET --no-web

Ответ 6

Возможно, уже слишком поздно, чтобы ответить, но может быть полезно для кого-то в будущем. Locust теперь поддерживает параметры -t или --run-time, чтобы указать продолжительность при запуске Locust с параметром --no-web. Из locust --help:

-t RUN_TIME, --run-time=RUN_TIME
                        Stop after the specified amount of time, e.g. (300s,
                        20m, 3h, 1h30m, etc.). Only used together with --no-
                        web