【性能测试】2. 性能测试都关注哪些性能指标?

2021-08-09 13:39:25 浏览数 (1)

先看图:

上述图中,三线,三区,两点,三状态

  1. 三条曲线:吞吐量的曲线(紫色),使用率/用户数曲线(绿色),响应时间曲线(深蓝色)
  2. 三个区域:轻负载区(Light Load),重负载区(Heavy Load),塌陷区(Buckle Zone)
  3. 两个点:最优并发用户数(The Optimum Number of Concurrent Users),最大并发用户数(The Maximum Number of Concurrent Users)
  4. 三个状态描述:资源饱和(Resource Saturated),吞吐下降(Throughput Falling),用户受影响(End Users Effected)

TPS:

描述每秒事务数(Transaction Per Second),在不同的行业或者业务中定义的粒度都是不相同的,不管在哪里使用TPS,都因该有一个前提,所有相关的人都需要知道T的具体定义

如何定义TPS?

一般来说,会根据场景的目的来定义TPS的粒度,如果是接口层性能测试,T可以直接定义为接口级;如果是业务级别的性能测试,T可以直接定义为每个业务步骤和完成整的业务流;

如果单独测试接口1,2,3,则T就是接口级别的,如果我们要从用户的角度来下一个订单,那1,2,3应该在一个T中,则是业务级的。

所以,性能中TPS中的T的定义取决于场景目标和T的作用,一般我们都会这样来定义事物

  • 接口级别脚本

事务start(接口1)---> 接口1脚本 ---> 事务end(接口1)

事务start(接口2)---> 接口2脚本 ---> 事务end(接口2)

事务start(接口3)---> 接口3脚本 ---> 事务end(接口3)

  • 业务级别脚本

事物start(业务A)---> 接口1脚本-接口2(同步调用)--->接口1脚本-接口3(异步调用)--->事务end

  • 用户级别脚本

事物start(业务A)---> 点击0-接口1脚本-接口2(同步调用)--->点击0-接口1脚本-接口3(异步调用)--->事务end

一般来说,我们会从上倒下的顺序一一的测试,这样路径清晰地执行容易定位问题

在性能测试过程中,TPS之所以重要的原因,是因为他可以反应出一个系统的处理能力

QPS:

一开始是用来描述 MySQL 中 SQL 每秒执行数 Query Per Second,所有的 SQL 都被称为 Query,其实描述的是服务的DB层数据库中SQL每秒的执行条数,如果描述的前端每秒查询数,就不包括插入更新删除更新操作了,这样描述系统整体的性能就不全面了,所以并不建议使用,以免产生误解。

RPS:

每秒请求数,Request per second,比较宽泛,常用于描述HTTP Resquest

HPS:

每秒点击数,Hits Per Second,hit一般用来描述http request,也有用来描述在界面上的点击次数,如果当他描述HTTP Resqust时,与RPS盖面一致

CPS/CPM

Calls Per Second/ Calls Per Minutes,每秒 / 每分钟调用次数

RT:

响应时间,response time

如上图,RT = T2 - T1,计算响应时间比较简单,但是响应时间的定位比较复杂;

压测工具中线程数和用户数与TPS

实际上,并发的线程并不能等价为真实用户,如下图开始解释

上图的4个箭头,每个箭头都代表着相同的事务,每个线程都可以在1s内完成4个事务,所以总的TPS为16

0 人点赞