locust 时间控制
wait_time:等待时间,是指用户在每个任务执行后等待多少时间,等待时间可以促使性能测试更贴近实际中的场景,单位为秒。例如wait_time = between(2, 5)表示等待2-5秒之间,选择的值是随机的
locust任务等待主要有三种方式,分别是constant
、between
、constant_pacing
.
constant(2) # 任务执行完毕等待2秒开始下一任务。
between(1,7) # 任务执行完毕等待1-7秒(中间随机取值)开始下一任务
constant_pacing(2) # 设置任务启动总得等待时间,若任务耗时超过该时间,则任务结束后立即执行下一任务;若任务耗时不超过该时间,则等待达到该时间后执行下一任务。
【
constant_throughput自适应时间,以确保任务每秒最多运行 X 次。
constant_pacing自适应时间,确保任务(最多)每 X 秒运行一次(它是constant_throughput的数学反转)
】
例如,如果您希望 Locust 在峰值负载下每秒运行 500 次任务迭代,则可以使用 wait_time = constant_throughput(0.1) 和用户计数 5000。
等待时间只能限制吞吐量,不能启动新用户以达到目标。因此,在我们的示例中,如果任务迭代的时间超过 10 秒,则吞吐量将小于 500。
等待时间在任务执行后应用,因此,如果您的生成率/斜坡上升率较高,则最终可能会在升级期间超过目标。
等待时间适用于任务,而不是请求。例如,如果您指定 wait_time = constant_throughput(2) 并在任务中执行两个请求,则您的请求速率/RPS 将为每位用户 4。
https://www.csdn.net/tags/MtTaEgysNjE0NDk2LWJsb2cO0O0O.html
测试 :
constant:
constant(xx) xx秒内运行完成user个用户
constant(10) user=20, rate =4 , 16:10:49开始每秒运行4个用户, 16:10:53运行完成20个用户;16:10:59重新开始每秒4个用户。
web页面停止后new start 会1秒运行完20个用户,隔10秒运行1次,如果用户量过大,可能会看不出隔10s运行一次了。
constant(2) user=20, rate =4 , 每2秒内运行完成20个用户。
constant_pacing:
constant_pacing(10),users=3,rate =1 , (从17:35:11 开始 1秒运行完成3个用户,17:35:21再次运行3个用户)
constant_pacing(10),users=20,rate =5 , (从17:47:26开始 1秒运行完成5个用户,17:47:27运行完成5个用户, 17:47:28运行完成5个用户, 17:47:29运行完成5个用户, 17:47:36再次开始1秒运行5个用户,直到20个用户运行完成)
constant_throughput:
本文来自博客园,作者:青城杂文录,转载请注明原文链接:https://www.cnblogs.com/chenyq/p/16708200.html