关于Locust.io工具实际RPS<0.1时显示RPS为0的技术咨询
Locust.io低RPS显示异常的问题处理
问题明确
- 实际RPS(每秒请求数)小于0.1时,Locust面板会将RPS显示为0
- 因HTTP响应时间过长导致RPS处于0.0x区间(如0.01、0.05)时,不仅数值显示为0,对应的图表也无数据展示
根因
Locust默认的统计模块对RPS计算结果做了精度截断/取整处理,没有保留足够的小数位来呈现低于0.1的数值;同时图表渲染逻辑依赖统计模块输出的数值,当数值被截为0时,无法生成有效数据点。
可行的解决思路
1. 脚本内自定义精确统计
在你的Locust测试脚本里添加一段自定义统计逻辑,直接输出精确的RPS:
from locust import events import time req_count = 0 window_start = time.time() @events.request.add_listener def track_precise_rps(request_type, name, response_time, response_length): global req_count, window_start req_count += 1 elapsed = time.time() - window_start # 每10秒计算一次精确RPS,可根据需求调整时间窗口 if elapsed >= 10: precise_rps = req_count / elapsed print(f"当前精确RPS: {precise_rps:.4f}") req_count = 0 window_start = time.time()
2. 修改Locust源码调整精度
找到Locust安装路径下的stats.py文件(一般在python/site-packages/locust目录内),定位到计算current_rps的代码块,把数值格式化的精度调高(比如从1位小数改成4位);同时检查图表渲染相关逻辑,确保小数值能被正常解析展示。
3. 导出原始数据自行分析
使用--csv参数导出所有请求的原始数据,之后用Excel、Pandas等工具自行计算精确RPS并生成图表:
locust -f your_test_script.py --csv=low_rps_results
内容的提问来源于stack exchange,提问作者Grimmer Kang
相关产品推荐
相关产品推荐

