一、性能测试概念

一、性能测试和功能测试,自动化测试的思维差异

  • 功能测试、自动化测试
    • 输出: 找bug 预期结果与实际结果进行比较
    • 隐藏的前提:模拟都是1个用户的操作
  • 性能测试
    • 不是模拟1个人,而是模拟多个人同时操作
    • 关注点:
      • 多个人操作时的响应时间
    • 接口服务器性能测试中,一定是多个人同时操作,才是性能测试

二、 性能测试概念

  • 100个人同时登录接口进行登录,性能中的avgRT应该在多少,是可以被接受的?

    • 可接受的范围 1.5s
    • 1.5 APDEX 用户满意度指数
  • 事务:一个请求行为,并不一定只有一个接口,所以,一个事务可能是多个接口。

    • jmeter:默认情况下,1个接口请求一次,认为一个1个事务Transation。

      ​ 也可以是通过事务控制器,挂载多个接口请求,合并成为1个事务。

      是从发起,到网络传输,收到响应

三、 性能测试相关工具

  • 通过工具,模拟多用户发起请求,获取性能指标值
    • 用工具来模拟多个人的方式很多
      • 线程:使用进程的资源。jmeter、lr
      • 进程:资源拥有者,资源消耗会比较大。LR
      • 进程+线程:ngrinder
      • 协程:python+locust

四、 性能指标介绍

  • 平均响应时间 avgRT 90%

  • TPS: 服务器每秒处理的事务数

    • 衡量服务器处理能力的最主要的指标
  • RPS: 请求,每秒用户请求率 发起方

  • QPS: 每秒查询率, 服务器的查询

    ​在企业中,如果没有严格区分,是把1个事务,当做只查询1次,但,实际请求可能是 1事务: n个查询

  • HPS:hitpers 每秒用户点击率 页面点击

  • 吞吐量:网络中每秒传输的事务数

    • 1、没有网络瓶颈:tps 数值 = 吞吐量数值
    • 2、如果网络有瓶颈: tps 数值 != 吞吐量数值
  • 吞吐率:每秒钟能通过多少kb数据

  • 服务器资源利用率

    • cpu、内存、io的利用率
  • 并发用户数:

    • 同一时间发起请求 用户数
      • 广义并发: 同一时间发起请求(相同、不相同)
      • 狭义并发:同一时间发起相同请求
        • 集合点:集合多个人在同一时间发起相同请求

    并发用数100 发起请求,一秒钟会发起多少请求?(请求的频率)不知道,所以1秒钟总请求量,不知道,

  • 负载测试

    • 逐步增加并发用户数,找出最大 拐点区间
      • 逐步增加并发用户数,
      • 区间怎么判断
        • 有没有报错
        • tps下降
        • 响应时间变长

    50tps: 服务器每秒能处理50个事务

    50 t/s * 60 * 60 = 18w 300tps

    18w * 8h = 144w

  • 压力测试
    使用一定量的并发用户数,持续比较长时间向服务器发起请求,查看服务器的稳定性
    一定量:访问 小于最大并发用户数 20% 或 80% maxThreads

  • 容量测试:

    1. 在性能测试时,如果数据库的数据量级是不一致的,性能指标值,也可能存在差异。 所以在做性能测试时,数据库的数据量级一定要保证一致。
    2. 生成的数据库数据量级: 百万级
    3. 测试用的环境,独立性能测试环境, 不超过万

五、性能测试注意点

  • 性能测试 需要自己搭建性能测试独立环境,不能使用功能测试环境、自动化测试环境、验收、生成环境都不能用。

    独立环境:真正的性能测试环境,机器资源配置是和生产完全一样(硬件配置一样、数量一样、网络一样、架构参数一样)

    网络:网络架构,网络基础,性能测试,不能使用无线网络,也不要去使用vpn等桥连,尽可能使用局域网

  • 性能测试并不是想做就做,要优先做核心的业务,用户量最大优先

  • 具备可测性:反复沟通确定性能指标

六、性能测试流程

  • 性能测试准备
  • 搭建性能测试环境
  • 性能测试脚本开发
  • 性能测试脚本执行
  • 结果分析与调优
  • 测试报告与结果跟踪

七、性能测试所需知识面

  • 服务器的发展
    • 台式机器 —> 刀片机有了n个操作系统后,
    • vmware虚拟技术:vmware、
      • 虚拟出操作系统
        • 理论上1个刀片机安装1个操作系统之后,可以虚拟出n多个操作系统
        • 1:n操作系统
      • 1个刀片机 n个刀片机
      • 08-15年左右,企业中服务器为虚拟机非常流向
      • 用vmware 虚拟技术虚拟的操作系统,是非常消耗本机的硬件资源
      • 用vmware虚拟技术虚拟的机器,能产生多个操作系统,更大化使用本机资源,但是,vmware也非常消耗资源,会使用大量的磁盘空间和cpu、内存资源。它对我们本机的性能是有影响,但是因为虚拟了多个操作系统,可以更大化利用空间。
    • 云服务器
      • 也是虚拟技术发展的产品,虚拟操作系统(比较完整的操作系统)
    • docker
      • 也是linux操作系统,定制化, 缩减版的操作系统(namespace、unionFS、cgroup)
  • 应用发展
    • os系统: linux(常用命令)
      • 常用名称
      • 配置环境变量
      • 防火墙、网络
      • linux的性能分析命令(top、ps、netstat、)
    • cpu
    • OOM
    • jvm 前面这些内容,快速浏览,暂时不要深入研究
  • 应用的发展
    • 最开始,所有的代码都在一个工程下面,生成一个项目包,随着项目开发,代码越来越多,要运行这个工程的硬件资源配置就要越来越高
    • 然后,就是拆项目和数据库Oracle sqlserver access mysql postgrasql、文件服务ftp、oss器、 项目服务器apache、tomcat、springboot、 springcloud、docker 、集群nginx
    • 数据库: 主从、非关系型(mongodb、memcache、redis)、时序数据库(influxdb\ prometheus)
    • 拆项目:前 后端(最初)中台, 后台逐步模块化,微服务

八、USE方法

USE(utilization saturation errors)对于所有资源,查看它的使用率,饱和度和错误

  • 资源:硬件资源(服务器所有元器件)、软件资源(文件描述符、连接跟踪数、套接字大小、中间件连接数)
  • 使用率:在规定时间间隔内,资源用于服务工作的时间百分比
  • 饱和度:资源不能再服务更多额外工作的程度
  • 错误:错误事件的个数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值