我正在尝试用蝗虫自动化以下场景:
登录到应用程序(将其放入
on_start
,因此它将首先登录所有会话)并从登录调用的响应中获取令牌值。创建组织
创建用户。
我需要按所示顺序执行这些调用。
但是,如果我@task
为第 2 步和第 3 步添加,它会随机选择这些调用,这会导致我的代码中断。
有什么建议么?
我正在尝试用蝗虫自动化以下场景:
登录到应用程序(将其放入on_start
,因此它将首先登录所有会话)并从登录调用的响应中获取令牌值。
创建组织
创建用户。
我需要按所示顺序执行这些调用。
但是,如果我@task
为第 2 步和第 3 步添加,它会随机选择这些调用,这会导致我的代码中断。
有什么建议么?
使用 Locust 的TaskSequence 类:
class SequentialTasks(TaskSequence):
def on_start(self):
# login to application and get token value from response of login call
@seq_task(1) # the first thing to do
@task(n) # do it n times
def create_org(self):
# create org
@seq_task(2) # the second thing to do
@task(n) # do it n times
def create_user(self):
# create user
您可以在一个任务中完成所有操作。单个任务中的单个 HTTP 调用没有限制(on_start
如果您愿意,甚至可以将其全部放入)。
class MyTaskSet(TaskSet):
def on_start(self):
// do login
self.token = ...
@task
def create_task(self):
// create org
self.client.post(...)
// crete user
self.client.pos(...)