为什么做性能测试?-新手须知

现状

  1. 互联网行业发展快,用户量大大增加;
  2. 业务和系统架构越来越复杂,数据越来越多,用户不仅仅满足于功能的实现,在某些场景下,更在意系统性能。

什么是性能测试

通过一定的手段,在多并发下情况下,获取被测系统的各项性能指标,验证被测系统在高并发下的处理能力、响应能力,稳定性等,能否满足预期。定位性能瓶颈,排查性能隐患,保障系统的质量,提升用户体验。

什么样的系统需要做性能测试

  1. 用户量大,PV比较高的系统 PV-访问量、调用量
  2. 系统核心模块/接口 系统中重要的功能
  3. 业务逻辑/算法比较复杂 性能可能比较差的功能
  4. 促销/活动推广计划
  5. 新技术选型 用新框架性能下降,作对比测试

性能测试分类

  1. 客户端性能:测试APP自身的性能,如CPU、内存消耗;web页面元素渲染的速度
  2. 服务端性能:测试服务端项目程序的支持并发、处理能力,响应时间等,主要通过接口来做性能测试 一般都是服务端的性能测试,高并发
    • 目前服务端的性能测试是主流,一般说到的性能测试,都是指的服务端性能测试。客户端相对较少一些
      在这里插入图片描述

性能测试指标

一个生活中的场景

客户端就像是一个工厂,服务端就像是一个仓库,卡车就是并发的用户请求。
工厂会向仓库派遣卡车,拉取货物后返回工厂,这个其实就是客户端向服务端发起请求,服务端返回响应数据。
同时,每辆车将货物拉回工厂后,会继续进行下一趟拉货的流程,一直持续到业务结束。
在这里插入图片描述

  1. 指标一:并发
    定义:同时向服务器发送请求的用户数

    • 几个容易混淆的概念
      • 注册用户:在系统中注册成功的用户数量,也就是数据库里存储的用户数量

      • 在线用户:同时处于在线状态的用户数量,也就是已经登录成功的用户数量

      • 并发用户:同时向服务器发送请求的用户数量,也就是正在做同一个业务的用户数

        在工厂的例子里,注册用户就是工厂里所有的卡车;在线用户就是已经派遣出去的卡车,但是车辆未必在拉货,可能在等待;并发用户就是正在拉货的卡车数量。
        很明显,注册用户 > 在线用户 > 并发用户。

  2. 指标二:TPS/QPS
    Transaction Per Second,每秒钟处理的事务数。
    在服务端接口性能测试中,事务Transaction可以理解成一次接口调用,所以TPS其实就是服务端每秒钟处理多少次接口调用。如果TPS越高,证明服务端项目的处理能力就越好,性能就越好。

    在工厂的例子里。如果有很多卡车来拉货,假设仓库每秒处理1000辆卡车的货物,那就可以说仓库的TPS=1000,这个数值越大,证明仓库单位时间内处理的货物就越多,性能就越好。
    QPS来源于数据库 query 每秒查询的事务数,一般没有这个概念。

  3. 指标三:平均响应时间
    在这里插入图片描述
    响应时间=网络传输的总时间+各组件业务处理时间 绿色箭头是网络传输时间

    • 平均响应时间
      • 响应时间Response Time,简称RT,指的是服务端处理完一个请求所花费的时间,通常时间单位为毫秒ms。
      • 平均响应时间就是n多个请求响应时间的平均值。
      • 平均响应时间越短,代表性能越好,TPS就越高。
      • 办理业务的速度越快,单位时间内处理的业务量越多,因此性能就越好。
  4. 指标四:TOP响应时间
    将所有请求的响应时间先从大到小进行排序,计算指定比例的请求都是小于某个时间。该指标统计的是大多数请求的耗时。
    Tp90(90%响应时间):90%的请求耗时都低于某个时间
    Tp95(95%响应时间):95%的请求耗时都低于某个时间
    Tp99(99%响应时间):99%的请求耗时都低于某个时间
    在这里插入图片描述

  5. 其他指标:

    • 并发数/虚拟用户(Vuser) 压测工具中设置的并发线程/进程数量
    • 成功率 请求的成功率
    • PV(Page View)页面/接口的访问量
    • UV(Unique Visitor)活跃用户页面/接口的每日唯一访客,一个用户访问100次,PV=100,UV=1
    • 吞吐量 网络中上行和下行的流量总和,吞吐量代表网络的流量,TPS越高,吞吐量越大
  6. TPS、响应时间和并发数的关系
    还是工厂的例子,站在仓库的角度来看,随着拉货的卡车越多,那同一时刻仓库的处理业务量就越大,但是仓库的处理能力总有一个上限,当卡车数量达到某个值后,处理能力就能达到巅峰。此时如果再来更多的卡车,仓库的处理能力也不会增加了,再来的卡车只能慢慢排队,所以响应时间就越来越长了。

    在系统达到性能瓶颈之前,TPS和并发数成正比关系,即并发数越高,TPS越高;达到瓶颈后,并发数增加,TPS不会继续增高(甚至会下降),这个最高的tps出现的点,叫做拐点(最高处理能力:一般性能测试就为了找这个值)

    TPS和平均响应时间成反比关系,即平均响应时间越小,TPS就越高

    响应时间单位为秒的情况下
    TPS = 1 / 响应时间 * 并发数
    TPS = 并发数 / 响应时间
    在这里插入图片描述
    在这里插入图片描述

  7. 性能监控指标
    操作系统级别监控
    CPU使用率、内存使用率、网络IO(input/output)、磁盘(read/write/util)
    中间件监控
    连接数、长短连接、使用内存
    应用层监控
    线程状态、JVM参数、GC频率、锁
    DB层监控
    连接数、锁、缓存、内存、SQL效率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值