压力测试基础

压力测试基础

压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况。然后做针对性的测试与分析,找到影响系统性能的瓶颈,评估系统在实际使用环境下的效率情况,评价系统性能以及判断是否需要对应用系统进行优化处理或结构调整。并对系统资源进行优化。

软件系统的负载压力是指系统在某种指定软件、硬件及网络环境下承受的流量,例如并发用户数、持续运行时间、数据量等。其中并发用户数是负载压力的重要指标。

负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。其中还有一种特定类型的负载测试,它是通过逐步增加软件系统的负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统提供的最大服务级别。

并发性能测试通过逐渐增加并发用户数负载,直到系统的瓶颈或者不能接收的状态,综合分析交易执行指标、资源监控指标等来确定系统并发性能的过程。并发性能测试是负载压力测试的重要内容。

疲劳强度测试是指构建系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,使其在持续一段时间内执行业务,保证到达系统疲劳强度需求的业务量,通过综合分析交易执行指标和资源监控指标,来确定系统在处理业务上的最大工作强度的过程。大数据量测试包括针对系统存储、传输、统计、查询等业务进行的独立数据量测试,以及结合压力性能测试、负载性能测试、疲劳性能测试相结合的综合数据量测试。

软件的性能可以通过响应时间、并发用户数、吞吐量、资源利用率等性能指标来衡量。
(1)响应时间:
是指用户从客户端发出请求到接收完服务器返回结果的整个过程所需花费的时间,包含网络传输时间以及服务器处理时间。从用户角度来看,响应时间应该从客户端计算机处理用户操作并发出请求到客户端程序收到服务器端返回结果并显示出来的时间。

(2)并发用户数:
是指在一定时间内,某一时刻同时与服务器进行会话操作的用户数,并发用户数的类型包括:系统用户数、同时在线用户数,业务并发用户数。

(3)吞吐量:
是指单位时间内,系统处理用户的请求数或页面数量,可以直接反映出软件的承载能力。一般来说,利用每秒钟的请求数或页面数量衡量吞吐量;从业务的角度来看,也可以用每天的访问人数或每小时处理的业务数来衡量。

(4)资源利用率:
是指系统资源(CPU、内存)的利用率,通常用资源的实际使用量与总的资源可用量比值来衡量,包括网络、操作系统、数据库等方面。

以上四种性能指标主要可分为系统资源利用率和系统行为(响应时间、吞吐量等)两个方面。它们之间存在一定的相关性,共同反映出性能的不同方面。比如,响应时间、最大并发用户数、吞吐量和资源利用率可以分别用来衡量软件的及时性、扩充能力和容量、处理能力、运行状态。响应时间越短、承受的并发数越多、吞吐量越大、占用的资源越少,表明系统性能越好,反之性能越差。

压力测试的指标

TPS
TPS 即Transactions Per Second的缩写,每秒处理的事务数目。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程(完整处理,即客户端发起请求到得到响应)。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。一个事务可能对应多个请求,可以参考下数据库的事务操作。

Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS一般包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS)

CAPS: Call Attempts Per Second (每秒建立呼叫数量)

TPS是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。

QPS
QPS 即Queries Per Second的缩写,每秒能处理查询数目(完整处理,即客户端发起请求到得到响应)。是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
我们从它的英文全名可以得出它是查询意思,原来在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 虽然名义上是查询的意思,但实际上,现在习惯于对单一接口服务的处理能力用QPS进行表述(即使它并不是查询操作)。QPS相当于最大吞吐率。

QPS = 请求查询数 / 秒

QPS = fetchs / per second

TPS和QPS的区别
QPS 每秒能处理查询数目,但现在一般也用于单服务接口每秒能处理请求数。
TPS 每秒处理的事务数目,如果完成该事务仅为单个服务接口,我们也可以认为它就是QPS。

RPS
RPS(Requests Per Second,即每秒发送请求数,又称为吞吐率)指客户端每秒发出的请求数。阿里云PTS 对于这个词的解释为RPS有些地方也叫做QPS,在不单独讨论“事务”的情况下可以近似对应到Loadrunner/jmeter的TPS(Transaction Per Second, 每秒事务数)。RPS(Request Per Second,每秒请求数)在一定条件下和QPS 和TPS类似。

吞吐率 = 总请求数 / 处理这些请求的总完成时间

Requests per second = Complete requests / Time taken for tests

吞吐率是服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称为最大吞吐率。

响应时间
严格意义上说是从客户端发送请求开始,到客户端接受到服务器的返回结束。在我们测试环境中,客户端和被测服务器往往在一个机房一个网段甚至同一个交换机,所以我们通常把响应时间认为是服务器处理请求所耗费的实际。

平均处理时间(RT)
RT(Reponse Time,即响应时间),从发起请求到完全接收到应答的时间消耗。
RT(响应时间):处理一次请求所需要的平均处理时间。
我们一般还会关注90%请求的的平均处理时间,因为可能因网络情况出现极端情况。

并发用户数(The number of concurrent users, Concurrent Level,并发量)
每秒对待测试接口发起请求的用户数量。一个用户可能产生多个会话,所以并发用户数和并发连接数并不重复。并发用户数是指服务器某个时刻所能接受的用户数。

换算关系
QPS = 并发量/平均响应时间
并发量 = QPS * 平均响应时间

比如3000个用户(并发量)同时访问待测试接口,在用户端统计,3000个用户平均得到响应的时间为1188.538ms。所以QPS=3000/1.188538s= 2524.11 q/s。
我们就可以这样描述本次测试,在3000个并发量的情况下,QPS为2524.11,平均响应事件为1188.538ms

并发连接数(The number of concurrent connections)
并发连接数就是服务器某个时刻所接受的请求数目,也就是某个时刻所接受的会话数目。

用户平均请求等待时间(Time per requests)
用户平均请求等待时间 = 总时间 / (总请求数 / 并发用户数)
Time per requests = Time taken for tests / (Complete requests / Concurrent Level)

服务器平均请求等待时间(Time per requests: across all concurrent requests)
服务器平均等待时间 = 总时间 / 总请求数
Average request latency server = Time taken for tests / Complete requests

线程数
程序运行中消耗cpu的线程数,在正常消耗范围内线程数越大越好。

吞吐量
吞吐量,是指在一次性能测试过程中网络上传输的数据量的总和。
对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外,在性能调优过程中,吞吐量指标也有重要的价值。

压力测试方法

压力测试的方式是:以一定请求总量,保持不变,逐步增加并发量,观察QPS的变化及平均响应时间的变化。比如10000的总请求数,然后测试100的并发量情况下的QPS值,然后200、300、400、500等。

一个系统吞吐量通常由TPS和并发数两个因素决定,每套系统的TPS和并发数都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。

参考文章:
软件压力测试
压力测试概念及方法(TPS/并发量)
Jmeter服务器性能压测之—QPS/RPS/TPS/RT/并发数/并发连接数/并发用户数/线程数/吞吐量等概念详解

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值