Locust/Python:在 SequentialTaskSet 中使用 if 条件拆分任务数组
Locust/Python: Splitting a tasks array with if conditions in a SequentialTaskSet
我是 Locust 的新手,一般来说 Python。我已经使用 JMeter 好几年了,我正在尝试实现与我在那里用于处理登录失败的逻辑类似的逻辑。
我想运行一个简单的场景:登录,进入文件夹,注销
我遇到问题的地方是实现这个逻辑:
如果任何登录调用失败,我不想尝试进入文件夹(避免登录后的级联失败),但我仍然想运行注销以确保没有活动会话。
我当前的 SequentialTaskSet 是这样读的,它用于执行子任务集:
class folder_enter_scalability_taskset(SequentialTaskSet):
def on_start(self):
self.tm = TransactionManager()
@task
def seedata_config(self):
seeddata = next(seeddata_reader)
self.client.username = seeddata['username']
self.client.password = seeddata['password']
tasks = [login_taskset, folder_enter_taskset, logout_taskset]
有没有办法在同一个 SequentialTaskSet 中将任务数组拆分为多个步骤?
- 始终登录
- 如果登录成功,进入文件夹
- 始终注销
感谢 phil 在评论中为我指明了正确的方向,我现在有了一个使用 try-finally 和 if-else 而不是任务数组的工作代码。希望这可以帮助其他人:
class folder_enter_scalability_taskset(SequentialTaskSet):
def on_start(self):
self.tm = TransactionManager()
@task
def seedata_config(self):
seeddata = next(seeddata_reader)
self.client.username = seeddata['username']
self.client.password = seeddata['password']
self.client.userrole = seeddata['userrole']
@task
def folder_enter_scalability(self):
try:
login_taskset.login(self)
if self.client.loginFail is False:
folder_enter_taskset.folder_enter(self)
else:
logging.error("Login failed, skipping to logout")
finally:
logout_taskset.logout(self)
如果我将它置于 try-else-finally 条件下,我无法让它跳过文件夹输入,所以我在登录任务集中添加了这个 self.client.loginFail 以支持 if-其他尝试。
它以 'False' 的形式启动,并在任务集失败的情况下翻转为 'True'。
我是 Locust 的新手,一般来说 Python。我已经使用 JMeter 好几年了,我正在尝试实现与我在那里用于处理登录失败的逻辑类似的逻辑。
我想运行一个简单的场景:登录,进入文件夹,注销
我遇到问题的地方是实现这个逻辑:
如果任何登录调用失败,我不想尝试进入文件夹(避免登录后的级联失败),但我仍然想运行注销以确保没有活动会话。
我当前的 SequentialTaskSet 是这样读的,它用于执行子任务集:
class folder_enter_scalability_taskset(SequentialTaskSet):
def on_start(self):
self.tm = TransactionManager()
@task
def seedata_config(self):
seeddata = next(seeddata_reader)
self.client.username = seeddata['username']
self.client.password = seeddata['password']
tasks = [login_taskset, folder_enter_taskset, logout_taskset]
有没有办法在同一个 SequentialTaskSet 中将任务数组拆分为多个步骤?
- 始终登录
- 如果登录成功,进入文件夹
- 始终注销
感谢 phil 在评论中为我指明了正确的方向,我现在有了一个使用 try-finally 和 if-else 而不是任务数组的工作代码。希望这可以帮助其他人:
class folder_enter_scalability_taskset(SequentialTaskSet):
def on_start(self):
self.tm = TransactionManager()
@task
def seedata_config(self):
seeddata = next(seeddata_reader)
self.client.username = seeddata['username']
self.client.password = seeddata['password']
self.client.userrole = seeddata['userrole']
@task
def folder_enter_scalability(self):
try:
login_taskset.login(self)
if self.client.loginFail is False:
folder_enter_taskset.folder_enter(self)
else:
logging.error("Login failed, skipping to logout")
finally:
logout_taskset.logout(self)
如果我将它置于 try-else-finally 条件下,我无法让它跳过文件夹输入,所以我在登录任务集中添加了这个 self.client.loginFail 以支持 if-其他尝试。
它以 'False' 的形式启动,并在任务集失败的情况下翻转为 'True'。