IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 性能测试阶段1之性能测试理论 -> 正文阅读

[大数据]性能测试阶段1之性能测试理论

https://blog.csdn.net/weixin_45912307/article/details/120106621

01 基本概念

1. 基本目的:

  • 测试系统性能是否达标(性能:系统处理能和运行能力)
  • 找到性能瓶颈

2. 基本方法: 基准 负载 压力

02核心原理

基本原理:基于协议通过多线程方式模拟用户并发,在不同的场景下施压服务器
1. 基于协议(http tcp udp https mq dubbo socket websocket)发起请求

2. 通过多线程的方式模拟并发用户,施压服务器

3. 设计场景:方法,元件,关联,断言,思考时间,集合点

03应用领域

能力验证: 系统能否在固定条件下具有声明的能力

  • 通过性能测试得到测试结果,给予测试报告

瓶颈发现: 通过一系列的性能测试手段发现瓶颈和缺陷
性能调优: 针对发现的性能瓶颈对系统性能的调优

  • tps瓶颈
  • 响应时间
  • 服务资源瓶颈
  • sql瓶颈

容量规划: 系统能否支持未来一段时间内的用户增长?

  • 针对未来可能存在的业务量爆发
  • 以预计的用户量为基数,做对应的性能测试;
  • 提前调整硬件设施

04测试思路

4.1 测什么?

1. 前端:更多关注加载和响应时间

  • web端
  • app端

2. 服务端

  • 工具层面:错误率和吞吐量
  • 服务器层面:cpu、内存、io、jvm

3. 数据库:慢sql、死锁

4.2 怎么测

  • 需求
  • 计划
  • 方案
  • 环境搭建
  • 设计用例
  • 数据准备
  • 设计场景
  • 脚本开发
  • 数据监控
  • 结果分析
  • 性能调优
  • 提交报告

4.3 测试结果是否通过

  1. 有需求: 测试结果符合预期
  2. 无需求:测试页面/服务器最大并发数

05性能指标

5.1 前端性能指标

1.响应时间RT(response time)

  • 258原则:2s内很满意;5s一般;8s不能接受
  • 前端响应时间:前端将后端查询到的数据在页面呈现出来
    • 前端资源加载渲染的时间
    • 前后端交互的时间
  • 网络连接时间:请求发出到服务端接收到的中间时间
    • latency:延迟
      • latency = 网络连接时间 + 服务处理返回的时间
    • connect time:连接时间
  • 服务端响应时间
    • latency - connect_time = 服务处理时间
  • 补充:响应时间划分
    • 用户通过客户端向服务端发出请求的时间为:T1
    • 服务端接收到请求,处理该请求的时间为:T2
    • 服务端返回数据给客户端时间为:T3
    • 客户端接收到响应数据,处理数据呈现给用户时间- 为:T4

2.错误率
银行、金融、税务
3.点击率
用户点击按钮,发送请求的次数
4.吞吐量

  • 1.hps(hit persecond) 每秒点击数

  • 2.tps(transaction persecond)
    每秒完成响应的请求数(每秒处理事务数)

    • 单接口业务:单位时间内完成响应的请求数
    • 多接口业务:单位时间完成的事务数(多个接口连在一起,一整个流程的完成视为一个事务
  • 3.rps(request persecond) 单位时间发起的的请求数

    • rps是发起请求,tps是处理请求
    • rps 并发 直接从服务端衡量压力值
    • 压力是由用户决定;处理能力是由服务端决定
    • rps衡量压力,tps衡量服务端/系统的性能
    • 优化服务端性能,让tps去匹配rps
    • qps(tps)= 并发数/平均响应时间
  • 4.qps 每秒查询数
    每秒响应请求数,也就是最大吞吐能力

5.2 服务端性能指标

1. cpu
2. 内存
3. io
4. JVM
5. 中间件:redis、ngnix、tomcat

06性能视角

6.1 用户视角

  1. 响应时间
  2. 系统稳定性
  3. 上传下载文件资源
  4. 项目运行一段时间,系统宕机

6.2 开发视角

1. 代码是否需要优化
2. sql优化
3. 系统架构优化

6.3 运维视角

1. 硬件设施是否需要更换

2. 资源利用是否达标

  • 利用率超标
  • 利用率过低

3. 系统容量

  • 一个用户在线,保持session,大概消耗10k内存
  • 4g内存 能保证10w用户同时挂机

07测试类型

1.基准测试
每一次版本迭代都需要做基准测试
目的:对比上一次测试结果,给出调优依据

2.负载测试 持续不断的施加压力:找到系统瓶颈点(tps、资源)
保证压力连续性

  • 并发用户模型:持续不断的增加并发用户
  • rps模型:持续不断的增加请求数

3.压力测试
资源:

  • 当资源处于一个饱和状态
  • cpu利用率超过90%
  • 在资源饱和情况下持续运行服务,考察系统稳定性

负载:

  • 负载处于一个高峰
  • 在500rps负载下最大tps达到400/s,此时以500rps压力持续运行一段时间

稳定性测试:

  • 最大压力的80%持续运行

破坏性测试:

  • 知道最大压力值,依然不断增加压力,让系统崩溃

4.失效恢复测试
系统异常之后,能否及时恢复正常

5.容量测试
考察系统在未来时间段内支撑的用户数
测试大容量下,系统需要的硬件设施

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 11:05:11  更:2021-09-05 11:07:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:39:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码