性能测试系列(3)-常用的性能指标,对性能指标的解释

性能指标有两种

  • 业务指标
  • 技术指标

通常我们会从两个层面定义性能场景的需求指标,它们有映射关系,技术指标不能脱离业务指标

 性能测试系列(3)-常用的性能指标,对性能指标的解释

并发

狭义理解

  • 指同一个时间点执行相同的操作(如:秒杀)

 广义理解

  • 同一时间点,向服务器发起的请求(可能是不同的请求)
  • 只要向服务器发起请求,那么服务器在这一时间点内都会收到请求(不管是不是同一个请求)

并发用户数(重点)

  • 同一时间点,发出请求的用户数,一个用户可以发出多个请求

和并发的关系

  • 假设有 10 个用户数,每个用户同一时间点内发起 2 个请求,那么服务器收到的请求并发数就是 20

相关概念

  • 系统用户数:系统累计注册用户数,不一定在线
  • 在线用户数:在线用户可能是正常发起请求,也可能只是挂机啥操作都没有【在线用户数并发用户数】
  • 线程数:在 jmeter 中,线程数和并发用户数等价

事务

  • 客户端向服务器发送请求,然后服务器做出响应的过程
  • 登录、注册、下单等功能都属于一个事务
  • 一个事务可能会发起多个请求

jmeter相关

  • jmerter 中,默认一个接口请求,就是一个事务;但也支持多个接口整合成一个事务

若一个业务或事务有多个接口,那么多个单接口的性能指标值相加  业务或事务的性能指标值

看看还有哪些性能指标值

性能测试系列(3)-常用的性能指标,对性能指标的解释

响应时间(response time)

  • 概念:从发起请求到收到请求响应的时间
  • 包含:Request Time 和 Response Time
  • 等价:发起请求网络传输时间 + 服务器处理时间 + 返回响应网络传输时间

(在做性能测试时,要尽可能的降低网络传输时间,这样最终得出的 RT 会无限接近服务器处理时间,所以我们要把网络环境搞好)

(事务请求响应时间,完成单个事务所用的时间,1个事务可能包含多个请求)

TPS(Transaction Per Second,最主要的指标)

  • 服务器每秒处理事务数,衡量服务器处理能力的最主要指标

T是如何定义的

  • 在不同的行业、业务中,TPS 定义的颗粒度可能是不同的
  • 所以不管什么情况下,需要做性能测试的业务的相关方都要知道你的 T 是如何定义的

定义TPS颗粒度

  • 一般会根据场景的目的来定义 TPS 的粒度
  • 接口层性能测试:T 可以定义为接口级
  • 业务级性能测试:T 可以定义为每个业务步骤和完整的业务流

举例

性能测试系列(3)-常用的性能指标,对性能指标的解释

如果要单独测试接口 1、2、3,那么 T 就是接口级

如果从用户角度下订单,那 1、2、3 都在一个 T 中,就是业务级

所以,性能中 TPS 中 T 的定义取决于场景的目标和 T 的作用

 

如何去测试

按照接口级脚本----业务级接口层脚本 ----- 用户级脚本  去调用去测试

QPS(Queries per second)

  • 每秒查询率,在数据库中每秒执行 SQL 数量
  • 一个请求可能会执行多条 SQL
  • 某些企业可能会用QPS代替TPS
  • 也是衡量服务端处理能力的一个指标,但不建议使用

RPS(Request per second)

  • 简单理解(每秒请求数,用户从客户端发起的请求数)
  • 就是说用户在那一秒点击一次,然后发送了3个请求,这3个请求分别调了A服务,B服务,C服务各自两次。但是这个RPS是3 并不是2+2+2

HPS(Hit per second)

  • 点击率,每秒点击数
  • 有直接理解为用户在界面上的点击次数
  • 一般在性能测试中,都用来描述 HTTP Request,那它代表每秒发送 HTTP 请求的数量,和 RPS 概念完全一样
  • HPS 越大对 Server 的压力越大

CPS/CPM

  • 每秒/每分钟调用次数
  • 通常用来描述 Service服务 层的单位时间内被其他服务调用的次数 (
    • 就是说用户在那一秒点击一次,然后发送了3个请求,这3个请求分别调了A服务,B服务,C服务各自两次。然后这个分别是 2 ,2 ,2次
    )

吞吐量(Throughput)

  • 单位时间内,网络处理的请求数量(事务/s)
  • 网络没有瓶颈时,吞吐量≈TPS

资源利用率

  • 服务器资源的使用程度,比如服务器(应用、服务器)的CPU利用率,内存利用率,磁盘利用率,网络带宽利用率
  • 一般不超过80%

相关推荐