容量测试解决了什么问题?

news2024/10/7 8:22:59

前面几篇性能测试知识科普系列的文章,介绍了性能测试中的核心术语和指标、常用测试策略、压测工具选型、性能需求分析、测试能力分层、新手学习路径以及监控分析工具相关的内容,这些知识可以说是性能测试最基本的能力,也是日常工作中需要经常用到的知识。

但在实际的工作中,我们面临的往往是复杂的业务场景和技术架构以及突增的用户访问流量,在这种情况下以往单纯的压测已经无法很好的解决问题。要想很好的保障这种复杂情况下的系统性能和稳定性,我们需要在性能测试的基础上更进一步,做好容量保障工作。

这篇文章,我想聊聊容量保障以及容量测试相关的话题。

如何理解容量保障?

常规的性能测试,一般是采用不同的手段和策略去验证系统在不同业务场景下的性能表现是否满足预期指标,是否存在性能瓶颈并进行优化验证的过程。

但随着移动互联网的发展,业务场景越发多变,技术架构也随着微服务、云原生等技术的出现越来越复杂。以电商业务为例,性能测试同学经常面临这几个问题:

  • GMV增长两倍,系统性能可以满足业务增长需要吗?
  • 如果无法满足,扩容能否解决问题?如果扩容扩多少?
  • 如果要搞双11大促,如何保障系统在大促期间的稳定性?

诸如上诉此类问题,都是当前性能测试同学甚至运维、架构师面临的技术挑战。

而容量保障工作就是为了解决诸如此类问题的有效手段。

1、什么是容量?

软件系统是基于硬件服务器部署的,硬件服务器限于本身的配置,其本身处理能力是有限的,这点需要明确。

从软件工程的角度出发,容量就是单位时间内软件系统能够承载并处理的最大业务量。

2、什么是容量保障?

理解了软件系统的容量,就可以很好的理解容量保障的工作内容了。

我们日常工作中的功能测试工作,就是保障软件功能的正确性、易用性等,当然现在也叫做质量保障。容量保障,就是通过运用各种方法和工具,保障软件系统的容量可以承载并处理各种业务,并具有一定的弹性能力。

3、容量保障有哪些难题?

容量的不确定性:业务场景多样、技术架构复杂,导致容量在不同场景不同时间段有不同表现;

容量评估的复杂性:服务调用链路复杂,上下游服务彼此的制约导致很难评估出一个较为准确的预期值;

容量测试的不准确性:测试和生产环境的差异、服务配置差异、硬件资源差异、网络环境差异、业务场景差异;

容量规划治理的复杂性:业务场景不断变化、代码版本不断迭代、新技术的引入、人员的流动变化都让容量规划和治理变得难上加难;

如何理解容量测试?

上面的内容介绍了容量保障面临的四大难题,而容量测试,就是运用各种方法和工具在这种复杂的情况下去不断验证容量结果,最终保障线上软件系统容量可以支撑业务正常运行的过程。

这是一个持续验证的过程,相比于传统的性能测试压几个接口,得到结果,优化验证完发布上线而言,容量测试更提倡持续验证,做到对各环节的容量永不信任,持续验证,最终达到持续的保障线上系统稳定性。

当然,容量测试和传统性能测试类似的点也有很多,同样需要需求分析,场景设计,数据准备,实施压测以及性能优化。或者可以理解为,容量测试和传统性能测试并没有本质上的区别,都是为了让软件系统满足业务需要,支撑业务目标更好的达成。只是容量测试所提倡的方法和理念,更适用于当前我们所面临的环境和挑战。

了解容量测试,然后忘掉各种高大上的新概念,做到持续验证持续保障即可。

容量测试解决了什么问题?

常规的性能测试,是有了需求,然后进行需求分析,场景设计,数据准备,脚本编写和压测执行以及定位优化验证这些步骤,而容量测试的特点在于计划性和预期性。

可以理解为常规的性能测试更偏向先有需求再出结果,而容量测试更注重预先评估结果,针对结果进行计划性的有步骤的验证。如果分类的话,可以将容量测试要做的事情,分为如下三种情况:

  1. 日常事件:日常的迭代压测、性能巡检;
  2. 计划事件:比如新服务上线、双十一大促;
  3. 突发事件:比如线上流量突增、异常告警、紧急扩容;

容量测试就是为了达成容量保障目标的一种持续验证手段,要解决的问题除了日常工作中的需求,还要有计划的应对未来的需求,以及预期可能出现的容量风险并做好应对措施。

本篇文章是对容量保障和容量测试的一个大体介绍,下篇文章,我会详细的介绍容量保障工作四步走的详细过程。


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/73491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三大宇宙速度

文章目录第一宇宙速度:7.9km/s第二宇宙速度:11.2km/s第三宇宙速度:16.7km/s光年太阳系第一宇宙速度:7.9km/s 1.第一宇宙速度(环地飞行速度):航空器绕地球飞行,成为地球卫星的最低速度。 2.提出者牛顿。基于…

springcloud-05分布式事务

第五章 分布式事务Seata 在微服务系统中,分布式事务是我们必须要面临和解决的问题!!! 1. 分布式事务问题的产生 下图中的例子可以很好的解释分布式事务问题出现的场景: 图中问题的产生就在于更新库存数量是1个单独…

泛型Java

泛型 泛型:标签 集合接口和集合类在jdk5.0之后都修改为带泛型的结构在实例化集合类时,可以指明具体的泛型类型指明完以后,在集合类或者集合接口中凡是定义类或接口时,内部结构使用到泛型的位置,都指定为实例化时的泛…

Java姓名与手机号中间用*号代替 字符串*号替换

/*** 姓名与手机号中间用*号代替*/public static String caseStarSymbol(String nameStr){ // String nameStr "程序源码论坛"; // String mobile "15888888888";String nameStr1 null;char[] r nameStr.toCharArray(); // char[] m mobi…

服务器硬件规格常用查看命令——磁盘相关命令

smartctl smartctl是一个能够控制和监控磁盘的SMART(Self-Monitoring,Analysis and Reporting Technology,自我监测、分析和报告技术)命令。 使用方法: 提示:使用该命令只能查看到裸盘设备的型号信息&…

ATtiny13与Proteus仿真-开发与Proteus仿真环境搭建

ATtiny13开发与Proteus仿真环境搭建 本文将详细介绍如何搭建ATtiny13开发环境与Proteus仿真环境。 1、ATtiny13开发环境搭建 本系列文章将使用Microchip Studio作为ATtiny13的集成开发环境(IDE)。 Microchip Studio 是一个集成开发环境 (IDE),用于开发和调试 AVR 和 SAM 微…

Microsoft .NET Desktop Runtime (Framework)

Microsoft .NET Desktop Runtime (Framework) 微软NET Framework或数据库网络是一种软件技术,包括Microsoft的几种编程语言。安装每个窗口后所需的工具之一是NETFramework技术。会的。基于这种技术编写的许多软件工具,它们将得到支持。 -是的。 微软得分…

什么是运放的输入失调电压

大家可以看到这个电路,运放的同相端和反相端都接在0V,大家觉得运放的输出电压是多少。 很多同学觉得,在开环条件下根据运放的传输曲线,当同相端电压等于反相端电压时,运放的输出电压等于0, 可是实际测量运放…

语音识别之Kaldi:神经网络实战

ASR神经网络实战 kaldi语音识别理论与实践课程学习。 之前学习了基于GMM-HMM的传统语音识别:GMM-HMM 其中也包含Kaldi架构的简介,语音数据的预处理,特征提取等过程。 今天学习基于神经网络的语音识别。 神经网络训练脚本 以TDNN为例。 K…

Python IDE之 pycharm的十大奇技淫巧

说到Python的IDE,可能大家都会想到一个非常有名的工具,就是pycharm,他是最受欢迎的一个Python开发工具,其原因就是因为功能强大,适合构建大型项目,当然啦,功能强大同时也就意味着操作复杂&#…

语音学发音语音学笔记

词汇表 articulators 咬合架发音器 cochlea 耳蜗 consonants 元音 dialect 方言 eardrum 鼓膜 endolymph 内淋巴 Epiglottis 喉头盖 formants 共振峰 fricative 摩擦音 Larynx 喉 meatus 耳道 monosyllabic 单音节 pinna 耳廊 pitch 音调 pitch harmonics 音高泛音 phonation …

【云原生 | Kubernetes 实战】09、K8s 控制器 Replicaset 入门到企业实战应用

目录 K8s 控制器 Replicaset 一、Replicaset 控制器:概念、原理解读 1.1 Replicaset 概述 1.2 Replicaset 工作原理:如何管理 Pod ? 二、Replicaset 资源清单文件编写技巧 三、Replicaset 使用案例:部署 Guestbook 留言板 …

第16章 母函数

第16章 母函数 母函数是离散数学领域最意外、最有用的发明之一。粗略来讲,母函数将序列问题转化为代数问题。 组合数学中常常出现普通型母函数、指数型母函数、狄利克雷型母函数 16.1 无穷级数 通俗地说,母函数F(x)就是无穷级数 符号[xnx^nxn]F(x)表示母函数F(x…

策略模式学习

0.引言 最近想整理一下代码。我的想法是使用继承的方案,使用多态写一个interface,然后不同的方法来继承它。最近ChatGPT比较火,顺便问了一下它: 在C代码设计中,我对同一算法设计了不同的实现,例如计算平均…

使用 Web 应用程序示例在 Java 中进行安全编码

使用 Web 应用程序示例在 Java 中进行安全编码 使用 Java 中的 Online Shop Web 应用程序示例了解最常见的漏洞以及如何避免它们 课程英文名:Secure coding Dive into Injections with Java & Spring boot 此视频教程共36.0小时,中英双语字幕&…

1x9 Dual SC Optical Transceivers

1、Pin Assignment & Description TD, TD-: DC coupled LVPECL inputs for the transmitter. 50Ω differential lines. RD, RD-: Open-emitter out circuits. DC coupled LVPECL outputs for the receiver. 50Ω differential lines. SD: Signal Detect. Normal opti…

【工业控制】多变量动态矩阵预测控制(DMC)【含Matlab源码 1499期】

⛄一、简介(附课程报告) 1引言 众所周知,上世纪 60 年代初形成的现代控制理论在航空、航天等领域取得了辉煌的成果。 然而人们不久就发现在完美的理论与控制之间还存在着巨大的鸿沟。主要表现在以下几个方面: 1.现代控制理论的基点是对象精确…

OneHotEncoder独热编码

首先了解机器学习中的特征类别:连续型特征和离散型特征。 拿到获取的原始特征,必须对每一特征分别进行归一化,比如,特征A的取值范围是[-1000,1000],特征B的取值范围是[-1,1].如果使用logistic回归,w1*x1w2…

Docker-compose编排

一、Docker Compose前言 Docker Compose的前身是Fig,Fig被Docker收购之后正式更名为Compose,Compose向下兼容Fig Docker Compose是一个用于定义和运行多容器Docker应用的工具,只需要一个Compose的配置文件和一个简单的命令就可以创建并运行应…

STC 51单片机61——呼吸灯

#include "reg52.h" sbit LedHuxi1P1^0; #define time (65536-1000) // 单次定时1ms unsigned char T_High, T, ti, dir; void InitTimer0(void) { TMOD0x01; TL0 time; //initial timer1 low byte TH0 time >> 8; …