Locust — как передать другой адрес хоста

#locust

#locust

Вопрос:

У нас есть две задачи в одном классе, обе указывают на разные хосты.

Пример: первая задача (создать новый токен), указывающий на хост — HTTP://xyz.abc.new Вторая задача (создать новый токен-старый), указывающий на хост- HTTP://xyz.abc.old

 import time
from locust import User, HttpUser, task, between, SequentialTaskSet

class LoginTaskSet(SequentialTaskSet):

@task
def generate_token(self):
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}
    launch_response_new = self.client.post("/oauth2/access?grant_type=passwordamp;username=abcd@xyz.comamp;password=SWr5q3ghhhSd", headers=headers,name = "Create a new token")
    print("Launch - Response body: {}".format(launch_response_new.text))

@task
def generate_old_token(self):
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}
    launch_response_old = self.client.post("/oauth/access?grant_type=passwordamp;username=abcd@xyz.comamp;password=SWr5q3ghhhSd", headers=headers,name = "Create a new token- old")
    print("Launch - Response body old: {}".format(launch_response_old.text))
   
class Login(HttpUser):
tasks = [LoginTaskSet]
wait_time = between(1, 2)
  

Как отправлять значения хоста как часть каждого запроса? Как запустить locust без передачи значения хоста?

Ответ №1:

Вы можете указать ему полный URL-адрес в своих клиентских вызовах. Он должен использовать только host тот, который вы ему даете, когда начинаются ваши конечные / точки. Так что вместо того, чтобы просто "/oauth2/…" делать "http://xyz.abc.new/oauth2/..." .