【问题标题】:Create a single setup step in Locust?在 Locust 中创建单个设置步骤?
【发布时间】:2018-12-28 20:57:04
【问题描述】:

您好,我正在尝试对我创建的 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 创建单个设置步骤?谢谢

【问题讨论】:

    标签: python-3.x locust


    【解决方案1】:

    这行得通,只是在设置中创建了我自己的客户端,并且仅在群生成时调用一次

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      相关资源
      最近更新 更多