23

官方locustio 文档文档讲述了如何编写无限期运行的简单 locust 任务。

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

我不需要来自 Web 界面的它,命令行/代码选项会很棒。

4

6 回答 6

23

这个答案已经过时了。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 个请求,它应该终止测试。

于 2014-09-08T00:20:50.937 回答
13

回答可能为时已晚,但将来可能对某人有所帮助。Locust 现在支持使用-t--headless--run-time选项运行 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
于 2019-04-18T12:31:00.057 回答
10

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

于 2018-03-22T15:51:00.943 回答
7

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

stop_timeout = 20 

在你的蝗虫课上。

哦,它以seconds为单位接受它的值。

于 2017-02-16T08:42:20.783 回答
6

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

这是未记录的行为,将来可能会改变,但它适用于 0.7.2!

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

于 2015-04-28T09:43:51.287 回答
2

这是我根据 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
于 2018-04-12T16:29:17.403 回答