使用Locust实现每秒预定义请求数的负载测试可行性咨询
Locust适配该场景的结论与实现方案
- 明确结论:Locust完全适配你提到的静态、可重复请求负载测试场景,自定义负载模型的
tick方法可以精准实现每秒按预定义数量发起请求的需求。 - 具体实现逻辑:
- 先将你现有分:秒格式的时间戳字典转换为以总秒数(整数,0~300对应5分钟时长)为键的映射,同时可以提前把每个秒对应的URL路径存入全局队列,保证请求内容和顺序完全匹配生产日志。
- 自定义
LoadShape类,在tick方法中获取当前测试已运行的秒数,匹配到该秒需要发起的请求数后返回对应参数即可:你不需要关心总用户数,只需要把用户生成速率spawn_rate设为该秒需要的请求数,同时把用户数上限设为不低于你最大的每秒请求数(比如36)即可。 - 把
HttpUser的等待时间wait_time设为0,用户发起一次请求后直接终止运行,避免多余请求产生,保证每秒钟的请求量完全符合预设值。
- 可重复性保障:每次测试启动前重新初始化URL队列、重置测试计时,所有请求的发起时间、路径都和生产提取的日志完全一致,不同测试运行之间的流量差异可以忽略,完全满足你调整数据库参数后做指标对比的要求。
内容的提问来源于stack exchange,提问作者JK Laiho
相关产品推荐
相关产品推荐

