Как уже отмечалось, это не то, как разрабатывается Locust, но есть способ обойти это.Вы можете ждать в задаче, а не между задачами.Исходя из вашего примера:
from locust import HttpLocust, TaskSet, task
from random import randint
class Paint(TaskSet):
def on_start(self):
self.login()
def login(self):
data = {'username': "paint", 'password': 'bucket'}
self.auth = self.client.post('/auth', data)
@task(1)
def get_red(self):
min_wait = 8000
max_wait = 8000
self.client.get("/red", headers=self.auth.request.headers['Cookie'])
self._sleep(randint(min_wait, max_wait))
@task(1)
def get_blue(self):
min_wait = 24000
max_wait = 24000
self.client.get("/blue", headers=self.auth.request.headers['Cookie'])
self._sleep(randint(min_wait, max_wait))
class PaintBucket(HttpLocust):
task_set = Paint
min_wait = 0
max_wait = 0
Конечно, если вы всегда хотите одно и то же время ожидания, вы можете просто указать это вместо min / max / random:
from locust import HttpLocust, TaskSet, task
class Paint(TaskSet):
def on_start(self):
self.login()
def login(self):
data = {'username': "paint", 'password': 'bucket'}
self.auth = self.client.post('/auth', data)
@task(1)
def get_red(self):
wait = 8000
self.client.get("/red", headers=self.auth.request.headers['Cookie'])
self._sleep(wait)
@task(1)
def get_blue(self):
wait = 24000
self.client.get("/blue", headers=self.auth.request.headers['Cookie'])
self._sleep(wait)
class PaintBucket(HttpLocust):
task_set = Paint
min_wait = 0
max_wait = 0