测试驿栈-由浅入深学性能 性能测试连载 (3)-性能指标

飞天小子的性能课堂 · October 09, 2019 · 2526 hits

性能交流扣扣群:317765580

概述

我们在用jmeter做性能测试的时候,有一些关键性的性能指标需要去分析。但是由于开源工具本身的局限性,这些指标在工具中的命名极易对我们造成混淆。所以我们需要对这些指标逐个进行剖析

指标分析

响应时间

用户通过客户端向服务端发出请求的时间为:T1

服务端接收到请求,处理该请求的时间为:T2

服务端返回数据给客户端时间为:T3

客户端接收到响应数据,处理数据呈现给用户时间为:T4

响应时间系统视角

系统的响应时间Ts= T1+T2+T3

该时间没有包括客户端对数据处理并呈现的时间T4

响应时间用户视角

用户眼中的的响应时间Tu = T1+T2+T3+T4

用户通过客户端发出请求到客户端展现请求结果,这个时间越短越好

响应时间服务器视角

服务器接收到客户端发送的请求,并给出响应,这个过程所消耗的时间为响应时间,即服务器仅关注T2

从不同的视角下,衡量响应时间的指标也各不相同。在实际测试过程中,要明确以什么视角验证被测对象的性能。

并发

并发用户数

简称 VU ,指的是系统中操作业务的用户。一般称为虚拟用户数。并发用户数跟注册用户数,在线用户数有很大差别。并发用户数一定会对服务器产生压力,而在线用户数只是挂在系统上,对服务器不产生压力

在线用户数

在已有系统中选取高峰时刻,在一定时间内使用系统的人数,这些人数可认为是在线用户数

注册用户数

数据库中存在的用户数。并发用户数可以取系统用户数的10%,例如在半个小时内,使用系统的用户数为10万,那么取10%(即1万)作为并发用户数

系统并发数

一般指测试工具为了模拟出用户并发压力而启动的线程,比如jmeter里面的Thread。由于jmeter中的线程有迭代的概念,所以通过线程迭代数就可以模拟出用户单位时间最大的并发数。
注意不要把
系统并发数和并发用户数*的概念混在一起哦~

并发视角

广义

单位时间内同时发送给服务器的请求数,强调同时发送。比如一秒钟点击100次查询

狭义

单位时间内同时发送给服务器相同的业务,强调业务请求相同。比如一秒钟有100人点击了查询按钮

服务端视角

并发数为单位时间内服务端接收到的请求数

客户端视角

单位时间内同时发送给服务端的请求数

用户视角

客户端的业务请求一般为用户操作行为,也可理解为并发用户数,又可称为虚拟用户数

吞吐量

单位时间内系统处理请求的数量。吞吐量直接体现了软件系统的业务处理能力

衡量方式

Rps 请求数/单位时间

Hps 点击数/单位时间

Tps 通过事物数/单位时间

Qps 查询数/单位时间

TPS模型

随着压力不断增长,实测系统的资源会不断被消耗,TPS值会因为这些因素而发生变化,并且符合一定的规律

a点:性能期望值

b点:高于期望值,系统资源处于临界点

c点:高于期望值,拐点

d点:超过最大负载,系统崩溃

从上述模型,将性能测试分为3种类型

基准测试

原点到a之间的系统性能,指以系统预期性能指标为前提,对系统不断增加压力,以验证系统能否达到预期性能

负载测试

a到b的系统性能,是指对系统不断地增加压力或一定压力下的持续运行,直到系统的某项或多项性能指标达到极限,例如某种资源已经达到饱和状态等

压力测试

b 到d之间的系统性能,是指超过安全负载的情况下,对系统不断施加压力,直到系统崩溃,找出系统的瓶颈点和崩溃点。

TPS(每秒处理事务数)

一个事务是指客户端向服务器发送请求然后服务器做出反应的过程

单请求事物

事物由单个接口请求构成。如一次登录,一次查询

多请求事物

事物由多个接口请求构成。如登录-查询-新增-退出。这四步操作构成一个完整的事物

TPS的决定性因素

事务是要靠虚拟用户完成

1个用户在1秒内完成1笔事务,那么TPS就是 1

1个事物响应时间是1ms,那么1个用户在1秒内能完成1000笔事务。TPS就是1000

1笔业务响应时间是1s,那么1个用户在1秒内只能完成1笔事务。想达到1000TPS就至少需要1000个用户

因此可以说1个用户能产生1000TPS, 1000个用户也可以产生1000TPS,由响应时间决定

Rps 每秒发起的请求数

并发数=rps*平均响应时间

RPS用来描述施压引擎实际发出的压力大小

RPS模式主要是为了站在服务端视角去直接衡量系统的吞吐能力-TPS而设计的

并发过低时可能达不到预期的RPS,并发过高时可能压力过大直接压垮服务器

按照被压测端需要达到的TPS去设置相应的RPS,应用场景主要是一些动态的接口API,比如登陆、提交订单

吞吐量行业标准

金融行业:1000TPS~50000TPS,不包括互联网化的活动

保险行业:100TPS~100000TPS,不包括互联网化的活动

制造行业:10TPS~5000TPS

互联网电子商务:10000TPS~1000000TPS

互联网中型网站:1000TPS~50000TPS

互联网小型网站: 500TPS~10000TPS

性能测试全系列博客
jmeter接口自动化系列博客
jmeter基础内容在线公开课
jmeter性能测试在线公开课
接口自动化课程
性能测试课程

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
No Reply at the moment.
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up