你能为 Locust 中的 TaskSet(s) 设置任务比率 Python
Can you set a task ratio for TaskSet(s) in Locust Python
class UserBehavior1(TaskSet):
@task
def task1:...
@task
def task2:...
class UserBehavior2(TaskSet):
@task
def task1:...
@task
def task2:...
class User(HttpUser):
wait_time = between(n,m)
host = 'https://example.com'
tasks = [UserBehavior1, UserBehavior2]
有没有办法在 Locust 中指定 TaskSet(s) 的比率?我知道 @task 装饰器接受了一个额外的参数来增加重量,但我不确定它是否适用于这种情况。我希望每个 TaskSet 中的任务具有相同的权重,但我希望 TaskSet(s) 以不同的比率执行(假设 2:5)。
TaskSets 也可以使用与单个任务相同的 @task
装饰器来加权,如 TaskSet docs, and you can weight them that way. Alternatively, the docs also explain that the tasks attribute
中所述,可以将其定义为字典而不是列表,您可以用它们来赋予权重,甚至对于任务集。应用于您的示例代码,它看起来像这样:
class User(HttpUser):
wait_time = between(n,m)
host = 'https://example.com'
tasks = {UserBehavior1: 2, UserBehavior2: 5}
这应该会在每次生成用户时为您的任务集赋予 2:5 的权重。 TaskSet 中的各个任务都有自己的权重。
class UserBehavior1(TaskSet):
@task
def task1:...
@task
def task2:...
class UserBehavior2(TaskSet):
@task
def task1:...
@task
def task2:...
class User(HttpUser):
wait_time = between(n,m)
host = 'https://example.com'
tasks = [UserBehavior1, UserBehavior2]
有没有办法在 Locust 中指定 TaskSet(s) 的比率?我知道 @task 装饰器接受了一个额外的参数来增加重量,但我不确定它是否适用于这种情况。我希望每个 TaskSet 中的任务具有相同的权重,但我希望 TaskSet(s) 以不同的比率执行(假设 2:5)。
TaskSets 也可以使用与单个任务相同的 @task
装饰器来加权,如 TaskSet docs, and you can weight them that way. Alternatively, the docs also explain that the tasks attribute
中所述,可以将其定义为字典而不是列表,您可以用它们来赋予权重,甚至对于任务集。应用于您的示例代码,它看起来像这样:
class User(HttpUser):
wait_time = between(n,m)
host = 'https://example.com'
tasks = {UserBehavior1: 2, UserBehavior2: 5}
这应该会在每次生成用户时为您的任务集赋予 2:5 的权重。 TaskSet 中的各个任务都有自己的权重。