技能树
性能测试的价值
保障系统的性能,提供良好的用户体验。尽可能地找出系统性能薄弱环节,帮助进行性能优化。
性能测试流程
- 业务学习:了解系统功能。
- 需求分析:分析系统非功能需求,圈定性能测试范围,了解系统性能指标。
- 工作评估:评估工作量。
- 设计模型:按性能测试范围,把业务模型映射成测试模型。
- 计划编写:文档中明确测试范围、人力投入、持续时间、工作内容、风险评估、风险应对策略等。
- 脚本开发:开发测试挡板程序、开发测试程序等。若没有第三方工具可用,需要开发测试程序或者工具。
- 测试环境准备:性能测试环境准备包括服务器与负载机两部分。
- 测试数据准备:根据测试模型来准备被测系统的主数据与业务数据。
- 测试执行:该流程是性能测试成败的关键。同样的脚本不同的执行人员结果大不相同。主要体现在场景设计与测试执行上。
- 缺陷管理:对性能测试过程中的缺陷进行管理。
- 性能分析:对性能测试过程中暴露出来的问题进行分析,找出原因。
- 性能调优:与开发人员一起来解决性能问题。
- 测试报告:主要包括常见的性能指标说明(TPS、RT、CPU Using…),发现的问题等。
- 评审:对性能报告中的内容进行评审,确认问题、评估上线风险。
性能测试的主要交付件:
- 测试计划
- 测试脚本
- 测试程序
- 测试报告或者阶段性测试报告(阶段性测试报告针对的是测试执行过程比较长,或者测试过程中性能问题比较多的)
性能测试重要关注点
- 评估系统、需求分析:大多数情况下,我们测试人员需要引导相关的运维人员和需求人员给出具体的需求数据,并对这些数据进行二次分析,得出我们真实的性能需求。对于初次上线的系统,我们需要用同行的系统数据,进行用户行为分析和商业数据结构的估算为前提,利用性能估算法推算,得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助做出决策;对于已上线的系统,我们可以通过运维人员获取TPS和时间的比例分布图、用户数和时间的分布图、数据库ER关系图、容量数据等,直接精准得出目前的系统的用户行为和业务数据,进而得出我们需要的性能需求。
- 场景设计、用例设计:如何有效地组织测试用例就是场景要做的事,按业务分布、业务量、业务时段、业务角色来综合分配用户数、执行时间、执行比例等。
- 测试执行、是否通过:
- 性能诊断优化
性能测试通过标准
性能测试通过的标准包括:服务端性能、前端性能和用户体验性能。常规标准如下表: