无法从 'Locust' 库导入名称 'User'

Cannot import name 'User' from 'Locust' library

我是 Locust 的新手,几天前才刚开始修修补补。

之前我是按照别人的例子使用的:

class WebsiteUser(HttpLocust):
   # Do stuff

但在阅读了更多文档后,我尝试使用 User class,现在当我尝试导入上述 class:

时出现错误

我只是 copy/pasted 来自 docs 的示例,以确保我没有任何拼写错误:

from locust import User, TaskSet, task, between

class MyTaskSet(TaskSet):
    @task
    def my_task(self):
        print("executing my_task")

class MyUser(User):
    tasks = [MyTaskSet]
    wait_time = between(5, 15)

回复:

local_1          | [2020-05-07 00:54:07,494] c8343450b35a/ERROR/stderr: File "/src/locustfile.py", line 153, in <module>
local_1          | [2020-05-07 00:54:07,495] c8343450b35a/ERROR/stderr: 
local_1          | [2020-05-07 00:54:07,495] c8343450b35a/ERROR/stderr: from locust import User, TaskSet, task, between
local_1          | [2020-05-07 00:54:07,495] c8343450b35a/ERROR/stderr: 
local_1          | [2020-05-07 00:54:07,495] c8343450b35a/ERROR/stderr: ImportError
local_1          | [2020-05-07 00:54:07,495] c8343450b35a/ERROR/stderr: :
local_1          | [2020-05-07 00:54:07,495] c8343450b35a/ERROR/stderr: cannot import name 'User'

注意:我是 运行 一只装在 docker 容器里的蝗虫。如果我切换回使用:

class WebsiteUser(HttpLocust):
    task_set = UserBehaviour # class UserBehaviour(TaskSet):
    wait_time = between(5.0, 9.0)

一切正常。

这是我正在使用的requirements.txt

locustio
influxdb==5.3.0

我使用的是最新版本的 locust docker 图片 locustio/locust:0.14.6 所以一切都应该是最新的。

  1. 您认为这是文档的问题并且应该对其进行更新,还是我遗漏了什么并且是我的错?
  2. 我还注意到有一个 Locust class 可以导入,它的行为方式似乎与 User class 相同,我没有虽然没有看到任何会提到 Locust class 的文档...,有人知道吗?

https://docs.locust.io/en/latest/ 处的文档引用了 Locust 1.0(目前可直接从 github 获得并作为预发布包),其中所有 Locust 类重命名 User.

当前的 "stable" 包 (0.14.6) 记录在此处:https://docs.locust.io/en/stable/

希望这能解释您的情况。

有关更改的更多信息,请参阅更改日志https://docs.locust.io/en/latest/changelog.html