性能测试基本指标浅谈
初入性能测试行当时,录制个脚本调通已然把人搞的七荤八素,谁知这才是漫漫长征第一步。场景设定完成后,需要加监控指标时,这一堆指标都是干什么使的?一个指标给句几十个字的解释,确定就能明白一个指标到底是怎么回事?更可气的是解释往往说了跟没说一样。懂得自然懂,不懂的还是不懂。今天便来扒一扒这里面几个关键指标的含义和作用,算是入门的敲门砖吧,若受欢迎的话,将来没准写个连续剧。
吞吐量
如果是从统计上讲就是在一次性能测试过程中,网络上传输的数据总量。举个例子就像手机一直用流量上网,那个本月流量统计就是本月的吞吐量。
一次测试过程中传输了多少数据对于一般的性能测试来说,往往意义不是太大。除非有流量限制的需求,对过程的流量总数限定在一定的范围内的时候,会关注这个指标。
人们口头上甚至有很多软件实现中所说的吞吐量其实是吞吐率。通俗的讲就是是网络传输速率。和用下载工具下载东西的过程中看到的那些个1.2MB/s是一样的概念。
在下载过程中看到的下载速率一般只是在想我还有多久才能把这个东西下载完成,而在性能测试过程中,这个指标则显示了在那个时点服务器对发起请求的处理能力。如果随着虚拟用户数的逐渐上升,吞吐率也在随之上升,说明服务的处理能力还没达到饱和,还可以承载更多的用户。若是虚拟用户数上升,吞吐率并没有明显变化,甚至出现下降的趋势。则说明服务的性能已经达到瓶颈,已经不能应对当前用户的请求量了。一般遇到这种情况,排查手段就是从网络,数据库,应用服务器,代码本身4个环节去逐一排查系统的瓶颈所在。
点击率
点击率的含义不像字面上反映的是每秒有多少的点击量,而是每秒向服务器发送的请求数。有什么不一样呢?现在的页面往往包含一些图片,flash广告,javascript脚本,css脚本等一堆资源,没有缓存的话,每一个都会对服务发送一次请求。所以当鼠标点击一个超链接到新的页面时,点击率统计的到的数字并不是1,而是网页上所有对服务器资源请求的总和。
需要强调一点的是点击率只是客户端发送给服务器的请求总数,并不总等于服务器处理的请求数,这个有另外一个指标TPS(Transaction Per Second,每秒事务数)进行统计。虽然两者相似,却是表达了不同的信息,前者是客户端对服务器的压力大小,后者则是服务器处理能力的实际体现。使用过程中需要视测试场景进行选取。
事务通过率
性能测试过程中,所谓事务通过率就是得到了服务器正确响应事务数在相应的总事务数中的占比,是判断一次性能测试执行过程是否有效的一个重要指标。
若事务通过率低于一个限定值,则说明服务器并不能有效处理测试过程中的全部请求。对于不同的系统,该限定值也是可以不同的。若是需要很高稳定性的系统,限定值就会是99.9%(即一千笔业务只允许一笔业务失败)甚至更高。而如果是一般网页访问一类,则可以适当放宽到一个略低的水平,但一般不应低于95%,否则就认为系统的事务处理性能是不可接受的。
至此几个重要指标已经基本说完,还需要说明一点的就是在不同的性能测试软件中,同一个指标会有不同的表示方式。或直接给出数据,或需要进行一些人工计算才能真正获取到所需的数值,例如HyperPacer中就没有直接给出事务通过率,而是在综合统计表中给出了失败率。有机会再把几大性能测试软件针对同一指标的不同表现形式再列个表,方便性能测试人员的查阅比对。
性能测试过程实际开展之前,需要对使用的软件有个熟悉的过程,有针对的进行研究,才能更加有效的开展后续的工作,所谓磨刀不误砍柴工。而不是一上来就一通点击尝试,最后还是啥也没记住。