Создать один шаг настройки в Locust? - PullRequest
0 голосов
/ 28 декабря 2018

Здравствуйте. Я пытаюсь выполнить некоторое тестирование баланса нагрузки для созданного мной RESTful-приложения для фляги.Я использую Locust .

Каждый порожденный пользователь имеет метод on_start.Я хотел бы создать ресурсы на клиенте ONCE и сделать так, чтобы каждая «пользовательская» задача запрашивала этот ресурс.

class UserBehavior(TaskSet):

    def on_start(self):
    """ on_start is called when a Locust start before
        any task is scheduled
    """
    self.client.post("/resources/", json=RESOURCE_1, headers=headers_with_auth)

    @task(1)
    def profile(self):
        self.client.get("/resources/", json={})

class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 5000
    max_wait = 9000 

Это попытается создать ресурс для КАЖДОГО пользователя.Это не удастся, потому что ресурс должен быть уникальным.

Я пытался:

class UserBehavior(TaskSet):

    def run(self, *args, **kwargs):
        self.client.post("/resources/", json=RESOURCE_1, headers=headers_with_auth)
        super().run(args, kwargs)

Но, похоже, это также работает для каждого пользователя.Есть ли способ создать один шаг установки, используя self.client?Спасибо

1 Ответ

0 голосов
/ 31 декабря 2018

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

class WebsiteUser(HttpLocust):
    def setup(self):
        client = clients.HttpSession(base_url=self.host)
        client.post("/resources/", json=RESOURCE_1, headers=headers_with_auth)
    task_set = UserBehavior
    min_wait = 500
    max_wait = 900
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...