在 Locust 中创建一个设置步骤?
Create a single setup step in Locust?
您好,我正在尝试为我创建的 RESTful flask 应用程序做一些负载平衡测试。我正在使用 Locust.
生成的每个用户都有一个 on_start
方法。我想在客户端上创建一次资源,并让每个 "user" 任务查询该资源。
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
创建单个设置步骤?谢谢
这行得通,只是在设置中创建了我自己的客户端,并且仅在集群生成时调用一次
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
您好,我正在尝试为我创建的 RESTful flask 应用程序做一些负载平衡测试。我正在使用 Locust.
生成的每个用户都有一个 on_start
方法。我想在客户端上创建一次资源,并让每个 "user" 任务查询该资源。
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
创建单个设置步骤?谢谢
这行得通,只是在设置中创建了我自己的客户端,并且仅在集群生成时调用一次
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