首页 > 解决方案 > 使用@tag 禁用/启用任务时的空闲用户

问题描述

我有 2 个用户,每个用户都分配了一组特定的任务集。当我使用 --tag 选项运行 locust 并且只选择了 1 个任务集时,第二个用户将没有任何任务要运行。它会引发错误Exception: No tasks defined on AdminUser...请参阅下面的示例代码:

@tag('AdminPage1')
class AdminPage1(SequentialTaskSet):
    @task
    def admin_task1(self):
        ...
    ...

@tag('UserPage1')
class UserPage1(SequentialTaskSet):
    @task
    def admin_task1(self):
        ...
    ...
    
class AdminUser(HttpUser):
    tasks = [AdminPage1]
  
class EndUser(HttpUser):
    tasks = [UserPage1]

$ locust --users 2 --tag UserPage1

我应该以另一种方式使用标签功能吗?我需要的是能够选择在执行时执行哪些任务。我可以看到消除错误的一种方法是对所有任务集仅使用 1 个用户类。

标签: locust

解决方案


当 locust 检测到在 Locust User 类中没有定义任务属性时会引发该错误,但在这种情况下,我认为这是因为 TaskSet 标签被命令行参数上指定的标签过滤,也没有检查是否存在没有可用于用户和任务集的标签

从我的 PoV 来看,这是一个错误,如果您在https://github.com/locustio/locust/issues报告它会更好


推荐阅读