locust 时间控制

wait_time:等待时间,是指用户在每个任务执行后等待多少时间,等待时间可以促使性能测试更贴近实际中的场景,单位为秒。例如wait_time = between(2, 5)表示等待2-5秒之间,选择的值是随机的

locust任务等待主要有三种方式,分别是constantbetweenconstant_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个用户运行完成)

服务未停止,web页面停止stop后再次new tests 不会走前5s的流程了。

constant_throughput

设置1秒运行用户数 = throughput(1)* user,设置的1秒运行用户数过大,1s处理不完会持续到下一秒
constant_throughput(1) user=20, rate =4 , 前5s,每1s递增1*4个用户;后面每秒20个用户;
constant_throughput(0.5) user=20, rate =4 , 每2秒运行完20个用户;
constant_throughput(2) user=20, rate =5 , 前5s,每秒递增2*5个用户;后面每1秒运行完40个用户;
服务未停止,web页面停止stop后再次new tests 不会走前5s的流程了。
 
posted @ 2022-09-19 17:31  青城杂文录  阅读(1056)  评论(0编辑  收藏  举报