一、性能测试
1、性能测试
性能测试是系统测试的一种,通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行的测试
2、性能测试的目的
I 确定系统瓶颈,有针对性的进行调优工作
II 测试系统的性能是否满足生产性能要求
二、性能测试分类
1、基准测试
基准测试是指在一定的软、硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优或系统评测的过程中,通过运行相同的业务场景比较测试结果,确定调优的结果是否达到预期效果。基准测试一般基于配置测试,通过配置测试得到数据,并将这个数据作为基准来比较每次调优后的性能是否有所改善。
2、负载测试
负载测试是指在一定的软、硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,在不同的虚拟用户数的情况下,测试各服务器的性能指标是否在要求的范围内,以此确定系统所能承受的最大并发用户数、最大在线用户数,及不同用户数下的系统响应时间、每秒事务数及资源使用率。负载测试强调的是在一定环境下系统能够达到峰值指标,实际生产测试过程中,大多数测试都是负载测试。
3、并发测试
并发测试是指通过模拟多个用户并发访问同一个应用、存储过程或数据记录及其他并发操作,测试是否存在死锁、数据错误等故障。为了避免数据库或函数方法在并发下的错误,测试过程中需要针对每个重要模块进行并发测试。
4、压力测试
压力测试是指在一定的软、硬件及网络环境下,模拟大量虚拟用户向服务器产生负载,使服务器的资源处于极限状态下并长时间持续运行,以测试服务器在高负载的情况下是否能够稳定工作。与负载测试获得的峰值性能指标可能不同,压力测试强调在极端情况下的系统稳定性,此时处理能力已不是关注要点。
5、容量测试
容量测试是指在一定的软、硬件及网络环境下,在数据库中构造不同数量级别的基础数据,在一定虚拟用户数的情况下,运行一种或多种业务,从而获取该测试环境在不同数量级别的基础数据下的性能指标,服务器的处理能力,以确定数据库的最大容量和最优容量。以此来确定系统在不同数量级别的基础数据的情况下,能否达到目标性能指标。
三、相关术语
1、并发
所有的用户在同一时刻做相同或不同事情或操作,从而对系统产生压力。
2、并发用户数
在同一时刻与服务器进行交互的在线用户数量。这些用户的最大特征是和服务器发生了交互,这种交互既可以是单向传送数据的,也可以是双向传送数据的。
3、每秒事务数
指每秒钟完成的事务数,tps是Transaction per Second的缩写,也就是事物数/秒。它是软件测试结果的测量单位,一个事物是指一个客户机向服务器发送请求后服务器做出反应的过程。
4、响应时间
响应时间指的是从客户端发起一个请求开始,到客户端接收到从服务器编返回的响应结束,这个过程所耗费的时间。响应时间的单位一般为“秒”。一个公式可以表示:响应时间=网络响应时间+应用程序响应时间。
5、平均响应时间
响应时间的平均水平
6、资源使用率
资源使用率指的是对不同系统资源的使用程度,例如服务器的CPU、内存、磁盘繁忙率、网络等硬件资源的占用情况。
四、性能测试指标
1、每秒事务数
TPS= 并发数/平均响应时间,一个典型的上班签到系统,早上8点上班。7点半到8点这30分钟的时间里用户会登录签到系统进行签到。公司员工为1000人,平均每一个员上登录签到系统的时长为5分钟。能够用以下的方法计算。
TPS = 1000/(30x60) 事务/秒 = 0.56
平均响应时间为 = 5x60 秒
并发数= TPS*平均响应时间 = 1000/(30x60) x(5x60)=166.7
意思就是说最低需要166.7个人同时登录签到系统进行签到,才能在30分钟内完成所有1000人的签到操作。
2、平均响应时间
处理一次请求所需要的平均处理时间
3、最大并发用户数
系统在满足其他性能指标的情况下,能够承受的最大并发用户数
4、交易成功率
指系统处理交易时成功交易数与总完成交易数的比值,该值反映了被测试系统的正确性与稳定性
五、场景设计
1、单交易基准
一般使用一个用户或一个线程,延时设置为0,对一个交易持续运行10分钟以上。该场景的主要目的是获取单个交易在无压力的情况下的基准响应时间及环境资源使用情况,作为其他场景的参考依据。
2、单交易负载
单交易负载的场景是为了找到单个交易的最优TPS,检测单交易在并发情况下是否存在性能瓶颈。这个最优是以什么为衡量标准呢?通常以应用或数据库等系统的CPU使用率不大于70%为标准。为什么是70%?通常在生产上运行的应用,如果CPU使用率长期处于高水平那是非常严重的问题,应用的节点随时都可能挂掉。
3、多交易混合负载
多交易混合负载的目的是为了找到应用的最优TPS,即应用CPU资源消耗在70%左右时的TPS(此时需确保数据库等其他被调用资源不成为瓶颈)。按照测试模型中的交易比例及目标TPS,对每个交易分配不同的并发用户数量,设置不同的延时,同时进行加压,通过多个子场景的不断尝试最终测试出应用能够达到的最优TPS。这个场景比较复杂,一般需要经过多次的测试与调整才能到达测试模型的比例要求。
4、多交易混合容量
容量的意思就是应用能够达到的最大TPS。该场景是和多交易混合负载场景相关联的,即通过多交易混合负载找出应用承受的最优TPS后继续对应用进行加压,直到找到应用的最大TPS。
5、稳定性测试
给应用一个恒定的压力,使场景运行较长的时间,用于测试应用在长时间运行下的表现,TPS是否有较大波动、是否有错误和异常、是否存在内存溢出等。