性能测试中重要的度量指标有哪些?

77 阅读8分钟

下面将对性能测试中的一些典型指标进行深入解读,这些典型指标包括性能测试中的各种响应时间、不同类型的用户数、系统处理能力、错误率、成功率、资源占用率、CPU利用率、内存页交换速率、内存占用率、磁盘的输入/输出速度和频率、网络吞吐量以及系统稳定性等。

1.响应时间

响应时间指从用户或事务客户端发起一个请求开始,到客户端接收到从服务器端返回的响应 结束,这整个过程所消耗的时间。在性能测试中,响应时间一般以测试环境中压力发起端发出请求至服务器返回处理结果的时间为计量,单位为秒或毫秒

系统的响应时间指标与人对软件性能的主观感受是非常一致的,它完整地记录了整个计算机系统处理请求的时间。在多层架构下,系统的响应时间是由多个环节的时间构成的,如下图所示。

图片

从上图中可以看到,一个事务的请求响应时间是由以下几部分组成的。

C1:用户请求发出前在客户端完成预处理所需的时间。

C2:客户端收到服务器返回的响应后,对数据进行处理并呈现给客户所需的时间。

A1:Web/App服务器对请求进行处理所需的时间。

A2:数据库服务器对请求进行处理所需的时间。

A3:Web/App服务器对数据库服务器返回的结果进行处理所需的时间。

N1:请求由客户端发出并达到Web/App服务器所需的时间。

N2:如果需要进行数据库相关的操作,由Web/App服务器将请求发送至数据库服务器所需的时间。

N3:数据库服务器完成处理并将结果返回Web/App服务器端所需的时间。

N4:Web/App服务器完成处理并将结果返回给客户端所需的时间。

对此,需要说明如下几点。

客户端处理时间:C1+C2。

网络传输时间:N1+N2+N3+N4

Web/App服务器处理时间:A1+A3.

数据库服务器处理时间:A2。

系统的响应时间=网络传输时间+Web/App服务器处理时间+数据库服务器处理时间=N1+N2+N3+N4+A1+A3+A2。

事务的响应时间=系统的响应时间+客户端处理时间=N1+N2+N3+N4+A1+A3+A2+C1+C2.

需要注意的是,在性能测试实践中,为了使响应时间更具代表性,响应时间通常是指事务的平均响应时间ART(Average Response Time),即在系统稳定运行的时间段内同一事务的平均响应时间。如下图所示,横轴表示并发用户数,纵轴表示系统某事务的平均响应时间ART。随着并发用户数的增加,该事务的处理时间变长,并发用户数越多,响应速度越慢。当并发用户数从20个上升到40个时,平均响应时间只有轻微的变化。当并发用户数从40个上升到60个时,平均响应时间出现明显增加。

图片

在实践中要注意,不同行业、不同业务可接受的响应时间是不同的。一般情况下,对于在线实时交易,

可接受的响应时间参考如下。

互联网企业:500毫秒以下,例如淘宝业务为10毫秒左右。

金融企业:1秒以下为佳,部分复杂业务为3秒以下。

保险企业:3秒以下为佳

制造业:5秒以下为佳

针对不同数据量,响应时间是不一样的,在大数据量的情况下,系统可能需要2小时才能实现响应。测试人员应该更好地理解不同行业、不同业务用户对系统响应能力的期望和容忍度,这对做好性能测试是很有帮助的。

在性能测试实践中,平均响应时间的阈值相当于响应时间的边界值,可根据不同的事务分别设定。例如,事务可分为复杂事务、简单事务和特殊事务。其中,对特殊事务响应时间的设定须明确该事务在响应时间方面的特殊性。

2.用户数

从不同的角度来看,用户数可以分为系统注册用户数在线用户数并发用户数。其中,并发用户数指在同一时间段内,同时向系统提交请求的用户数。用户并发提交的请求可能是在同一个场景中发生或使用同一个功能,也可能是不同场景或功能。在实践中,并发用户会在同一时间段内在系统上做同一件事情或者同一个操作,这种操作一般为 一类型的业务操作。

系统所能承受的并发用户数量与系统的吞吐量、系统的响应时间存在一定的关系,如下图所示。

图片

上图中有3条曲线,曲线U表示资源的占用情况(包括硬件资源和软件资源),曲线X表示系统的吞吐量(这里指每秒处理的事务数),曲线R表示系统的响应时间,横轴表示并发用户数(系统负载),从左到右表示并发用户数不断增长。

在上图中,随着并发用户数的增长,在并发用户数不多的前期,资源占用率和吞吐量会相应增长,但是响应时间的变化不大。当并发用户数增长到一定程度后,资源占用达到饱和,吞吐量增长明显放缓甚至停止,而响应时间却进一步延长。如果并发用户数继续增长,资源占用继续维持在饱和状态,但是吞吐量开始

下降,响应时间明显在快速变长(响应速度变慢),超出了用户可接受的范围,并且最终导致用户放弃了这次请求,甚至离开使用的系统。

根据这种性能表现,上图划分了3个区域,分别是轻负载区,有较小的负载;重负载区,有较大的负载;以及无法忍受区,由于负载太大,系统的反应时间太长,用户无法忍受并可能放弃请求。在轻负载区重负载区交界处的并发用户数,称为最佳并发用户数,而重负载区和无法忍受区交界处的并发用户数称为最大并发用户数

在系统建设的规划阶段,有时候需要预测和提供系统能够支撑的并发用户数,作为系统建设的性能要求(需求)。此时可以根据系统规划的注册用户数、同时在线用户数及用户对系统的预期使用场景等进行分析,计算系统的并发用户数。

其中,系统注册用户数即系统规划的注册用户数量。例如对于某个业务系统,预计使用该系统的注册用户总数是5万人,那么这个数量就是系统注册用户数。注册用户是系统的潜在用户,他们随时都有可能登录系统和使用系统。这个指标的意义在于让利益相关方了解系统中的用户总量和系统最多可能承载多少用户同时在线。同时在线用户数是指在某一时刻已经登录的用户数量。在线用户数只是统计了某一时刻登录了系统的同时在线的用户数量,这些用户不一定都在对系统进行操作,不会对服务器产生压力。

平均并发用户数的计算公式:

C=nxL/T

其中:

C代表平均并发用户数;

n是平均每天的访问用户数;

L是一天内用户从登录系统到退出系统的平均时间;

T是使用时间长度,即一天内多长时间有用户使用系统。

系统的具体并发用户数取决于具体的业务逻辑和业务场景。根据经验,一般应用系统并发用户数为在线用户数的10%~20%。基于泊松分布理论,并发用户数的峰值计算公式:

图片

其中:

P代表并发用户峰值,即最大并发用户数;

C是平均并发用户数。

一般情况下,大型系统(业务量大、机器多)做压力测试会选取1万~5万个并发用户,中小型系统做压力测试选取5000个用户比较常见。