假设我在蝗虫群中有 10k 用户。我想让其中 2000 个运行任务集 A 中的任务,其中 2000 个运行任务集 B 中的任务,其中 6000 个运行任务集 C 中的任务,其中每个任务集都有自己的频率。
有没有办法配置这个?我尝试在运行时设置 self.tasks,但它似乎不起作用。
您可以为您的蝗虫类分配权重。只需定义 3 个不同的 Locust 类(每种类型的用户一个),每个使用不同的任务集,权重分别设置为 2、2 和 6。
我认为您正在寻找的更接近于加权用户行为。请参阅http://docs.locust.io/en/latest/writing-a-locustfile.html#the-weight-attribute
要点是您可以定义和加权不同类型的用户,然后运行您的 locust 命令,并将所有用户定义为参数。
从链接粘贴以供后代使用:
class WebUserLocust(Locust):
weight = 3
....
class MobileUserLocust(Locust):
weight = 1
....
然后
locust WebUserLocust MobileUserLocust
你可以给予适当的权重来处理这个问题。@task(2) 运行两次@task(1)。请参阅下面的案例:
@task(2)
def A(self):
a()
@task(2)
def B(self):
b()
@task(6)
def C(self):
c()