性能测试概述
软件性能:软件质量属性中的“效率”特性,如时间特性(请求响应时间)、资源特性(消耗服务器资源)等
一、性能测试概念
1、性能测试:通过自动化的测试工具模拟不同的场景(正常、负载等)来对系统的各项性能指标进行测试。
2、性能测试目的:
- 评估当前系统能力
- 寻找性能瓶颈,优化性能
- 评估软件是否能够满足未来需要
3、性能与功能的差异
- 从目标来看:功能关注产品是否符合功能需求规格,性能关注产品是否满足业务需求场景
- 从关系上看:功能与性能相辅相成;在项目中,先进行功能测试,再进行性能测试
二、性能测试指标
1、响应时间:指用户从客户端发起一个请求开始,到服务端响应的整个过程所耗费的时间
2、并发量:系统同时接收的请求数
3、吞吐量:单位时间内处理的请求数量,直接体现系统的承载能力(TPS:每秒事务数,事务对应一个或多个接口请求 QPS:每秒查询数,查询对应单个接口请求)
4、错误率:系统在负载情况下,业务失败的概率。
5、资源利用率:客户机系统各种硬件资源的使用情况
三、性能测试策略
1、基准测试
针对单用户进行的业务场景测试,目标是获取单用户运行时的各项性能指标,从而建立起一个已知的性能水平用于对之后软硬件变化后的性能进行对比。
- 为多用户并发测试和复杂综合场景测试等性能分析提供依据
- 识别系统或环境变更对于性能响应带来的影响
- 为评价系统优化前后的性能提供参考指标
2、负载测试
通过不断提高系统负载,测试系统性能的变化,并最终确定在满足系统性能指标的前提下,系统所能承受的最大负载量。负载:服务器接收的请求数量,请求越多,负载越高。
- 最优负载:对外
- 最大负载:对内
注意:负载测试的关注重点是逐步增加压力
3、稳定性测试
服务器稳定运行时(正常负载)进行的长时间测试(一天、一周等),确保服务器能满足线上业务需求。
四、性能测试流程
1、性能需求分析:关注系统对特定业务场景的满足程度
- 熟悉被测系统:业务功能、技术架构
- 明确性能测试内容:
- 从业务角度:确定关键业务(使用频率较高的业务)
- 从技术角度:确定占用CPU、内存等资源较多的业务
- 确定测试策略
- 确定性能测试指标
- 无明确指标:和类似系统进行对比
- 有明确指标:平均响应时间小于100ms等
2、性能测试计划及方案
- 项目背景:项目的基本描述
- 测试目的:项目需要满足的性能指标
- 测试范围:确定需要测试的业务
- 测试策略:基准-负载-稳定性
- 风险控制:测试过程出现问题时的响应办法
- 交付清单:测试计划、脚本,缺陷统计和性能测试报告
- 进度与分工:各阶段的事务安排
3、性能测试用例设计
参考功能,区别在于期望,由目标功能点改为性能指标
4、建立测试环境
包括软、硬件及网络环境
5、执行测试脚本
6、性能测试监控
执行测试脚本同时对各性能指标进行监控
7、性能分析和调优
8、性能测试报告