什么是性能?
软件质量属性中的效率特性.包含时间特性(系统处理请求的响应时间)、资源特性(系统资源运行过程中,系统资源消耗的情况,cpu、内存、磁盘)
什么是性能测试
使用自动化工具,模拟不同场景,对软件各项性能指标进行测试和评估的过程。
性能测试的目的?
1.评估系统当前能力
2.寻找性能瓶颈,优化性能
3.评估软件是否能够满足未来的需要
功能测试和性能测试的区别?
功能测试:验证软件系统操作功能是否符 合产品 功 能需求规格 ,主要焦点在 功能 (正向、逆向)
性能测试: 验证软件系统是否满足 业务需求场景 ,主要焦点是业务场景的满足( 时间、资源) ;
一、基准测试
狭义上讲:就是单用户测试 。测试环境确定后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。
广义上 讲: 是一种测量和评估软件性能指标的活动。你可以在某个时刻通过基准测试建立一个已知的性能基准线 , 当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
基准测试(一般是配合使用):
1.新项目要么通过需求设定基准,要么需求不明确的时候通过竞品设定基准。
2.迭代项目,参照上次迭代的性能结果作为基准
二、负载测试
通过逐步增加系统负载,确定满足系统的性能指标情况下,找出系统所能够承受的最大负载量的测试。
作用:
系统最大负载量达到用户要求的时候,系统才能上线使用。
横坐标: 并发用户数(number of concurrent users)
纵坐标:资源的利用情况(Utilization,包括硬件资源和软件资源)
吞吐量(Throughput,这里是指每秒事务数)
响应时间(Response Time)
图中三个区域划分:Light Load(轻压力区)、Heavy Load(重压力区)和Buckle Zone(用户无法忍受并放弃请求)
在轻压力区和重压力区两个区域交界处的并发用户数,我们称为最佳并发用户数,而重压力区和buckle两个区域交界处的并发用户数则称为最大并发用户数。
当系统的负载等于最佳并发用户数时,系统的整体效率最高,没有资源被浪费,用户也不需要等待;当系统负载处于最佳并发用户数和最大并发用户数之间时,系统可以继续工作,但是用户的等待时间延长,满意度开始降低。并且如果负载一直持续,讲最终会导致有些用户午饭忍受而放弃;而系统负载大于最大并发用户数时,将注定会导致某些用户无法忍受超长的响应时间而放弃。
三、稳定性测试
在服务器稳定运行的情况下进行长时间测试,并最终保证服务器能够满足线上业务需求
四、压力测试
在强负载下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力和可恢复能力。
测试场景:极限负载情况下的破坏性压力测试
高负载下的长时间稳定性压力测试
五、并发测试
并发测试:在极短的时间内,发送多个请求,来验证服务器对并发的处理能力。