官方Locustio文档介绍了如何编写简单的Locust任务,这些任务可以无限运行。
无法找到如何运行持续指定时间负载的信息,使测试在指定时间间隔后自动停止。
我不需要通过Web界面来实现,使用命令行/代码选项将会更好。
官方Locustio文档介绍了如何编写简单的Locust任务,这些任务可以无限运行。
无法找到如何运行持续指定时间负载的信息,使测试在指定时间间隔后自动停止。
我不需要通过Web界面来实现,使用命令行/代码选项将会更好。
此回答已过时。现在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个请求后,应该终止测试。
也许现在回答已经太晚了,但对于未来的某个人可能会有所帮助。
当使用 --headless 选项运行 Locust 时,现在支持 -t
或 --run-time
选项来指定持续时间。来自 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
Locust现在支持运行时参数--run-time=1h20m
。我从主分支安装了Locust。(参见GitHub问题)。我认为此功能在0.9版本中正式发布。
--num-requests
已被移除
请参见 https://github.com/locustio/locust/pull/656 - Vafliik虽然我来晚了,但是我找到了以下内容可用于停止测试,希望能对你有所帮助。
stop_timeout = 20
在你的蝗虫类中。
哦,它接受以秒为单位的值。
Locust
或HttpLocust
的负载测试类中添加stop_timeout=20
。 - Sylhare通过抛出StopLocust异常,可以停止单个绿色线程("蝗虫"),因此您可以在任务中添加一个保护程序来检查时间。
这是未记录的行为,可能会在将来更改,但在0.7.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