Я использую саранчу 0.14.4. Я тестирую остальные API. Я хочу смоделировать сценарий, когда пользователь войдет в приложение, а затем сделает несколько запросов GET. Например, я хочу, чтобы пользователь сделал 3 запроса GET после входа в систему. Я хочу, чтобы количество пользователей равнялось 3. В этом случае каждый пользователь должен выполнить вход и сделать запрос 3 GET, и саранча должна остановиться. Таким образом, всего 12 запросов.
Я обнаружил, что ранее была опция -n для указания номера запроса, однако ее нет в версии 0.14.4.
Я нашел похоже вопрос Однако это не работает для меня.
Вот мой фрагмент кода:
class MyTaskSet(TaskSet):
def on_start(self):
""" on_start is called when a Locust start before any task is scheduled """
self.login()
def login(self):
resp = self.client.post("https://" + hostip + "/session", auth=(username, password),verify=False)
data = json.loads(resp.text)
global session_id
session_id = data['value']
@seq_task(1)
def user_workflow(self):
for i in range(0, 1, 1):
self.get_counters()
self.get_providers()
self.get_metrics()
def get_counters(self):
self.client.get("/counters",headers={'session-id': session_id, 'Accept': 'application/json',
'Content-Type': 'application/json'})
def get_providers(self):
self.client.get("/providers",headers={'session-id': session_id, 'Accept': 'application/json',
'Content-Type': 'application/json'})
def get_metrics(self):
self.client.get("/metrics",headers={'session-id': session_id, 'Accept': 'application/json',
'Content-Type': 'application/json'})
@seq_task(2)
def done(self):
raise StopLocust()
Когда я пытаюсь запустить тест с командой
$locust -f locustfile.py --no-web -c 3 -r 3
, я получаю следующий вывод:
Type Name #reqs 50%
GET /counters 1 840
GET /metrics 1 470
GET /providers 1 480
POST /session 3 1300
None Aggregated 6 1300
Чего я хочу добиться, так это чтобы каждый пользователь выполнил вход в систему и сделал 3 запроса GET, а саранча должна остановиться, когда последний пользователь выполнит третий вызов get. Есть ли более чистый способ добиться этого?