性能测试阶段划分为需求阶段、测试准备、测试过程和测试结束四个阶段。根据个人性能测试经验,经常会出现某个过程的某些检查点遗漏而导致返工造成工作量浪费的浪费,进而影响测试进度。这里总结一下每个测试阶段关注点。
需求阶段
1、了解性能测试需求背景。需要先搞清楚为什么要进行本次性能测试需求。通常进行性能测试常见有以下几种:
(1)逻辑复杂且用户使用较多的新需求;
(2)核心功能逻辑变更或者增加处理逻辑可能影响性能;
(3)重现生产问题需要压测性能;
(4)生产需要替换新硬件,需要获取新硬件业务性能指标;
(5)生产环境需要扩容,了解现网环境指标。
2、评审性能测试需求方案,明确性能测试需求。
(1)测试硬件环境要求。主要包括服务器型号、CPU个数、内存大小、磁阵型号。
(2)测试软件要求,包括操作系统类别和版本、Oracle版本、业务版本、JDK版本、中间件版本。
(3)确业务模型。主要包括总TPS数、是单一场景还是混合场景压测,混合场景各各业务的TPS值分别是多少。
(4)数据模型。主要包括用户模型(注册用户数、活跃用户数、非注册用户数、不同层级用户数等)、交易历史记录表数量<特别是查询历史交易记录性能>及其他关键大表。
(5)数据收集要求,是否有无特别要求。主要包括TPS、成功率、响应时间。其他可能会要求TPS数和资源消耗的曲线图。
(6)测试测试交付件。主要包括性能测试报告、性能测试过程记录截图等。
(7)测试组网。是单网元还是负载均衡。
(8)测试工具。是否有特殊工具的要求、是否需要License、是否需要新开发测试套,谁负责提供
3、评估测试工作量。除了任务本身工作量外,需要考虑依赖测试资源的到位时间点。
4、输出性能测试策略和测试计划并评审。评审角色要求项目经理、测试经理和开发一同评审。
准备阶段
1、检查操作系统版本、orace版本、JDK版本、中间件版本。
2、调整操作系统内核参数与生产环境保持一致。
3、调整Oracle核心参数与生产环境保持一致。包括Oracle SGA大小、processes/sessions数、大内存页设置、redo文件大小、temp/system表空间大小等
4、检查文件系统规划和oracle数据文件规划是否与生产环境一致。特别注意的是oracle数据文件通常是在磁阵上。
5、检查文件系统空间和oracle数据表空间大小。特别是写文件空间和业务插数据表空间。
6、检查影响性能的业务核心参数与生产环境一致。比如线程数、JVM大小、静态控制参数等。
7、导入业务数据,调试业务功能成功。参数化数据第1个、中间、最后1个调试业务全部成功。
8、关闭所有业务环境的debug日志打印,清理log和temp文件以及性能统计文件。
测试过程阶段
1、检查压测工具发起TPS数、测试工具是否有错误日志。
2、检查业务环境是否有错误日志。
3、检查环境消息队列是否正常接收和处理,是否有不断堆积接收消息。
4、检查业务环境接收处理TPS是否与测试工具发起一致。
5、检查业务处理消息成功率,通常要求100%。
6、检查业务处理响应时间分布情况。
7、检查服务器资源消耗情况,主要是CPU、内存和IO资源消耗。业务不同,资源瓶颈不同。
8、记录测试过程数据,包括参数调整、发现的问题、TPS及对应资源消耗收集(CPU、内存、IO)、响应时间、成功率等。
9、所有上述检查项处于正常范围后,可进行持续压测至少30分钟进行数据收集(TPS及对应资源消耗收集(CPU、内存、IO)、响应时间、成功率等)
测试结束阶段
1、所有测试用例已执行完成,测试结果达标。如果不达标,已分析出结论。
2、测试过程参数调整已确认、发现问题已提单并完成处理。
3、测试报告按照模板或者指定要求完成输出。
4、确认测试环境是否保留及保留时长。如不需保留,清理恢复测试环境。