性能测试的结果分析是性能测试的重中之重。在实际工作中,由于测试的结果分析比较复
杂、需要具备很多相关的专业知识,因此常常会感觉拿到数据不知从何下手。这也是我学习性能
测试过程中感觉比较尴尬和棘手的事,为此我在研读了《WEB性能测试实战》后特作了以下笔
记,这里只是书中第4章WEB应用程序性能分析的一
部分,贴出来希望和大家共同讨论:
一:性能分析的基础知识:
1.几个重要的性能指标:相应时间、吞吐量、吞吐率、TPS(每秒钟处理的交易数)、点
击率等。
2.系统的瓶颈分为两类:网络的和服务器的。服务器瓶颈主要涉及:应用程序、WEB服务
器、数据库服务器、操作系统四个方面。
3.常规、粗略的性能分析方法:
当增大系统的压力(或增加并发用户数)时,吞吐率和TPS的变化曲线呈大体一致,则系统
基本稳定;若压力增大时,吞吐率的曲线增加到一定程度后出现变化缓慢,甚至平坦,很可能是
网络出现带宽瓶颈,同理若点击率/TPS曲线出现变化缓慢或者平坦,说明服务器开始出现颈。
4.作者提出了如下的性能分析基本原则,此原则本人十分赞同:
——由外而内、由表及里、层层深入
应用此原则,分析步骤具体可以分为以下三步:
第一步:将得到的响应时间和用户对性能的期望值比较确定是否存在瓶颈;
第二步:比较Tn(网络响应时间)和Ts(服务器响应时间)可以确定瓶颈发生在网络还是服
务器;
第三步:进一步分析,确定更细组件的响应时间,直到找出发生性能瓶颈的根本原因。
二:以WEB应用程序为例来看下具体的分析方法:
1.用户事务分析:
a.事务综述图(Transaction Summary ):以柱状图的形式表现了用户事务执行的成功与
失败。通过分析成功与失败的数据可以直接判断出系统是否运行正常。若失败的事务非常多,则
说明系统发生了瓶颈或者程序在执行过程中发生了问题。
b.事务平均响应时间分析图(Average Transaction Response Time): 该图显示在
测试场景运行期间的每一秒内事务执行所用的平均时间,还显示了测试场景运行时间内各个事务
的最大值、最小值和平均值。通过它可以分析系统的性能走向。若所有事务响应时间基本成一条
曲线,则说明系统性能基本稳定;否则如果平均事务响应时间逐渐变慢,说明性能有下降趋势,
造成性能下降的原因有可能是由于内存泄漏导致。
c.每秒通过事务数分析图(Transaction per Second即TPS):显示在场景运行的每一
秒中,每个事 务通过、失败以及停止的数量。通过它可以确定系统在任何给定时刻的实际事务
负载。若随着测试的进展,应用系统在单位时间内通过的事务数目在减少,则说明服务器出现瓶
颈。
d.每秒通过事务总数分析图(Total Transactions per Second):显示场景运行的
每一秒中,通过、失败以及停止的事务总数。若在同等压力下,曲线接近直线,则性能基本趋于
稳定;若在单位时间内通过的事务总量越来越少,即整体性能下降。原因可能是内存泄漏或者程
序中的缺陷。
e.事务性能摘要图(Transaction Performance Summary):显示方案中所有事务的
最小、最大平均执行时间,可以直接判断响应时间是否符合客户要求(重点关注事务平均、最大
执行时间)。
f.事务响应时间与负载分析图(Transaction Response Time Under load):通过
该图可以看出在任一时间点事务响应时间与用户数目的关系,从而掌握系统在用户并发方面的性
能数据。
g.事务响应时间(百分比)图(Transaction Response Time(percentile)):该
图是根据测试结果进行分析而得到的综合分析图。分析该图应从整体出发,若可能事务的最大响
应时间很长,但如果大多数事务具有可接受的响应时间,则系统的性能是符合。
h.事务响应时间分布情况图(Transaction Response Time (Distribution)):该
图显示了测试过程中不同响应时间的事务数量。若系统预先定义了相关事务可以接受的最小和最
大事务响应时间,则可以使用此图确定系统性能是否在接受范围内。