性能测试基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
性能测试基础知识
一、性能测试概述
1、性能测试定义
所谓性能,有狭义和广义两种含义。狭义的性能指运行速度的快慢。广义的性能涉及很多内容,如可靠性、可用性、功耗、环境适应性、兼容性、安全性、保密性、可扩充性、可移植性、利用率、性能价格比、速度等。
性能测试是通过自动化的测试程序或工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
2、性能测试目的
真实环境下检测系统性能,评估系统性能以及服务等级的满足情况
预见系统负载压力承受力,在应用实际部署之前,评估系统性能
分析系统瓶颈,优化系统
二、主要性能指标
响应时间、吞吐量、并发、点击率、资源利用率
1、响应时间
响应时间指的是客户端发出请求到得到响应的整个过程所经历的时间。
响应时间=网络传输时间*2+服务器处理时间+客户端显示时间。
2、吞吐量
单位时间内流经被测系统的数据流量,一般单位为b/s,即每秒钟流经的字节数。吞吐量是指单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力。
TPS的概念,每秒事务数。确实TPS会随着负载的增加而逐渐增加,但不会无限制的一直增加。比如,到了300用户后就会出现连接服务失败,那可能说明系统进入了繁忙期,从而产生了失败的事务,从而使得每秒的事务数不再增加,甚至会减少。
TPS就像是一个抛物线,可分为3部分,轻负载区、重负载区、负载失效区。
一开始上升的部分就是轻负载区,最顶端的部分就是TPS的峰值(重负载区),然后随着负载的继续增加,TPS会慢慢下降,从而进入我们所谓的负载失效区。
3、并发用户数
指在某一给定时间内,某个特定点上进行会话操作的用户数。是陆陆续续交替执行的。
随着用户数的增加,HIT PER SECOND开始逐渐减少,说明系统已经开始有失败的VUSER 和事务出现。
4、资源利用率
CPU利用率、内存利用率、磁盘利用率、网络带宽利用率
服务器的CPU在35%内,不存在服务器瓶颈。
想知道服务器有没有拥堵,看看服务器CPU使用率是多少,排队队列是多少
带宽利用率:100MB 约能用6-8%才是实际。
做性能测试时不能让客户机本身成了瓶颈。(客户机cpu使用达到80%就要添加1台测试机)
5、点击率
每秒完成的请求数,点击率是按照客户端向后台发起了多少次请求来计算的。除程序处理速度,还受带宽的限制,每个请求的大小情况。请求越小,每秒完成的请求越多。在排除带宽影响的情况下,做了缓存的系统比没做缓存的系统的点击率要高很多。在网络传输到达一定的程度后,点击率就不会随并发量的增长而增大。
总结如下:并发用户数和QPS两个概念没有直接关系,但是如果要说QPS时,一定需要指明是多少并发用户数下的QPS,否则豪无意义。因为单用户数的40QPS 和20并发用户数下的40QPS是两个不同的概念。前者说明该应用可以在一秒内串行执行40个请求,而后者说明在并发20个请求的情况下,一秒内该应用能处理40 个请求,当QPS相同时,越大的并发用户数,代表了网站并发处理能力越好。对于当前的web服务器,其处理单个用户的请求肯定戳戳有余,这个时候会存在资源浪费的情况。而当并发数设置的过大时,每秒钟都会有很多请求需要处理,会造成进程(线程)频繁切换,真正用于处理请求的时间变少,每秒能够处理的请求数反而变少,同时用户的请求等待时间也会变大,甚至超过用户的心理底线。所以在最小并发数和最大并发数之间,一定有一个最合适的并发数值,在并发数下,QPS能够达到最大。但是,这个并发并非是一个最佳的并发,因为当QPS到达最大时的并发,可能已经造成用户的等待时间变得超过了其最优值,所以对于一个系统,其最佳的并发数,一定需要结合QPS,用户的等待时间来综合确定。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
QPS(TPS):每秒钟request/事务数量
并发数:系统同时处理的request/事务数
响应时间:一般取平均响应时间
理解了上面三个要素的意义之后,就能推算出它们之间的关系:
QPS(TPS)= 并发数/平均响应时间
一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。
三、性能测试的主要类型
一般性能测试
稳定性测试
负载测试
压力测试
并发性能测试
疲劳强度测试
大数据量测试
1、一般性能测试
狭义角度的性能测试,是一种“正常”的测试,主要是测试正常使用时,系统及时性(响应时间、吞吐率)是否满足要求,同时可能为了保留系统的扩展空间进行一些稍稍超出“正常”范围的测试。
2、稳定性测试
通过给系统加载一定的业务压力的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能够稳定运行。
3、负载测试
通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能够承受的最大负载量的测试。
4、压力测试
通常是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。压力测试是为了发现在什么条件下应用程序的性能会变得不可接受。
5、并发性能测试
并发性能测试的过程,是一个负载测试和压力测试的过程。即逐渐增加并发虚拟用户数负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标、资源监控指标等来确定系统并发性能的过程。并发性能测试是负载压力测试中的重要内容。
6、疲劳强度测试
通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。
疲劳强度测试案例制定的原则是保证系统长期不间断运行的业务量,并且应该尽量去满足该条件。
7、大数据量测试
独立的数据量测试:针对某些系统存储、传输、统计、查询等业务进行大数据量测试