【问题标题】:Can you set a task ratio for TaskSet(s) in Locust Python您可以在 Locust Python 中为 TaskSet(s) 设置任务比率吗
【发布时间】:2021-10-01 00:34:07
【问题描述】:
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)。

【问题讨论】:

    标签: python locust


    【解决方案1】:

    TaskSet 也可以使用与单个任务相同的 @task 装饰器进行加权,如 TaskSet docs 中所述,您可以通过这种方式对它们进行加权。或者,文档还解释说 tasks attribute 可以定义为字典而不是列表,您可以对它们赋予权重,即使对于任务集也是如此。应用于您的示例代码,它看起来像这样:

    class User(HttpUser):
        wait_time = between(n,m)
        host = 'https://example.com'
        tasks = {UserBehavior1: 2, UserBehavior2: 5}
    

    每次生成用户时,这应该为您的任务集赋予 2:5 的权重。然后,TaskSet 中的各个任务都有自己的权重。

    【讨论】:

    • 谢谢!正是我需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多