资深8年测试,全链路压测与性能的优化详解,一文通透...

news2025/1/15 12:47:12

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

什么是全链路压测?

基于实际的生产业务场景和系统环境,模拟海量的用户请求和数据,对整个业务链路进行各种场景的测试验证,持续发现并进行瓶颈调优,保障系统稳定性的一个技术工程。

全链路压测解决了什么问题?

业务场景越发复杂化、海量数据冲击下,发现并解决业务系统的可用性、扩展性以及容错性问题。

全链路压测创造了什么价值?

业务角度:提升用户体验、增强业务竞争力、创造更多的业务价值;
技术角度:完善技术体系、提高服务可用性、更好的服务业务而体现自我价值;
管理角度:提高研发效能和团队协同沟通效率、降低技术实践和管理成本支出;

全链路压测的理解误区:

全链路压测是一个技术工程,而非单纯的测试手段;
全链路压测只适用于部分企业和业务类型,而非一个银弹;
全链路压测的落地并非一蹴而就,需要较好的技术基础设施建设做保障;
落地全链路压测最大的挑战不是技术能力,而是企业的组织协调和沟通效率;
全链路压测的本质是尽量用较低的成本确保系统稳定可用,以保障系统在峰值流量下支撑业务目标达成;

系统高可用和性能优化一直是技术领域热门的一个话题,无论是三高(高性能、高可用、高稳定),还是CAP(数据一致性、服务可用性、分区容错性),都强调了服务的性能和可用。

性能高可用

如何理解高可用?
可用是一个名词,简单来讲就是系统既有的功能能否正常为用户提供服务;可用性是一个形容词,即系统的可用在某种评估标准下能得多少分。

那么如何衡量可用性?
目前业内大多从下面几点指标来评估:

1、线上服务可用时常
服务可用时常即我们常说的SLA(即服务等级协议,全称:service level agreement)。SLA对互联网公司来说就是网站服务可用性的一个保证。

9越多代表全年服务可用时间越长服务更可靠,停机时间越短,反之亦然。服务可用性指标可以通过下面的例子来理解:

全年以365天做计算,看看几个9要停机多久时间才能达到。
1年 = 365天 = 8760小时;
99.9% = 8760 * 0.1% = 8760 * 0.001 = 8.76小时;
99.99%= 8760 * 0.0001 = 0.876小时 = 0.876 * 60 = 52.6分钟;
99.999% = 8760 * 0.00001 = 0.0876小时 = 0.0876 * 60 = 5.26分钟;

当然,服务可用时长还要区分核心业务和非核心业务,不同的业务造成的不可用影响程度也是不同的。

2、故障响应解决耗时
这一点目前业内有个口号是:1-5-15。什么意思呢,就是:
一分钟发现问题,5分钟定位问题,15分钟解决问题,线上业务恢复正常运营。

要做到上述的指标需要很强的技术能力以及不断的演练才能达到,主要是如下几点:

发现问题:强大完善灵敏的监控体系;
定位问题:对业务和技术实现的熟悉程度以及高效的定位分析工具;
解决问题:故障的自愈能力以及对异常情况的稳定性预案甚至故障演练;

3、故障导致的业务资损
这一点很好理解,即线上故障对业务造成的损失。这一点业内在故障定级评估复盘时,大多采用最近一天/一周同时段的业务营收来做对比,当然,其中还可能包括用户的客诉以及赔偿得成本支出等维度。

性能优化三板斧

如何理解性能优化?
1、性能优化的目标
在保持和降低系统99%RT的前提下,不断提高系统吞吐量,提高流量高峰时期的服务可用性。

2、性能优化的挑战
日益增长的用户量(带来访问量的提升,大数据量的存储和处理);
越来越多样的业务(业务的不断迭代和发展,会使其复杂性指数提升);
越来越复杂的系统(为了支撑业务迭代发展,系统架构会变得很复杂);

3、性能优化的路径
降低响应时间;
提高系统吞吐量;
提高服务可用性;

PS:三者关系在某些场景下互相矛盾冲突,不可兼得!

如何开展性能优化
首先要声明一点:性能优化没有边际,随着优化的范围越大细节越深,要投入的成本和精力就越大。

而且在实际工作中,很多时候是没有太多时间让我们去做细致的分析优化的。特别是在版本迭代业务交付deadline、倒排期情况下,按时交付往往是第一优先级。

并不是提倡大家不注重系统性能的表现和优化,而是想说明一点:性能优化的成本和及时交付带来的业务价值之间需要做评估和平衡。

而且现在各种技术框架工具以及编码规范和测试验证的最佳实践不断涌现,在更重要的价值面前,要做到性能优化实际上是很简单的事情,就是下面的性能优化三板斧:

扩容:应用计算能力受限于硬件资源,只要应用服务具备弹性扩容的特点,完全可以用扩容来提升性能;

升配:应用计算能力受限于硬件资源,提升硬件资源的配置从某种程度上来说就是在提升应用服务的处理能力;

缓存:缓存的作用就是减少请求的访问链路和过程耗时,降低耗时就是在提升单位时间内应用服务的处理能力;

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有在坚持不懈的努力中,才能收获真正的成功。勇敢面对挑战,迎接未来,相信自己的能力,永不放弃。每一分每一秒都值得珍惜,只要你愿意拼尽全力,总有一天会看到美好的结果等待着你!

生命只有一次,不要让自己留下遗憾。勇敢面对挑战,不断进取,用汗水和努力成就自己的梦想。每一步都要坚定,每一天都要有所收获。相信自己,你一定能够走向辉煌!

每个人的路都不一样,但永远都应该坚定自己的信念,勇敢前行。面对挫折和困难,不要放弃,相信自己,努力奋斗,未来的成功就在不远处等待着你。

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

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

相关文章

了解CPU瓶颈原因,掌握代码优化、TOP命令及缓存技术,让服务器不再为性能瓶颈所困扰。

目录 前言: 一、CPU瓶颈原因分析 1. CPU使用率过高 2. 进程使用CPU过多 3. 磁盘I/O读写速度过慢 二、CPU瓶颈调优方案 1. 使用top命令查看CPU使用率 2. 优化程序设计 3. 使用缓存技术 总结: 前言: 在服务器运行过程中,…

干货 | 实战演练基于加密接口测试测试用例设计

如果接口测试仅仅只是掌握一些requests或者其他一些功能强大的库的用法,是远远不够的,还需要具有根据公司的业务以及需求去定制化一个接口自动化测试框架能力。所以在这个部分,会主要介绍接口测试用例分析以及通用的流程封装是如何完成的。 首…

GitHub 竟然有这些骚操作,真是涨姿势

GitHub 竟然有这些骚操作,真是涨姿势 GitHub,不用过多介绍。一个面向开源及私有软件项目的托管平台,因为只支持 git 作为唯一的版本库格式进行托管,故名 GitHub。 作为「全球最大的程序员“交友”社区」,程序员的你&am…

入门AI从谷歌这10门独立课程开始

​ 谷歌最近发布了一个名为"Generative AI learning path"的学习路径,该路径专为初学者设计,共包含10门独立课程。通过这个学习路径,初学者可以从基础概念开始学习,并逐步深入到更复杂的主题,帮助他们了解生…

NLP实战:调用Gensim库训练Word2Vec模型

目录 一、准备工作 1. 安装Gensim库 2. 对原始语料分词 二、训练Word2Vec模型 三、模型应用 1.计算词汇相似度 ​编辑 2. 找出不匹配的词汇 3. 计算词汇的词频 四、总结 🍨 本文为[🔗365天深度学习训练营]内部限免文章(版权归 *K同学…

第7章:SpringMVC的HttpMessageConverter

1. HttpMessageConverter简介 ①HttpMessageConverter,报文信息转换器,将请求报文转换为java对象,或将java对象转换为响应报文 ②HttpMessageConverter提供了两个注解和两个类型 RequestBody,ResponseBody,RequestEntity,ResponseEntity …

深入详解CFS任务放置代码

一、前言 本文出现的内核代码来自Linux5.10.61,为了减少篇幅,我们对引用的代码进行了删减(例如去掉了NUMA的代码,毕竟手机平台上我们暂时不关注这个特性),如果有兴趣,读者可以配合完整的源代码…

Spring Boot JAVA 统一返回的信息

现在的项目是前后端开发的居多,那么,后端的开发只需要返回相关的接口就行了。那么,我们怎么定义接口返回的数据,怎么使用 Spring Boot 来统一处理返回的信息呢? 开发环境如下: IntelliJ IDEA 2021.2.2 (U…

linuxOPS基础_linux权限管理

权限概述 什么是权限 ​ 在多用户计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权利。 在Linux 中分别有读、写、执行权限 \权限针对文件权限针对目录读r(read)表示可以查看文件内容;cat、less…表示可以(ls)查看目录中存在的文…

无人机+ AI 图像分析:里斯本大学高效检测林业害虫

内容一览:早期发现虫害对于因地制宜采取防控措施至关重要。尽管遥感技术可用于快速扫描大面积区域,但面对低强度信号或难以检测的物体,其效果并不尽如人意。因此,里斯本大学研究人员将无人机与 AI 图像分析相结合,在此…

如何对自动化测试工具选型?这4个因素必须要拿捏好

测试开发工程师再做自动化时避免不了针对每个工具进行选型。今天就来看下工具选型的方法。 一:工具选型方法 在作为一名自动化测试开发工程师时,选择合适的 Web 自动化工具非常关键。以下是一些评估和选择工具的依据和方法: 1.支持的语言和…

接口测试介绍以及用例编写

6.1 接口 6.1.1 接口概述 定义: 接口就是API(Application Programming Interface,应用程序接口),是一个软件或服务对外提供的接口,别人只要调用这接口,而内部如何实现,不需要关心。…

608教室使用方法

一、教室平面图 608教室的布局如下,重要的设备已经在图中标出。总开关、一体机和机柜。   二、使用方法 2.1 房间机器上电 进门后首先走到“总开关位置”,将电匝闭合。 原来的开关如图所示,有3组开关,1号组开关用于控制插座、…

突破办公瓶颈,推荐5款电脑办公软件

1.AnyTXT AnyTXT是一款搜文件内容的第三方全文搜索工具,速度极快,基本秒出结果。而且右边可以直接预览文件,筛选,复制,翻译等功能丰富,完美替代自带的搜索。 2.Groupy 这是用于快速切换窗口的小型精致工…

微信支付_Native支付流程

介绍 商户后台系统先调用微信支付的Native下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付。微信支付-开发者文档 注意: code_url有效期为2小时&#xff0…

spring实例化bean整体流程

AbstractApplicationContext类的invokeBeanFactoryPostProcessors方法把所有bean变成了beanDefinition,然后在finishBeanFactoryInitialization方法中完成实例化。 实例化过程只分析单例 1.DefaultListableBeanFactory#preInstantiateSingletons方法 这个方法的功…

养元发起“爱心送考车”全国行动,慈善榜样如何炼成?

入夏不久,六个核桃的经销商们,开始忙起来了。 正值一年一度的高考季,随着越来越多的学子感受到人生重要时刻的期待、激动与紧张,这种氛围也开始牵动社会的心。高考前夕,六个核桃联合全国经销商发起“爱心送考车”公益…

【JavaEE】HTTPS加密原理

HTTPS加密原理✿✿ヽ(▽)ノ✿ 文章目录 JavaEE & HTTPS加密原理1. 为什么要加密2. HTTPS加密原理2.1 初始想法2.2 引入非对称加密2.3 中间人攻击2.4 引入证书 JavaEE & HTTPS加密原理 1. 为什么要加密 例子:(运营商劫持) 你可能经常…

亚马逊云科技基于智能搜索,为企业打造知识库

知识库需求在各行各业中普遍存在,例如制造业中历史故障知识库、游戏社区平台的内容知识库、电商的商品推荐知识库和医疗健康领域的挂号推荐知识库系统等。亚马逊云科技为保证推荐系统的时效性和准确性,需要大量的数据/算法/软件工程师的人力投入和包括硬…

Threejs 快速入门

最小环境 首先,在正式学习Threejs前,有几个概念需要说明的。Threejs在底层其实还是调用html5中的canvas api来实现绘图的。但和我们一般绘制2D图像不同,Threejs在底层使用的是canvas的webgl context来实现3D绘图。webgl context本身更多是直…