性能测试检查清单 Performance Testing Checklist
目的
借此纠正你的认知,“性能测试”不仅仅包括测试执行,还包括测试前的需求分析、过程中的监控分析以及调优。
测试前
- 开发和相关人员对性能测试是否知情?
- 调用链路以及系统架构是否清晰?
- 测试对象和范围是否已经明确?
- 本次不需要测试的范围是否已经明确?
- 测试目标是否明确(时间指标、容量指标和资源利用率指标)?
- 测试环境是什么?(被测服务worker数或者机器数量、nginx和api-service node数量资源分配方式,内存、CPU核数、磁盘类型、带宽、数据库等)
- 测试部署版本是什么?(服务版本、依赖的包版本,比如JDK)
- 服务相关信息是否确认?(域名还是IP、日志级别)
- 网关nginx等的配置(流量转发是否均衡、师傅存在流量变大、是否添加限速、线程数量限制)
- 设计的测试场景和业务比例是否确认清楚?
- 性能测试的检查点是否明确?
- 每个场景涉及的前置条件和配置是否
- 测试工具与脚本是否准备好并调试成功?
- 脚本中涉及的各个参数,哪些需要参数化是否明确?
- 各个参数的取值范围、取数来源是否明确?
- 参数化的类型、覆盖范围、数据量是否明确?
- 各个参数中涉及到缓存,是否有对应的解决方案(每轮结束后进行清除、关闭缓存)
- 压力负载机能否访问被测服务、压力负载机不会成为执行的瓶颈、Client机器的带宽不能小于server入口带宽
- 压测中的监控方式是否明确(机器CPU、内存、IO、网络流量、服务的监控)?
- 测试执行人员以及测试执行时间是否明确?
- 执行压测前是否提交了测试申请,尤其涉及线上压测?
测试中
- 是否按照测试策略进行,从小并发开始?
- 线上压测执行过程中是否有值班人员?
- 压测过程中是否有其他人员执行并干扰结果?
- 是否有检查压力负载机过于负载?
- 执行时间是否充分,每轮至少5分钟起?
- 每次执行是否都有数据记录和备份(Excel、log、截图)?
- 是否检查测试过程中出现的错误?
- 是否有检查测试过程中出现的突然吞吐量下降
- 是否有检查测试过程中的异常现 象(卡顿、CPU爆涨、Java涉及的FGC频繁、内存不断增大且无法恢复、IO 100%等)?
- 是否记录并将异常现象汇报给开发或者运维?
- 是否有优化完后进行复测?
测试后
- 是否输出测试报告?
- 输出的测试报告,是否明确将测试结果与性能测试目标进行了对比?
- 测试报告中是否包含分析过程以及必要的风险提示?
- 报告中是否详细描述清楚每轮压测结果以及优化后的对比结果?
- 附录中是否提供所有性能测试相关资源(脚本、输入数据、测试结果、监控数据等)?
- 是否提供本次测试执行参考的文档?
- 执行完成后是否相应的脚本对数据进行恢复?