当前位置: 首页 > 知识库问答 >
问题:

错误:索引器错误:无法从蝗虫中的空序列中进行选择

狄宇
2023-03-14

尝试运行我的蝗虫文件时,在尝试命令蝗虫-f蝗虫文件.py--host时,我遇到了以下错误=http://localhost:8080

文件“/home/sonali/.local/lib/python3.6/site packages/蝗虫/user/task.py”,第280行,运行self.schedule_任务(self.get_next_task())文件“/home/sonali/.local/lib/python3.6/site packages/蝗虫/user/task.py”,第408行,在get_next_任务返回random.choice(sel.user.tasks)文件“/usr/lib/python3.6/random.py”,第260行,在选项索引器中('Cannot choose from a empty sequence')from None无法从空序列中选择

我的蝗虫档案如下:

from locust import HttpUser, task, between ,TaskSet

class UserBehavior(TaskSet):
    def on_start(self):
        """ on_start is called when a Locust start before 
            any task is scheduled
        """
        self.login()
    def login(self):
        self.client.post("/login",
                         {"username":"ellen_key",
                          "password":"education"})
    @task(2)
    def index(self):
        self.client.get("/")
    @task(1)
    def profile(self):
        self.client.get("/profile")
class WebsiteUser(HttpUser):
    task_set = UserBehavior
    min_wait = 5000
    max_wait = 9000

共有2个答案

谢鸿飞
2023-03-14

您在WebsiteUser类中没有定义任何任务。留档说:

此用户的行为由其任务定义。通过在方法上使用@task decorator,或者通过设置Tasks属性,可以直接在类上声明任务。

你两者都没有。

因此,在文档中更进一步,它提到了任务

Locust用户将运行的python可调用和/或TaskSet类的集合。

按照这个建议,您的代码应该如下所示:

from locust import HttpUser, task, between ,TaskSet

class UserBehavior(TaskSet):
    def on_start(self):
        """ on_start is called when a Locust start before 
            any task is scheduled
        """
        self.login()

    def login(self):
        self.client.post("/login",
                         {"username":"ellen_key",
                          "password":"education"})

    @task(2)
    def index(self):
        self.client.get("/")

    @task(1)
    def profile(self):
        self.client.get("/profile")

class WebsiteUser(HttpUser):
    tasks = [UserBehavior]
    min_wait = 5000
    max_wait = 9000

有关详细信息,请阅读留档。

郭坚壁
2023-03-14

在蝗虫1.0中,任务集已重命名为任务

在您的情况下,我建议将任务集中的所有内容直接移动到WebSiteUser上的用户中(也是1.0的一个新特性)。那么您根本不需要设置tasks/task\u set属性。

看见https://docs.locust.io/en/stable/writing-a-locustfile.html#id1 有关“任务”属性的详细信息,请参见是否仍要使用该属性。

 类似资料:
  • 我对以下应用程序有问题,我一直在railsCasts的Rails 3中进行第211集验证,但当我尝试添加类EmailFormatValidator时,会触发一个错误 模型/user.rb lib/email_format_validator.rb /controller/user.rb # GET/users/new # GET/users/new . JSON def new @ user =

  • 我已经使用创建了“CfnUserPool”对象https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_cognito/CfnUserPool.html aws文件。 我想获取UserPool的“Pool Id”。其Id值为“us-east-1_4kxxxxxx”。我使用python尝试了很多选项来获取这个值,但都没有成功。 所以我

  • 我目前有一个RESTfulWebService跑步服。我最近添加了一个过滤器,它可以执行一些auth操作,并且可以在happy path的情况下工作。但是,当我需要从这个过滤器中抛出一个错误时,它不会将异常序列化为一个漂亮的json字符串,而是抛出一个500,错误如下: 问题是,我不想在应用程序/八位字节流中写入任何内容。我的服务只使用。这在我的实际类中不是问题,我可以在这些类中指定注释。从资源主

  • 我得到了一个ui:使用actionlisteners重复一些输入元素,如果这些元素是由用户编辑的,我想更改它们的样式。 我知道,通过ui:repeat,服务器端和客户端的组件具有不同的作用域。因此,我希望获得所选的循环索引或元素的clientID来调用javascript函数来更改样式。 这对我的selectOneMenu很好,我使用ajax调用一个方法并获得正确的clientID。但是如果我在日

  • 我刚刚用,它安装在 问题是,如果我试图用获取它的版本,我会收到一个权限被拒绝的错误。 <代码> 位于路径中 和没有结果,因为找不到它。 如果重新安装:

  • 问题内容: 我一直在试图从概念上理解以下代码为何无法捕获。如果从零件中删除关键字,则它可以正常工作,因此它与Promise执行器是异步函数这一事实有关。 如果代替我们使用,则上面的代码可以正常工作。我想 _从根本_上理解为什么在这里不起作用。谢谢! 问题答案: [1:通过调用而不是使用and 语句] 通过“异步”,它们不是指功能,所以我认为它们的解释在这里不适用 他们也可以。一个简单的例子就 不能