性能测试理论
1.性能测试策略
基准测试
- 狭义上讲也就是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试, 获取单用户运行时各项性能指标
- 广义上讲:是一种测量和评估软件性能指标的活动,你可以在某个时刻通过基准测试建立一个已知的性能水平(称为基准线)当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响
基准测试数据的用途:
- 为多用户并发测试和综合场景测试等性能分析提供参考数据
- 识别系统或环境的配置变更对性能响应带来的影响
- 为系统优化前后的性能提升/下降提供参考指标
2.负载测试
- 说明:通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统能承受的最大负载量的测试
- 负载:指向服务器发送的请求数量,请求越多,负载越高
- 注意:负载测试关注的重点是逐步增加压力
3.稳定测试
- 说明:稳定性测试是指,在服务器稳定运行(用户正常业务负载下)的情况下进行长时间测试,并最终保证服务器能满足线上业务需求,时间为一天,一周等
4.其他测试策略
- 并发测试:并发测试是指在极短的时间内,发送多个请求,来验证服务器对并发的处理能力
- 压力测试:压力测试是在强负载(大数据,大量并发用户等)下的测试查看应用系统在峰值使用情况下的操作行为,从而有效的发现系统某项功能隐患,系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间的稳定性压力测试和极限负载情况下导致系统崩溃的破坏压力测试。
- 容量测试:关注软件极限压力下的各个极限参数值,例如:最大TPS,最大并发数,最多数据条数等。
2.性能测试指标介绍
1.响应时间
- 说明:响应时间是指用户从客户端发起一个请求开始,到客户端收到从服务器返回的结果,整个过程所消耗的时间
- 组成:响应时间=网络时间+应用程序的处理时间
2.并发数
- 说明:并发测试的用户数
- 说明:
- 系统用户数:系统注册的总用户数据
- 在线用户数:某段时间内访问系统的用户数量,这些用户并不一定同时向系统提交请求
- 并发用户数:某一个物理时刻同时向系统提交请求的用户数
2.吞吐量
- 说明:吞吐量:是指单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力
- 注意:
- 从业务角度来看,吞吐量也可以用“业务数/小时”,“业务数/天”,“访问人数/天”
- 从网络角度来讲,还可以用“字节/小时” 等来衡量网络的流量
- 从技术指标来看:可以用每秒事务数(TPS)和每秒查询数(QPS)来衡量服务器具体性能处理能力
3.TPS
说明:每秒事务数(单位时间内系统处理客户端请求的事务次数)
计算:TPS = 并发数/平均响应时间
事务:就是业务请求,对应一个或者多个操作,如支付请求,包括服务器查询用户余额,支付安全校验等多个操作。一个业务请求发送给服务器后,最终会定位到服务器对应的业务请求代码,既有可能是一段代码也有可能是多段代码。
3.QPS
说明:每秒查询数
应用:控制服务器每秒处理指定请求数(如:控制服务器达到每秒60QPS,服务器的性能各项指标正常)
4.点击数
说明:点击数是衡量Web 服务器处理能力的一个重要指标
提示:
1. 点击数不是通常一般人认为的访问一个页面就是一次点击数,点击数是指该页面包括的元素(图片,链接,框架等)向Web服务器发出的请求数量
2. 通常我们也用每秒点击次数,指标来衡量Web服务器的处理能力
注意:只有web 项目才有此指标
5.错误率
- 说明:错误率指系统在负载情况下,失败业务的概率,错误率=(失败业务数/业务总数*100%
- 提示:
- 不同系统对错误率要求不同,但一般不超过千分之五
- 稳定性较好的系统,其错误率应该由超时引起,即为超时率
6.资源利用率
说明:是指系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量*100%” 形成资源利用率的数据
3.性能测试的流程
1.性能测试需求分析
说明:性能需求分析是整个性能测试工作开展的基础,性能需求分析做的好不好直接影响性能测试的结果
性能测试分析的目标:
-
被测系统
熟悉被测系统:- 熟悉被测系统的业务功能
- 熟悉被测系统的技术架构
-
明确性能测试内容
- 从业务角度明确测试内容(确定关键业务,即:用户使用频率较高的业务功能)
- 从技术角度明确测试内容(通常逻辑复杂度较高的业务也是CPU密集运算较大的地方,考虑服务器CPU在预定性能指标下是否达标)
-
明确性能测试策略
- 负载测试
- 稳定性测试
- 并发测试
-
明确性能测试指标
- 无明确需求指标(通过查找相关资料,和类似的系统对比,以及对未来的预估,确定性能测试需求的指标)
- 有明确需求指标
- 例如:下订单业务并发20个用户
- 平均响应时间要小于等于3s
- 事务成功率为100%
- CPU使用率小于等于85%
- 只需要根据执行分析结果与预期指标做对比,如果不满足的就需要分析问题所在。
2.性能测试计划及方案
-
性能测试实施第一份文档,也是最重要的一份文档
主要内容:- 项目背景
- 测试目的
- 测试范围
- 测试策略
- 风险控制
- 交付清单
- 进度与分工