什么是性能:
性能
就是软件质量属性中的"效率"特性
效率特性
- 时间特性:指系统处理用户请求的响应时间
- 资源特性:指系统运行过程中,系统资源的消耗情况
- cpu
- 内存
- 磁盘io(磁盘的写入input和读取output,简称io)
什么是性能测试:
概念:使用自动化工具,模拟不同场景对软件各项性能指标进行测试与评估的过程就是性能测试
为什么要做性能测试:
1.为了让软件在用户访问量过大的情况下,系统能否稳定运行,
2.用于硬件服务器的选型
3.用于软件技术的选型
性能测试的目的:
1.评估当前系统能力
2.寻找性能瓶颈,优化性能
3.评估软件是否能满足未来需求
性能测试的策略:
1.基准测试:
- 狭义上讲:
也是单用户测试,测试环境确定以后,对业务模型中的主要业务进行单独测试,获取单用户运行是的各项性能指标。(进行基础的数据采集) - 广义上讲:
是一种测量和评估软件性能指标的活动,你可以在某个时刻通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再次进行一次基准测试以及确定那些变化对性能的影响。 - 例子:
在抢票软件1.1版本上进行性能测试,收集各项性能指标—(基准测试),然后在抢票软件1.2版本上用1.1版本相同的环境,配置,用户量等测试参数再次收集性能指标,最后对比1.2版本的性能是否比1.1版本有所提升 - 基准测试数据的用途:
1.为多用户并发测试和综合场景测试等性能分析提供参考依据
2.识别系统或环境配置变更对性能响应带来的影响
3.为系统优化前后的性能提升/下降提供参考指标
2.负载测试:
-
说明:通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统性能指标情况下,获取系统的最优负载和最大负载。
-
负载:指向服务器发送的请求数量,请求越多负载越高
-
例子:
-
注意:负载测试关注重点是逐步增加压力,找出最优负载和最大负载,且最大负载一般项目组内部知晓不会对外公布,而对用户公布的系统最大承受能力一般是最优负载
3.稳定性测试:
- 说明:在服务器稳定运行(业务正常的负载,一般在最优负载范围内)的情况下,进行长时间的测试,保证服务器能够正常运行,一般测试时间为1天或一周
3.其他:并发测试,压力测试,容量测试
- 并发测试:
并发测试是指极短时间内,发送多个请求,来验证服务器对并发的处理能力,如:抢红包,抢购,秒杀活动等。 - 压力测试:
压力测试是指强负载(大数据量,大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效发现系统某项功能隐患,系统是否具有良好的容错能力和可恢复能力。
稳定性压力测试:在系统高负载下的情况下,长时间运行(24小时以上),查看系统的处理能力
破坏性压力测试:在系统极限负载的情况下,对系统进行压力测试,查看系统容错能力和错误恢复能力。 - 容量测试:
关注系统的极限压力下的各个极限参数值。如:最大TDS,最大连接数,最大并发数,最多数据条数等。
性能测试的指标
1.1什么是指标:
说明:在性能测试过程中,记录一系列的数据指,用这些实际记录的数据与需求中性能要求的做对比,达成则通过测试,未达成则说明是性能bug。
常见的性能指标:
响应时间,并发数,点击数,错误率,吞吐量,资源利用率
2.常用性能指标解析:
-
2.1响应时间:
说明:客户端发送请求,到服务器收到响应,过程中所经历的全部时间,都是响应时间
响应时间=应用程序的处理时间+网络传输时间 -
2.2并发数:
-
说明:并发测试的用户数
-
扩展:
- 系统用户数:系统注册的用户数
- 在线用户数:某时间段访问系统的用户数,这些用户并不一定同时向系统提交系统请求
- 并发用户数:某一物理时刻向系统提交请求的用户数
-
2.3吞吐量:
- 说明:吞吐量指的是单位时间内处理客户端请求数量,直接体现软件系统的性能承载能力
- 注意:
- 1.从业务角度来看,吞吐量也可以用"业务数/小时",“业务数/天”,"访问人数/天"来衡量
- 2.从网络角度来看,吞吐量可以用"字节数/小时","字节数/天"等来衡量网络的流量
- 3.从技术角度来看,吞吐量可以用每秒事务数(TPS)和每秒查询数(QPS)来衡量服务器具体性能处理能力
-
QPS
- 说明:QPS每秒查询数(所有接口在同一单位请求处理数量之和)
- 例子:同意时间内,1接口每秒请求15次,2接口每秒请求20次,3接口每秒请求15次,那么每秒QPS=15+20+15。
-
TPS
- 说明:TPS每秒事务数(单位时间内系统处理的客户端请求的事务数)
- 事务:登录操作,只会发送一个请求,那么这个就是登录事务,而支付操作需要调用查询余额接口,安全校验接口,支付接口,那么这个3个接口的调用统称为支付事务,注意事务可以是一个请求也可以是多个请求
- 例子:登录事务,只会调用登录接口,而支付事务需要调用查询余额接口,安全校验接口,支付接口这3个接口,同一时间内,每秒调用10次登录事务,每秒调用5次支付事务,那么每秒TPS=10+5,QPS=(101)+(53)
-
2.4点击数:
- 说明:点击数是衡量Web服务器处理能力的一个重要指标。
- 提示:
- 1.点击数不是通常一般人认为访问一个页面就是1次点击数,点击数是该页面包含的元素(图片,链接,js脚本)向服务器发送的请求数量,可以用每秒点击数来衡量wbe服务器的处理能力。
-
例子:点击百度新闻会加载如46个元素(开发者模式查看F12),而加载这些元素总共调用了46个请求,那么百度新闻页面的点击数为46耗时6.3秒,那么每秒点击数为(1/6.3)*46=7.3
-
2.5错误率:
- 说明:错误率是指系统在负载情况下,失败业务的概率,错误率=(失败业务数/业务总数)*100%
- 提示:
- 1.不同系统对错误率要求不同,但一般不超过千分之五(一般根据公司给的指标指定)
- 2.稳定性较好的系统,其错误率应该有超时引起,即为超时率
-
2.6资源利用率:
- 说明:是指系统各种资源的使用情况,一般用"资源的使用量/总的资源可用量*100%"形成资源利用率的数据。
- 提示:通常没有特殊要求的话
- 1.建议CPU不高于80%(±5)
- 2.内存不高于80%
- 3.磁盘不高于90%
- 4.网络不高于80%