性能测试理论
文章介绍接口测试理论,及常用性能测试方法及测试指标。
一、性能测试基础概念
1、为什么需要性能测试?
真实项目商用时,会有大量用户使用;因此需要模拟大量用户的使用场景。
2、什么是性能?
性能就是软件质量模型中的“效率”特性。效率包括两个维度:时间特性与资源特性。
a.时间特性:表示系统处理用户请求的响应时间。
b.资源特性:系统运行过程中,系统资源的消耗情况。(内存、磁盘、CPU)
3、什么是性能测试?
使用自动化工具,模拟不同的场景,对软件的各项性能指标进行测试和评估。
4、性能测试的目的?
a.评估当前系统能力
b.寻找性能瓶颈,优化性能
c.评估软件能否满足未来的需求
5、性能测试与功能测试区别(关注点不同)
功能:验证软件系统功能是否满足需求或产品规格。(关注功能的正向、逆向)
性能:验证软件系统是否满足业务需求场景。(关注时间、资源)- - -性能测试只测正向场景下的性能。
6、功能测试与性能测试的关系?
一般项目中,功能测试通过后才进行性能测试。性能测试一定是在功能稳定的情况下进行。
二、性能测试分类
1.基准测试
什么是基准测试?
狭义:单用户测试(单用户循环多次得到的测试数据)
广义:建立基准线,当系统的软硬件环境发生变化后再进行一次基准测试,用来确定变化对性能的影响。
基准测试数据的用途?
a.基准测试不会单独存在。
b.为多用户并发测试和综合场景测试等提供参考依据。
c.为系统/环境配置、系统优化前后对比提供参考指标。
2.负载测试
什么是负载测试?
通过逐步增加系统负载,确定在满足系统性能指标情况下,找出系统所能承受的最大负载量测试。
负载测试的作用?
系统最大负载达到用户要求时,才能上线使用。
3.稳定性测试
什么是稳定性测试?
在服务器稳定运行**(用户正常业务负载)的情况下进行长时间测试(1天-1周)**,并保证服务器能满足线上业务的需求。
稳定性测试作用?
系统在用户要求的业务负载下,运行达到规定时间,系统才能正式上线使用。
1、在A-B范围内,增加系统的在线用户数,系统的处理能力(负载量)会增大(轻压力区)
2、在B-C范围内,增加系统的在线用户数,系统的处理能力(负载量)不变(重压力区)
3、在C-D范围内,增加系统的在线用户数,系统的处理能力(负载量)会减小(崩溃区)
4.压力测试
什么是压力测试?
在强负载下的测试,查看系统在峰值情况下是否存在功能隐患,系统是否具有良好的容错能力和可恢复能力。
压力测试的两个测试场景
a.极限负载情况下导致系统崩溃的破坏性压力测试。(C-D区间)
b.高负载下的长时间的稳定性压测测试(B-C区间)
5.并发测试
什么是并发测试(绝对并发)?
指在极短的时间内,发送多个请求,来验证服务器对并发的处理能力。
应用场景?
秒杀、抢红包、抢购等。
三、性能测试指标
1.响应时间
指客户端从发起请求开始,到客户端接收到从服务器端返回的结果,整个过程所耗费的时间。(不包括发消息时前端页面的处理时间和收到消息后前端页面的渲染显示时间)
组成:网络传输时间+服务器的处理时间
2.并发用户数
某一时刻同时向服务器发起请求的用户数。
3.吞吐量
单位时间内处理的客户端请求数量。直接体现系统的性能承载能力。单位:每秒事务数(TPS)、每秒查询数(QPS)
QPS(query per second)每秒查询数:控制服务器每秒处理的指定请求的数量。
TPS(Transaction per second)每秒事务数:控制服务器每秒处理的事务请求的数量。(事务:即业务,页面上的一次操作对应一个请求/多个请求)
4.点击数
指客户端向服务器发送请求时,所有的页面资源元素(如:图片、链接、框架Css、Js等)的请求总数量。
注意:a.只有Web项目才有点击数。b.点击数不是页面上的一次点击
5.错误率
指系统在负载情况下,失败业务的概率。错误率=(失败业务数/业务总数)*100%(错误率是性能指标,不是功能上的随机bug)
6.资源使用率
指系统各种资源的使用情况。资源的使用量/总的资源可用量*100%
资源指标要求:
a.CPU不高于75%~85%
b.内存不高于80%
c.磁盘IO(磁盘读写)不高于90%
d.网络不高于80%
四、性能测试流程
1.性能测试需求分析
2.性能测试计划
a.测试目的、范围
b.测试人员和分工
c.测试的人员安排
d.测试方法
3.性能测试用例
4.性能测试执行
a.搭建性能环境
b.编写性能测试脚本
c.配置性能测试监控指标
d.执行脚本
5.性能分析调优
性能测试人员对性能测试结果进行分析以后,如果不符合性能需求,则会提出性能bug,然后由开发人员进行后续的调优。
调优:开发人员为主导,数据库管理员、系统管理员、网络管理员、性能测试分析人员配合进行。
验证:性能测试人员,对调优后的软件进行测试,与之前的结果进行对比,从而确定经过调整以后系统的性能是否有提升。
6.性能测试报告总结
a.测试工作的经过回顾
b.缺陷的分析和调优
c.风险评估
d.性能测试结果
e.测试工作的总结与改进