全链路压测演进之迭代式压测

news/2024/7/8 2:06:06

目录

1.背景原因

2.压测流程改进分析

3.迭代式压测流程

4.全流程压测模式演进

5.压测模式对比

6.迭代式压测反馈效果

7.总结


1.背景原因

!! 做系统服务压测都是比较耗时耗人力的,特别是在生产环境上做压测,压测的时间都是在晚上23点后,甚至在凌晨1-4点,每次投入的人力成本较高(经常是晚上通宵加班压测,疲惫感十足),对于团队来说,每次大家都很辛苦,但是又不得不做,这是非常苦恼的烦心事。

为了缓解团队每次投入做压测的疲惫感,以及降低投入的人力成本,对现有的压测流程做进一步的改善:现有的压测模式:常态化压测(例行压测,摸底压测)、大促全链路压测,这两种压测模式的执行是根据现有业务发展而制定的,但都存在一定时效上的问题,且投入人力成本也不低。

为推进常态化压测更高效,更贴近业务进行压测,且分化所有业务流量的焦点集中在大促压测上,把一些常规压测操作前置到日常业务迭代需求项目上,根据中、大规模的需求项目试行迭代式压测,提供更细致、更小范围的压测方式,尝试解决在压测上的时效和人力问题

2.压测流程改进分析

(1)以往的压测模式,主要是常态化压测为主,全链路压测为辅,压测时间段也只有特定的几个时间段(618大促,双11大促等)才会安排。

(2)每次压测主要针对大促流量的性能指标上考虑,而各服务本身的每个环节存在的问题,等到全链路压测的时候才暴露出来,往往已经滞后了很多(线上压测存在的弊端)。

(3)压测的投入,虽然每次的压测都能拿想要的结果,但是人力的成本和时效,并不是很理想。

(4)服务间相互的调量大小,以及能承载多少请求,只有通过常态化压测/全链路压测才发现存在的问题,日常缺少沉淀,经常压测过程会有超时、限流、熔断等情况出现,导致压测的有效性降低

3.迭代式压测流程

结合分析的方向,制定迭代式压测流程如下:

 

结合公司现有的压测流程,以及存在的不足问题综合分析考虑,把现有的压测流程做调整优化(降本增效),通过日常迭代项目上线后做压测,即可做到贴合业务,以可满足压测需要,主要有以下5个方向改进:

压测服务的稳定性

通过迭代项目上线后压测,可以提前了解到服务本身的稳定性,是否有存在隐藏的问题。日常迭代需求较多,关联依赖也多,上线后压测可以快速了解影响范围,及隐藏的性能问题,如有问题,可根据项目迭代,灵活安排优化版本上线。

压测环境的稳定性

以往生产环境压测,机器存在问题,经常是通过扩容/或更换机器的方式,临时解决,并不能提前知道原因是什么,处理结果相对是滞后的。通过日常迭代项目的压测,可以提前暴露出在日常条件下生产环境机器是否存在问题,为大促压测提前做规避措施

压测时效

快进快出,项目上线后,最小单位安排压测任务,且主要以定时压测为主,灵活压测时间,第二天上班收集压测报告,快速得出压测结果

压测人员

(1)降低产研发团队QA的学习门槛,把压测流程和压测平台做到足够简单

(2)不再局限于特定的几个人才能做压测,让业务团队每个QA都能有参与压测的机会

贴合业务

日常迭代项目,参与项目的成员,根据业务的特性评估是否压测:

(1)如不需要压测,后续则降低/不考虑该业务场景对大促活动的影响面

(2)需要压测,则评估影响面范围:

后端重构项目,影响主流程业务 业务需求新增/变更,涉及有核心接口场景 核心业务场景调整 依赖服务接口变更 ……

以项目维度评估压测范围比较小,能快速明确压测的指标,以及压测场景

(3)增加业务QA人员对压测的参与度,同时让个人在过程可以学习到相关性能测试的知识技能,可作为常态的测试手段

(4)刚好项目测试完,熟悉度还比较热乎,花费最低成本去创建压测脚本和压测数据,定时压测完成后,得出结果进行分析的成本也比较低

(5)项目维度的压测结果沉淀,对后续大促压测场景规划,提供更明确压测范围,以及可以提前规避掉服务存在的瓶颈问题

4.全流程压测模式演进

【压测流程流向】

以小聚多,把迭代式压测作为最小压测单位,最后汇总为例行压测(常态化压测)、全链路压测,保障各种链路维度覆盖业务不同颗粒度。参考:常态化压测 、全链路压测

【服务流量流向】

5.压测模式对比

6.迭代式压测反馈效果

【业务价值】

2月份开始以来,已完成几个需求的压测,压测过程能明显暴露出6个服务隐藏的性能问题,为业务服务规避掉隐藏的性能风险。

【结果反馈】

7.总结

(1)业务团队的QA人员需要具备一定的性能测试技能,学会识别项目需求中是否存在隐藏的性能风险

(2)以项目需求作为压测单位,可能不会覆盖到服务所有功能,但在日常迭代过程,迭代式压测相对会比较频繁,以点到面的切入条件,被压测的功能也会逐步积少成多

(3)稀释大促全链路压测和常态化压测准备及计划的压力,融入需求生命周期管理,轻量分布式的完成压测资产沉淀


最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

在我的QQ技术交流群里(技术交流和资源共享,广告勿扰)


http://lihuaxi.xjx100.cn/news/1251668.html

相关文章

cf1678 B 思维

题意:https://www.luogu.com.cn/problem/CF1678B2 思路:对于这种每段都是偶数的题来说,我们直接划分成最小的偶数段也就是2个一段,然后出现不一样我们就需要操作一次,对于最小段数来说我们直接看有多少已经确定的段数…

华为OD机试真题B卷 JavaScript 实现【乱序整数序列两数之和绝对值最小】,附详细解题思路

一、题目描述 给定一个随机的整数(可能存在正整数和负整数)数组 nums,请你在该数组中找出两个数,其和的绝对值(|nums[x]nums[y]|)为最小值,并返回这个两个数(按从小到大返回)以及绝对值。 每种…

OJ Summation of Four Primes

1.题目 题目描述 Euler proved in one of his classic theorems that prime numbers are infinite in number. But can every number be expressed as a summation of four positive primes? I don’t know the answer. May be you can help!!! I want your solution to be v…

【计算机网络自顶向下】如何学好计网-第四章网络层

第四章 网络层 学习目的: 理解网络层服务的主要原理 网络岑服务模型转发(forwarding)和路由(routing)的概念对比路由器的工作原理路由算法及路由协议 完成简单的组网及IP地址和路由配置 4.1 引言 网络层提供的功能…

YOLOV5识别图标点选验证码

本文秉承着一周一更的原则,继续更新ocr的专栏 主题是图标点选验证码,图标点选,相信很多读者阅读过其他的文章,我也大致看了下,用的最多的处理方法就是比较两个图片的相似性,利用哈希感知等机器学习,或者孪生网络,方法虽然不同,但处理思路一致,都是比较图片的相似性,…

OpenCV 笔记_4

文章目录 笔记_4图像细化thinning 图像细化函数 轮廓检测findContours 轮廓检测函数drawContours 轮廓绘制函数contourArea 计算轮廓面积:返回值 double类型arcLength 计算轮廓长度:返回值 double类型 轮廓外接多边形boundingRect 给定轮廓的外接矩形min…

深度学习实战38-基于清华ChatGLM-6b开源模型做体检报告解读任务,让体检报告解读变得轻松

大家好,我是微学AI,今天给大家介绍一下深度学习实战38-基于清华ChatGLM-6b开源模型做体检报告解读任务,让体检报告解读变得轻松。ChatGLM-6b是清华大学团队开源的一个语言大模型。本文将介绍一种基于ChatGLM-6B的体检报告智能解读应用项目。首先,我们将讨论体检报告解读的背…

Scala--04

第 8 章 高级语法 Scala//需求:制作一个计算器,实现你传一个字符串给我,比如 23,然后我返回一个结果5给你 def plus(str: String): String { var res "" if (str.contains("")) { val arr: Array[S…