zoukankan      html  css  js  c++  java
  • 性能测试系列(3)-常用的性能指标,对性能指标的解释

    性能指标有两种

    • 业务指标
    • 技术指标

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

     

    并发

    狭义理解

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

     广义理解

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

    并发用户数(重点)

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

    和并发的关系

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

    相关概念

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

    事务

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

    jmeter相关

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

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

    看看还有哪些性能指标值

    响应时间(response time)

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

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

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

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

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

    T是如何定义的

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

    定义TPS颗粒度

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

    举例

    如果要单独测试接口 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%
  • 相关阅读:
    Java工具类
    集合 -- 嵌套表
    集合--索引表
    第一章
    记录Record
    序列Sequence
    操纵数据库 DML
    表的集合操作
    视图
    索引
  • 原文地址:https://www.cnblogs.com/xinhua19/p/13139646.html
Copyright © 2011-2022 走看看