名词百科
什么是性能测试 / 压力测试?
一句话定义
性能测试是评估系统在特定负载下的响应时间与资源消耗;压力测试是逐步加压直到系统崩溃,用于找出容量上限与瓶颈位置。
它到底是什么
两者的目标不同:性能测试问「在预期负载下表现如何」,压力测试问「最多能扛多少」。前者验证是否达标,后者探索边界。
它们的共同前提是模拟真实请求分布:只压单个接口得出的数字没有参考价值,真实场景是多种请求混合、有读写比例、有缓存命中与未命中的差别。
怎么运作的
定义指标:响应时间(平均与分位值)、吞吐量(每秒请求数)、错误率、资源占用(CPU、内存、连接数、磁盘 IO)。只看平均值会掩盖长尾延迟。
构造场景:按真实比例混合接口,设置思考时间与并发梯度。数据量也要接近生产,空库压测结果会过于乐观。
加压与观察:逐步增加并发,观察指标拐点。出现响应时间陡增或错误率上升的位置,就是瓶颈所在。
定位:结合应用日志、慢查询、中间件监控判断瓶颈层(应用计算、数据库、网络、锁竞争)。
容易混的几个概念
- 负载测试:在预期负载下验证表现。
- 压力测试:超出预期负载,找崩溃点。
- 稳定性测试:长时间运行,观察内存泄漏与性能衰减。
- 并发与并行:并发是同时发起,并行是同时执行。
常见问题
压测在测试环境做准吗?
参考价值有限。测试环境配置、数据量、网络通常与生产不同,结论容易过于乐观。条件允许时应在隔离的生产环境或按比例缩容后验证。
为什么平均响应时间正常但用户仍觉得慢?
因为平均值掩盖了长尾。应看分位值(如 95 分位、99 分位),少数慢请求对体验的影响往往大于平均值反映的程度。
J 项目运维 · 同组词条
功能测试功能测试是验证软件功能是否符合需求规格的测试,测试用例是描述输入、操作步骤与预期结果的文档,是功能测试的执行依据。安全测试安全测试是检查系统是否存在可被利用的漏洞的测试活动;渗透测试是模拟攻击者视角,尝试实际攻破系统,以验证防护是否有效。迭代迭代是按固定周期交付一部分可用功能的工作方式;版本管理是对不同发布版本的内容、时间与兼容性进行规划与控制。BUG管理BUG 是软件中不符合预期的缺陷;缺陷管理是记录、分级、分配、跟踪与验证缺陷直至关闭的流程,通常借助缺陷跟踪系统实现。原型图原型图是产品界面的低保真示意,表达布局与元素位置;线框图更强调结构骨架,通常不含视觉细节。两者用于在开发前确认信息架构与流程。灰度发布灰度发布是把新版本先开放给小部分用户,观察运行情况后再逐步扩大范围的上线方式。它用于降低全量发布带来的风险。PRDPRD(Product Requirements Document,产品需求文档)是描述产品要做什么、为谁做、怎么判断做完的文档,是开发、测试与业务方对齐的依据。CI/CDCI(持续集成)是开发者频繁提交代码并自动构建、测试的实践;CD(持续交付/持续部署)是在此基础上自动发布到环境。DevOps 是打通开发与运维协作的文化与实践体系。