无法在调试模式下运行Locust

4

最近我从旧版本的Locust (0.14.2) 切换到了1.3.1版本。以前我能够使用命令WebsiteUser().run() 在调试模式下运行并且它会在所有断点处停止。

当我尝试使用相同的命令运行新版本时,我会得到以下错误:

File "/home/user/PycharmProjects/my_test/venv/lib/python3.7/site-packages/locust/user/users.py", line 210, in init super().init(*args, **kwargs) TypeError: init() missing 1 required positional argument: 'environment'

我确定可以像之前的版本一样调试新版本,但我做错了什么?

环境

  • 操作系统:Ubuntu 18.04
  • Python版本:3.7.4
  • Locust版本:1.3.1
  • 您运行的Locust命令行:WebsiteUser().run()
  • Locust文件内容:

locustfile.py:

class UserBehaviour(MyTask):

    @task
    def task_one(self):
        self.action_one()


class WebsiteUser(HttpUser):
    conf = Config()
    host = conf.host
    tasks = [UserBehaviour]
    wait_time = between(0.5, 1.5)

if __name__ == "__main__":
    WebsiteUser().run()

my_task.py:

class MyTask(BaseTaskSet):

    def action_one(self):
        self.client.get('dummy_path')
3个回答

8

Locust 1.0+对于将Locust用作库提供了更加强大的支持。这使得在使用Locust时拥有了更多的灵活性和个性化定制,但也因此出现了一些破坏性变化(这也是1.0版本的原因之一)。你遇到的问题是Locust现在要求所有Users及相关类都需要一个环境。你可能想要做的是:

if __name__ == "__main__":
    from locust.env import Environment
    my_env = Environment(user_classes=[WebsiteUser])
    WebsiteUser(my_env).run()

非常感谢。这修复了一切! - desmo

1

你正在调用

class WebsiteUser()

没有HttpUser参数。

您需要像这样使用:

class WebsiteUser(HttpUser)

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接