全网最全,性能测试-全链路压测问题总结,一篇概全...


前言

全链路压测可以给企业带来什么价值?

1、保障重大活动的系统稳定性
避免公司业务和声誉因为技术故障受到损失,为技术团队赢得业务团队的尊重。

2、精准的容量评估
帮助公司用最低的成本满足业务的性能要求。

3、重大项目重构切换前的性能验证
避免上线切换后持续的性能故障,快速渡过不稳定期。

系统重构是IT部门场景的技术更新的方法,每次上线都需要经历一段阵痛期,期间性能问题、业务故障频发,用户投诉频繁。

通过全链路压测可以在正式切换前完全解决性能问题;配合自动化的用例梳理和人工验证,可以极大程度降低业务故障。两者配合使用,可以快速的渡过不稳定期,提升用户体验。

4、端到端的全链路巡检,第一时间发现故障并快递定位问题
目前常见的监控体系都是通过一些间接的指标来判断是否有故障发生(比如通过CPU利用率、内存使用率、应用的错误日志数量、业务单量和基线的对比等等方式),

间接的方式会产生大量的误报,造成告警麻痹症,真的故障发生后不一定能第一时间引起重视。

通过全链路压测提供的数据隔离功能,可以在线上通过压测流量验证真实的业务接口是否能正常工作。

这种方式可以直接在用户发现业务故障前,相关人员第一时间知晓。配合链路的监测分析功能,快速定位问题应用所在。

该方法在客户真实环境中比传统监控方法平均提前7分钟发现故障,告警正确率是传统告警方式的几十倍。

5、建立公司的性能运营体系,将运动式的性能优化演化为自发的日常性能优化
很多公司都有运动式或者故障驱动的性能优化经历,比如马上要双十一,总监牵头开始性能优化;

有人管的时候性能表现很好,一旦没人牵头做性能优化的事情,又会有很多性能问题被暴露出来。这样的方式通过优化效率很低,投入还大。

6、通过全链路压测的方式,配合目标制定、绩效和工单系统
自动化的全链路压测可以日常化的排查性能瓶颈,通过工单将问题直达负责人,极大的提升性能优化的效率,将性能问题控制在萌芽状态。

如何确定业务核心链路的边界?

如何确定业务核心链路一直是全链路压测前期准备工作的核心,这里需要注意的是:
核心链路是指在精力有限的情况下,必须要保障好的链路,意味着需要投入更多的硬件资源、更多的工程师、出现问题是需要优先处理的。

核心链路不仅要考虑到技术层面,还需要使用自动的架构梳理能力来确定,因为人为梳理费时费力还容易出错。

将详细的依赖数据清洗合并完成后,技术和对应的业务部门共同标记核心的业务功能点,再根据核心功能点和系统的依赖数据来确定最终的核心链路。

一般有符合以下三种情况的,可以考虑确定为核心链路:
链路出现问题会对企业业务造成重大影响的链路,比如对业务造成损害、品牌损害等;

链路出现问题会对用户(如消费者)造成重大影响的链路,比如电商购物APP;

跟公司阶段考核(如KPI)挂钩的业务链路,比如订单团队肯定要保障订单链路的稳定;

另外核心链路其实一直都在变化的,主要体现在:
系统功能一直在增加、修改,对应的系统依赖也必然变化,所以核心链路的边界也是变化的;

核心链路是跟随业务场景变化的,比如在双十一前几年购物地址列表不是核心链路,因为大家双十一的购物习惯是给自己家买;

这两年大家喜欢在双十一期间给父母和朋友买商品,于是切换购物地址就需要加入核心业务功能中。

如何构建全链路压测模型?

由于使用了影子库/表的方式,即使直接使用生产环境压测也并不代表能获得与真实业务完全一致的压测环境,里面还涉及到对压测数据模型的建立.

要保证压测流量和正式流量保持 “一致”,影子库/表与生产环境保持“一致”,这里的“一致”包含几个方面:

1、数据量一致
通常是数据库,搜索索引等数据量的变化会导致响应时间变化的中间件,如果使用影子库来替代正式库,那么需要全量拷贝一份正式库的全量数据来保证压测结果,一些无法直接使用正式库数据的情况。

诸如新业务上线/正式库数据增减变化大/业务增长迅猛需要增加数据量等情况,则需要根据目标数据量以及业务特征构造压测数据来准备数据脚本。

一些只读的链路涉及的库/表,可以根据压测时间/压测目的/压测量等因素评估是否可以直接使用正式库作为压测库。

2、数据分布一致
数据在使用的时候会有频繁访问/操作的热点数据,几乎不会用到的历史归档数据。

两者在mq/缓存/数据库的分布比例会影响接口的读写操作性能,需要根据生产的实际情况构建压测数据模型。

3、数据操作一致
对于缓存,定时处理的一些数据,构造数据的时候要注意数据失效/刷新/定时处理的批次和每批数据处理量的大小。

压测如何构建监控体系?

全链路压测监控体系是由基础监控,应用监控、业务监控三部分构成。

1、基础监控
是指压测产品或者压测应用系统的集群基础性能监控,比如CPU性能、磁盘性能、网络性能等。

2、应用监控
是指从应用层对应用的性能、进行实时监控、分析,比如端到端链路调用节点性能情况。

3、业务监控
是指在站在业务角度的监控,它是由一些列业务指标构成,这些业务指标有特定的业务含义,比如5分钟内交易订单成功率持续为0。

整个全链路压测过程中,开发人员在压力发起之后紧盯基础监控、应用监控、业务监控大盘,任何监控如有异常,第一时间执行对应的紧急预案,确保压测正常运行。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有不停地前行,才能离梦想更近一步。无论遇到多少挫折,永远不要放弃自己的信念和努力。每一次的尝试都是一份积累,每一次的失败都是一次经验教训。只有坚持不懈,才有可能获得成功的喜悦。

生命的意义在于不断追求进步和突破自我,只有拼搏奋斗,才能实现自己的价值和梦想。与其等待成功到来,不如勇敢迎接挑战,用汗水和努力收获属于自己的辉煌人生!

每一次努力都是在为自己的未来铺路,即使现在看不到成果,也要坚持下去。只有拼尽全力,才能获得成功的喜悦。让我们一起加油,迎接更美好的明天!

猜你喜欢

转载自blog.csdn.net/shuang_waiwai/article/details/131127089