Skip to main content

性能测试检查清单 Performance Testing Checklist

目的

借此纠正你的认知,“性能测试”不仅仅包括测试执行,还包括测试前的需求分析、过程中的监控分析以及调优。

测试前

  • 开发和相关人员对性能测试是否知情?
  • 调用链路以及系统架构是否清晰?
  • 测试对象和范围是否已经明确?
  • 本次不需要测试的范围是否已经明确?
  • 测试目标是否明确(时间指标、容量指标和资源利用率指标)?
  • 测试环境是什么?(被测服务worker数或者机器数量、nginx和api-service node数量资源分配方式,内存、CPU核数、磁盘类型、带宽、数据库等)
  • 测试部署版本是什么?(服务版本、依赖的包版本,比如JDK)
  • 服务相关信息是否确认?(域名还是IP、日志级别)
  • 网关nginx等的配置(流量转发是否均衡、师傅存在流量变大、是否添加限速、线程数量限制)
  • 设计的测试场景和业务比例是否确认清楚?
  • 性能测试的检查点是否明确?
  • 每个场景涉及的前置条件和配置是否
  • 测试工具与脚本是否准备好并调试成功?
  • 脚本中涉及的各个参数,哪些需要参数化是否明确?
  • 各个参数的取值范围、取数来源是否明确?
  • 参数化的类型、覆盖范围、数据量是否明确?
  • 各个参数中涉及到缓存,是否有对应的解决方案(每轮结束后进行清除、关闭缓存)
  • 压力负载机能否访问被测服务、压力负载机不会成为执行的瓶颈、Client机器的带宽不能小于server入口带宽
  • 压测中的监控方式是否明确(机器CPU、内存、IO、网络流量、服务的监控)?
  • 测试执行人员以及测试执行时间是否明确?
  • 执行压测前是否提交了测试申请,尤其涉及线上压测?

测试中

  • 是否按照测试策略进行,从小并发开始?
  • 线上压测执行过程中是否有值班人员?
  • 压测过程中是否有其他人员执行并干扰结果?
  • 是否有检查压力负载机过于负载?
  • 执行时间是否充分,每轮至少5分钟起?
  • 每次执行是否都有数据记录和备份(Excel、log、截图)?
  • 是否检查测试过程中出现的错误?
  • 是否有检查测试过程中出现的突然吞吐量下降
  • 是否有检查测试过程中的异常现象(卡顿、CPU爆涨、Java涉及的FGC频繁、内存不断增大且无法恢复、IO 100%等)?
  • 是否记录并将异常现象汇报给开发或者运维?
  • 是否有优化完后进行复测?

测试后

  • 是否输出测试报告?
  • 输出的测试报告,是否明确将测试结果与性能测试目标进行了对比?
  • 测试报告中是否包含分析过程以及必要的风险提示?
  • 报告中是否详细描述清楚每轮压测结果以及优化后的对比结果?
  • 附录中是否提供所有性能测试相关资源(脚本、输入数据、测试结果、监控数据等)?
  • 是否提供本次测试执行参考的文档?
  • 执行完成后是否相应的脚本对数据进行恢复?