性能测试指标

性能概念

性能测试、负载测试、压力测试、容量测试、稳定性测试...... 期望: 概念+关键字 先做负载测试 + 性能测试 ==性能报告 如果有不稳定性的问题, 再做压力测试 日常工作中,经常会听到 【压测】 【压力测试】

  • 【压测】 应该是什么意思?
    • 就是 要 我们 先做 负载测试,得到接口的 最大可接受的并发用户数,
    • 然后,再用这个并发用户数,进行性能测试,得到性能指标数据,输出性能报告。
  • 口语中【压力测试】
    • 真正意图也是 负载测试 + 性能测试,得到性能指标数据,输出性能报告。
    • 口语中说的压力测试,说这个话的人,不一定懂得性能测试概念。
  • 【基准测试】
    • 基准: 以前没有,现在要你得出第一版性能指标数据,然后,后续版本时,就可以与这 个数据,进行比较,得到性能是否得到优化。
    • 也是 ,先做接口的 负载测试,再做性能测试, 得到性能指标值。
  • 并发用户数 vs 线程数
    • 性能测试中,并发用户,是原始驱动力,并发用户模拟我们真实的用户
      • 性能测试,是要用 多用户并发的,单用户的测试,不是我们性能测试
    • 并发用户数:
      • 性能测试工具:工具不一样,来模拟产生并发用户的方式是不一样的。
        • 造出这些并发用户的方式 常见的有三种:
          • 线程: 用线程来造人, 并发用户数=线程数
          • 进程: 用进程来造人, 并发用户数=进程数
          • 协程: 用协程来造人, 并发用户数=协程数

                             进程、线程、协程之间关系: 理解为 一个手(手臂、手掌、手指)

性能测试工具:

  • jmeter: 用线程 来造人, jmeter中,我们把 线程数==并发用户数
  • loadruner: 可以用线程造成、也可以用进程造成,lr中,就要看你具体用 那种方式 ngrinder:用【进程*线程】造人,它的这个 并发用户数== 进程*线程的 数量
  • locust:用 协程 来造人, 它的并发用户数 === 协程

性指标

并发用户数

  • 并发 VS 并行
    • 同一时间做事情(不要求是相同的事情)
      • 狭义:如果做的 事情相同 (同一时间做相同的事情),这个是我们狭义上的并发 (集合点)
      • 广义: 同一时间做事情(可以相同也可以不同) 我有两个程序同时运行
  • 并发用户数 vs 在线用户数 vs 系统用户数
    • 并发用户数, 一定有并发请求的用户数
    • 在线用户数,只有在访问系统,我可以不做请求(挂机),也可以请求,所以,我们性 能测试,不用在线线程数
      • 行业经验: 在线用户数的5%-10%当作并发用户数
    • 系统用户,访问了系统、登录系统,在系统中留下了访问记录的人,都会被定义为 系统 用户

响应时间RT

一个请求,从发起点开始计时,经过网络传输,到达服务器,在服务器内部处理,通过网络 传输返回给发起方,之间的时间差,就是响应时间。

http\https 发起方 ----------网络传输------>服务器--服务器-...服务器-------网络传输------ >发起方

  • 在性能测试中,我们期望,网络传输时间越短越好
    • 怎么才能让这个网络传输时间短呢?
      • 高带宽
      • 尽可能使用 有线网络
      • 网络越简单 越好 ---推荐用 局域网 ------性能测试时,独立网络
    • 我们性能测试,尽可能的使用 有线网络+局域网络+独立网络 
    • 服务器处理的越快,那么 响应时间也会越短
      • 如果响应时间越短,说明服务器性能越好
        • 服务器 == 硬件 + 操作系统 + 项目
    • 服务器性能,怎么才是好的性能呢?
      • 需要 把 硬件 +操作系统+项目,综合调优,使其性能最优,这就是我们性能测 试最终目的。
      • 性能测试人员的价值,就体现在: 能把 硬件 +操作系统+项目,综合调优
  • 响应时间值,就是一个非常重要的性能指标。
    • 行业标准: http\https协议,接口的平均响应时间 <=1.5s AvgRT、aRT
    • 平均响应时间 50%响应时间, 平均响应时间,并不能完全体现你的性能真实情况
    • 90%响应时间,相对来说,更加真实的反应 性能情况
      • 90%响应时间: 说,我们总的请求次数中,所有的响应时间中有90%的响应时 间,是<=这个时间的
  • 补充:
    • 并发: 同一时间做事情
    • 请求数: 最终执行的结果

TPS(transaction per second)

  • 服务器每秒处理的事物数,
  • 是服务器能力值的综合体现,所以它 是我们性能测试中 ** 最主要的性能指标值**
    • 所以,企业,期望这个值 越大越好
  • 事物 一个事物,就是一个会话
    • 一个事物,可以是多个完全的请求和响应
    • 性能测试,开始时,先做单接口的性能测试,然后,在做多接口合并为业务的性能测 试。
  • TPS vs QPS vs HPS vs RPS
    • QPS: 服务器每秒的查询率
      • 查询:1、包括数据库查询;2、资源申请
      • 一个事物请求,有可能需要N多次查询(N肯定是大于等于1)
      • TPS:QPS = 1:N
      • 所以,在口头上说明 QPS 为多少,TPS也要是多少
      • 服务器的监控中显示的数据,都是用QPS ==tps
      • 性能测试,用接口,接口与事物对应的,所以,我们性能测试,看到是TPS
    • HPS:
      • HitPerSecond 每秒点击率
      • 点击: 这个点击,发生在客户端(用户端)
      • 点击一次,一定是发生一个接口请求吗? 也是1:k(k肯定也是大于等于1)
      • 在web的性能测试中,我们会把 HPS == TPS ,但是,我们也要明白,HPS是用户 端的数据
      • 在对 服务器端 进行性能测试时,我们没有HPS这个概念
    • RPS:
      • RequestPerSecond: 每秒请求率
      • 请求: 也是 用户端
      • 请求可以是界面请求,也可以是工具发起的请求
      • 在用工具做性能测试时,也会有 rps == tps

吞吐量

每秒钟,网络传输多少事物数 单位: 事物/s

  1. 在网络没有瓶颈的时候, 吞吐量的数值 = 服务器TPS数值
  2. 如果有网络瓶颈, 吞吐量的数值 != 服务器TPS数值 , 因为,次数网络阻塞,事物传递不到 服务器,服务器处理的结果返回不到发起方,所以,这时,就不能用 吞吐量 来等价 TPS

吞吐率

每秒钟,网络中传输的字节数, 单位:KB/s 1B=8b 带宽的单位 1Mbps ?KB/s

资源利用率

服务器各种软硬件资源的使用率

CPU的使用率、内存使用率、磁盘使用率、IO使用率

我们行业中,一般,把这些使用率的标准线 划定为 80%

对于cpu来说,因为我们大多都是 多核cpu,这个cpu使用率,是整体所有核一起的总的cpu使用 率。增加CPU的数量,是有可能降低 cpu的总使用率的。

  • 性能测试指标,是我们性能测试时候,需要输出,怎么输出呢?
    • 需要有 监控
    • 监控可以收集这些数据,用于 性能分析
  • 企业要开展性能测试,要具备条件?
    • 1、独立网络(有线、局域网)
    • 2、独立服务器 (硬件配置要与生成一致、服务部署架构要与生成一致,集群大小,可以 缩减)
      • 如果性能测试一定要用 硬件配置不一样的机器来做, 做完之后,性能指标完全不能 等价
      • 但是,发现的性能问题,进行性能分析调优,这个可以通用

性能测试流程

  • 性能测试准备
  • 性能测试环境搭建(+监控) ===时间比较长,但是有难度
  • 性能脚本开发 性能测试 ===========时间最长,但是不复杂
  • 性能结果分析与调优 性能问题跟踪性能报告
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值