蝗虫:如何使蝗虫运行一段特定的时间

时间:2014-08-19 20:30:48

标签: python load-testing locust

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

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

我不需要从网络界面,命令行/代码选项将是伟大的。

6 个答案:

答案 0 :(得分:20)

我最近开始自己使用蝗虫,不幸的是,蝗虫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个请求,它就应该终止测试。

答案 1 :(得分:5)

可以通过抛出StopLocust异常来停止单个greenlet(“locust”),这样你就可以在你的Task中添加一个检查时间的守卫

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

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

答案 2 :(得分:4)

参加派对的时间已经很晚了,但我偶然发现了这个以阻止测试,这可能会有所帮助。

stop_timeout = 20 

在蝗虫类中。

哦,它接受中的值。

答案 3 :(得分:3)

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

答案 4 :(得分:1)

这里是我的解决方案,根据蝗虫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

答案 5 :(得分:0)

回答可能为时已晚,但将来可能对某人有所帮助。 Locust现在支持-t--run-time选项,以在使用--no-web选项运行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