【问题标题】:Locust : How to make locust run for a specific amount of time蝗虫:如何使蝗虫运行特定的时间
【发布时间】:2014-10-13 02:05:08
【问题描述】:

官方locustio documentation 讲述了如何编写无限期运行的简单蝗虫任务。

无法找出如何运行持续特定时间的负载,以便测试将在指定的时间间隔后自动停止。

我不需要从 Web 界面使用它,命令行/代码选项会很棒。

【问题讨论】:

  • 显然在web界面上你给了一些用户和一个费率,所以我想时间是一个部门的问题。
  • 可能是我完全一无所知,或者我的问题表述有误,我需要运行负载一段特定的时间,然后测试应该自动停止 - 这可能从网络界面

标签: python load-testing locust


【解决方案1】:

现在回答可能为时已晚,但将来可能会对某人有所帮助。 Locust 现在支持 -t--run-time 选项来指定使用 --headless 选项运行 Locust 时的持续时间。来自locust --help

-t RUN_TIME, --run-time=RUN_TIME
                        Stop after the specified amount of time, e.g. (300s,
                        20m, 3h, 1h30m, etc.). Only used together with --no-
                        web

【讨论】:

    【解决方案2】:

    这个答案已经过时了。 Locust 现在有一个 -t / --run-time 参数用于指定运行时间。见https://docs.locust.io/en/stable/running-without-web-ui.html?highlight=run-time#setting-a-time-limit-for-the-test

    我最近开始自己使用 locust,不幸的是 locust 0.7.1 没有提供基于时间长度终止测试的方法。

    但是,它确实提供了一种根据已发出的请求数终止测试的方法。如果您使用 CLI 界面运行 locust,您可以指定它在处理指定数量的请求后停止执行。来自locust --help 输出:

    -n NUM_REQUESTS, --num-request=NUM_REQUESTS
           Number of requests to perform. Only used together with --no-web
    

    因此,您可以使用以下内容开始会话:

    # locust --clients=20 --hatch-rate=2 --num-request=500
    

    一旦处理了 500 个请求,它应该终止测试。

    【讨论】:

    • 这个答案已经过时了。 Locust 现在有一个 -t / --run-time 参数用于指定运行时间(如其他答案所述)
    【解决方案3】:

    根据 locust 0.8.1 我的解决方案,我们无法定义它将在 CLI 模式下运行多长时间

    timeout $TIME locust -f $YOUR_FILE --host=$YOUR_HOST_TARGET --no-web
    

    时间可以是分钟或秒

    timeout 10s locust -f $YOUR_FILE --host=$YOUR_HOST_TARGET --no-web
    timeout 10m locust -f $YOUR_FILE --host=$YOUR_HOST_TARGET --no-web
    

    【讨论】:

      【解决方案4】:

      locust 现在支持运行时参数--run-time=1h20m。我从主分支安装了蝗虫。 (见 GitHub issue)。我认为这个功能是在 0.9v 正式发布的。

      【讨论】:

      • 啊我想要这个功能,虽然 0.9 还没有发布,也没有在 GitHub 中标记,所以从master 安装仍然是唯一的选择......解释了为什么我在文档中没有看到这个在线
      • 这应该是现在的有效答案,因为--num-requests 已被删除参见github.com/locustio/locust/pull/656
      • 此选项仅与 --no-web 参数一起使用。
      【解决方案5】:

      参加聚会已经很晚了,但我偶然发现了这个以停止测试,它可能会有所帮助。

      stop_timeout = 20 
      

      在你的蝗虫类中。

      哦,它会在 内接受它的值。

      【讨论】:

      • 要添加它,您需要将stop_timeout=20 放在继承自LocustHttpLocust 的负载测试类中
      【解决方案6】:

      可以通过抛出StopLocust 异常来停止单个greenlet(“蝗虫”),因此您可以在任务中添加一个检查时间的警卫

      这是未记录的行为,将来可能会改变,但它在 0.7.2 中有效!

      http://lookonmyworks.co.uk/2015/03/13/stopping-a-locust/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-09
        • 1970-01-01
        相关资源
        最近更新 更多