如何设计测试方案
一、 性能测试术语解释
1. 响应时间 响应时间即从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗 的时间。响应时间按软件的特点再可以细分,如对于一个 C/S 软件的响应时间可以 细分为网络传输时间、应用服务器处理时间、数据库服务器处理时间。另外客户端自 身也存在着解析时间、界面绘制呈现时间等。
响应时间主要站在客户端角度来看的一个性能指标,它是用户最关心、并且容易感知
到的一个性能指标。
网络角度:RT = 从应用系统发出请求开始,到客户端接收到最后一个字节数据为止
所消耗的时间。
硬件角度:RT = Thread CPU Time(CPU执行时间) + Thread Wait Time(线程等待
时间,包含IO等待,Sleep和Wait) + 网络传输的时间
业务角度:RT = 每个事务完成实际需要的时间之和 / 事务处理数目
2. TPS
指每秒系统能够处理事务的数量,即:TPS = 总事务数(成功 + 失败) / 运行时
长。这里提醒下(很多人的误解):对于多用户并发访问的系统,TPS与响应时间
(RT)不呈反比关系,即不一定呈线性关系。
3. 吞吐率
吞吐率指单位时间内系统处理用户的请求数,从业务角度看,吞吐率可以用每秒请求
数、每秒事务数(TPS)、每秒页面数、每秒查询数等单位来衡量。从网络角度看,
吞吐率也可以用每秒字节数来衡量。
吞吐率主要站在服务端的角度来看的一个性能指标,它可以衡量整个系统的处理能
力。对于集群或者云平台来说,吞吐率指标反映的是服务器集群对外整体能够承受的
压力,该指标比用户数更容易对比。
4. 吞吐量
指一段时间内服务器返回给客户端的数据量的大小,用于衡量被测系统的负载能力。
吞吐量 = 吞吐率 * 单位时间
5. 用户数
对于服务器集群或者云平台,几乎都是多用户系统,系统能提供给多少用户正常使
用,也是一个非常重要的度量指标。我们把这些用户按照使用系统的时机不同,做如
下区分。
系统用户数(System Users):指系统能够存储的用户量。
在线用户数(Online Users):指用户通过身份确认后,处于能正常使用状态的用户个
数。
并发用户数(Concurrent Users):指在某个时间范围内,同时正在使用系统的用户个
数。
严格并发用户数(Strictly the number of concurrent users):指同一时刻都操作
某个业务的用户数。
在性能测试过程中,我们要去模拟实际用户来发请求。但是为了向服务器产生更大的
压力,我们模拟的用户操作和实际的用户操作存在一定的差异(比如模拟的用户请求
比实际用户的请求更频繁),而且返种模拟的用户数和实际的用户数也难以相互换
算。所以在度量服务器集群能力时,吞吐率指标比用户数指标更实用。
二、 性能测试方法及目标
1. 性能测试方法
1.1 基准测试(Benchmark Testing)
基准测试是基于一定规模的数据量上进行单业务或按实际用户操作同比例组合业
务的测试,目的在于量化响应时间、吞吐率的指标,便于后续比对。
方法是做多组不同场景的测试,观察结果,抽取出几个关键数据做好记彔,用于
以后进行性能对比和评价。
1.2 性能测试(Performance Testing)
通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产
性能要求。
特点:
(1) 主要目的是验证系统是否具有系统宣称的能力。
(2) 需要事先了解被测系统的典型场景,并具有确定的性能目标。
(3) 要求在已确定的环境下运行。
1.3 负载测试(Load Testing)
通过在被测系统上不断增加压力,直到性能指标,例如“响应时间”超过预定指
标或者某种资源使用已经达到饱和状态。
特点:
(1) 主要目的是找到系统处理能力的极限。
(2) 需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量
和典型场景,使得测试结果具有业务上的意义。
(3) 一般用来了解系统的性能容量,或是配合性能调优使用。