负载测试、流量模型与结果评估
Python 性能优化与高并发#Python全栈#第二十一阶段#Python 性能优化与高并发#负载测试、流量模型与结果评估约 915 字 · 3 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
负载测试、压力测试与长时间稳定性测试有什么不同?
追问 日常目标负载、极限探测、突发流量和持续运行分别验证什么?每类测试应观察哪些指标,并设置怎样的结束与恢复条件?
怎样设计接近实际业务的请求组合?
追问 登录、列表、详情、写入、不同数据规模与用户权限怎样配置比例?只压一个无需鉴权的固定详情接口,会遗漏哪些真实成本?
Locust 的用户数、增长速度与等待时间分别影响什么?
追问 任务执行时间变化时,实际请求发出速率会怎样变化?一次用户任务包含多个请求时,怎样避免把任务次数当作接口请求次数?
封闭负载模型与开放到达模型有什么区别?
追问 固定虚拟用户等待上次完成再发起,与按到达速率安排任务,各适合什么目标?服务变慢时,为什么某些模型会同步降低发压速率,影响对排队问题的观察?
使用固定到达速率模型时,怎样确认目标负载真正发出?
追问 可用虚拟用户不足、发压机瓶颈与被丢弃的迭代应怎样记录?目标迭代速率、实际请求速率和成功完成速率为什么需要分别统计?
性能测试为什么仍需要校验响应内容?
追问 HTTP 200 但返回业务失败、空数据或错误权限内容时,该怎样计入结果?怎样同时报告成功吞吐、HTTP 错误和业务断言失败?
怎样设置能自动判断测试是否达标的阈值?
追问 关键接口的延迟分位数、错误比例与业务检查如何建立条件?工具中的检查失败是否自动导致运行失败,应该怎样核对阈值与退出行为?
怎样判断瓶颈出在发压端还是被测服务?
追问 发压机 CPU、网络、连接资源与脚本开销怎样观察?分布式发压时,如何核对总负载、时钟和数据分布,避免把压力不足当成服务上限?
怎样安排预热、稳定负载、突发与恢复阶段?
追问 为什么不能只看开头几秒或整个测试的一个平均值?峰值过后,队列清空、错误率恢复和内存稳定分别如何验证?
怎样制作可复现的优化前后对比报告?
追问 版本、环境、数据、配置、原始结果与多次运行差异应如何保留?仅展示最好的一次结果,或在比较时同时升级机器,会削弱哪些结论?
负载测试核对资料: Locust:Writing a locustfile、k6:Open and closed models、k6:Thresholds。实际使用时固定工具版本,流量模型与成功标准写入测试说明。