51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 680|回复: 0
打印 上一主题 下一主题

性能测试的核心原理

[复制链接]
  • TA的每日心情
    开心
    2022-9-21 15:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2023-5-10 10:35:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      1 基于协议,前后端交互机制,性能核心。基于界面决定和前端用户交互,基于代码决定了后端。
      1 网络分布式架构。
      2 单机应用,比如安安兔,鲁大师。主要判断io读写,以及对资源的消耗。
      2 多线程,模拟多个虚拟用户量同时访问系统。
      3 模拟真实的场景。场景的设计合理直接决定了你得出的性能数据,从而影响你对系统的性能判断。
      核心指标:
      1 响应时间:
      前端发送请求,到后端返回的时间,从测试角度看,不包含前端对响应的渲染时间。
      响应时间=发送网络延时+应用程序处理的时间(包含应用程序和数据库处理时间)
      一般遵循3,5,8原则。取决于用户带宽,服务器带宽,服务器处理时间。
      2 事务处理能力(TPS):
      TPS标识单位时间内能够完成事务数量,也成为每秒事务数TPS。每个系统的TPS都有上限,并不随着用户的增加而增加。
      泛指的概念:比如打开一个页面-----登录----挑选商品-----网购支付,这每一个步骤都是可以理解成一个事务,甚至整个流程都可以理解成一个事务。每一个事务都有开始和结束,比如lr中要用lr_start_transaction("start_xiaohua")标识事务开始,lr_end_transaction("start_xiaohua", LR_AUTO)标识事务结束,所以TPS是软件测试结果的测量单位
      对于已经上线的系统,可以选取高峰时刻,在5分钟内,获取系统每笔交易的业务量和总业务量推算出TPS。
      TPS=请求数/时间
      3 每秒查询率(QPS):
      QPS标识一个特定的查询服务器在规定时间内处理流量多少。QPS类似于TPS。假如一个TPS中只有一个接口且接口内部没有向服务器再请求资源,那么此时TPS=QPS,否则不等。比如打开一个页面,就可以认为是一个TPS,但是一个页面的请求可能回像服务端再次请求多次请求,服务器对着这些请求,就可以计算计入QPS。例 每秒能进行N个事务的请求,假设一个TPS内包含4个QPS,那么就是N*4,通常QPS用来衡量单接口,TPS用来衡量多接口的混合场景,当然你把单个接口当做一个事务也可以。
      一个系统的吞吐量通常有QPS(TPS)并发数来决定,这两个值都有一个相对的极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去,如果压力持续增大,系统的吞吐量反而回下降,因为系统超负荷工作,频繁的上下文借还,内存等其他小号导致性能下降。
      原理:每天80%的访问集中在20%时间内,即根据二八原则,这20%时间叫做峰值时间


      4 思考时间:
      用户打开一个页面之后,回浏览该页面,此时并不向服务器发送请求,以8秒为基数,进行50%---200%的随机取值。以便更好的模拟用户请求的时间。
      5 每秒点击数(HPS):
      html中的一个img src就可以理解成一个HPS,,应该尽量较少HTTP请求,这取决于用户的数量。常见问题图片过大,连接数过多,该压缩的压缩,该合并的合并。
      和tps qps的区别,个人认为 tps>qps>hps
      6 最大连接数;
      系统的最大连接数通常受制于容器例如tomcat,apache等以及数据库的最大连接数。当tps出现瓶颈的时候,但是资源没有到达瓶颈,那么很大可能就是此类的性能问题。
      7 系统资源:
      1 cpu:
      1 %Processor Time cpu使用率。70%--80%一般视为最大值,当然cpu使用率达到100%也不代表系统会崩溃,加入cpu等待队列不超过4的化。
      2 %Processor Queue Length cpu等待队列长度。一般控制在2*内核数
      2 内存:
      1 总体可用数
      2 虚拟内存交换率 page/sec。
      虚拟内存,通常内存会将一部分数据放入到硬盘缓存中去,使用的时候再读回来,这种来回的数据交换就叫做内存的交换律,交换的单位是页page,所以也叫做内存的也交换率。
      3 缓存:
      分配给一个应用程序使用的内存。
      进行系统级优化的时候,重点利用好缓存机制。代码层面算法 sql语句等,减少内存,减少运算次数,预算次数决定cpu消耗,内存决定了资源占用。
      3 磁盘io
      应用程序存在硬盘谁给你,但是使用的时候,需要加载在内存上。
      1 硬盘使用率 %diskTime
      2 硬盘使用队列长度
      4 网络带宽(Bytes Total/sec):
      上相和下行相对而言
      1 每秒接受的数据量,低于下行带宽/8
      2 每秒发送的数据量,低于上行带宽/8
      Bytes Total/sec 用来描述发送和接受字节的速度,一次来判断网络带宽是否存在性能瓶颈。
      5 线程:
      进程是资源单位,线程是执行单位,在cpu三状态轮换图中,实际执行的是线程。

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 01:31 , Processed in 0.063809 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表