超全性能测试-全链路压测总结,完整一套从环境到脚本详细...

news2024/11/29 4:38:52

目录:导读

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


前言

性能测试,全链路压测在准备阶段,测试同学要做哪些事情呢?

请添加图片描述

环境准备

一般来说,需要准备如下三套环境。
环境准备阶段,大体的工作事项和分工如下:

请添加图片描述

1、功能验证环境
功能验证环境即用来验证技术组件本身的功能正确性和接入性能损耗的环境,有独立的随时可用的环境最好。

如果考虑到成本,也可以用线下性能环境来进行验证。
实践经验来说,功能验证阶段,要做的事情核心有如下几点:
能否快速接入;
压测标记是否完整的透传到了数据库表;
数据落库或者读库的路由逻辑是否正确;
下游或外部调用是否都被mock挡板过滤;
采用自动化的方式快速验证接口链路是否正常;
梳理的业务场景和测试场景是否都匹配了接入的业务范围等;
接入前后对业务应用以及中间件的性能损耗是否在可接受范围内;

2、线下性能环境
如果未经基础的测试就直接在生产环境开展全链路压测,风险和问题排查成本都是很高的。

线下性能测试环境的作用如下:
满足日常的版本迭代和技术优化性能验证需要;
生产压测前的单机单接口和单机混合链路压测验证;
为生产压测集群的资源扩容提供容量评估的参考依据;

3、生产压测集群
因为全链路压测都是在生产环境进行,压测的目的也是为了满足未来某个时期业务活动的需要,因此需要提前评估准备资源。

这里的资源指的是扩容的资源,而非单独重新搭建环境的资源。

一般需要准备的资源如下:
带宽资源;CDN资源;应用资源;缓存资源;M Q资源;短信资源;D B资源;

数据准备

全链路压测过程中,涉及的数据以及职责分工如下:

1、铺底数据
铺底数据可以简单理解为冷数据,因为SQL执行过程中,空表和大表对性能的影响还是很大的。

准备铺底数据,还要根据具体的数据隔离技术实现方案来看,分为如下2方面:

正式表:如果数据隔离方案采用的是读写业务表,那无须准备铺底数据。但压测产生的数据需要通过特殊字段来做标识处理,避免对业务造成影响。

影子表:如果采用的是影子表方案,常见的做法就是将涉及到的库表数据按需按量同步到影子表并进行脱敏。

影子库:影子库的数据铺底数据准备方案和影子表类似,但要考虑的一点是:因为影子库是正式库是在同一个请添加图片描述
数据库实例上,需要更多的硬件资源支撑,以及在参数配置上(如活跃连接数)需要进行一定调整。

2、热点数据
为了避免压测时瞬间的大流量对服务的冲击,需要提前将这些热点数据预热到缓存中。最典型的热点数据莫过于用户的登录态token了,其他还有类似秒杀活动的库存数据、商品信息数据以及优惠券等数据。

当然,热点数据的预热,需要根据具体的业务来制定预热方案,而非单纯的照着做。

3、参数化数据
参数化数据指的是压测过程中脚本中需要引用到的数据。以电商业务来说,常见的有用户id,商品id,订单id。

准备参数化数据的过程中,需要注意如下几点:
数据的幂等性(是否可重复使用);
数据的关联性(是否需要前置动作来更新状态);
数据的有效性(数据需要在使用阶段内一直生效);
数据的唯一性(数据在逻辑处理中仅且只有某些场景才可用);

数据可用性验证
做完了上述的几点数据准备工作,最后要做的就是对数据可用性进行验证,看看它是否如预期满足工作需要。

脚本准备

1、脚本开发
脚本准备实际上是个很复杂的事情,因为要考虑到具体的业务场景和压测链路。

一般遵循如下的过程步骤:
梳理核心链路(得到被测应用和涉及到的接口);
梳理流量模型(便于压测过程中性能指标监控及流量模型配置);
划分脚本类型;

准备测试数据的脚本(某些场景用到的数据需要通过前置动作才能产生);

单机单接口压测脚本(性能环境快速验证接口维度的性能表现,快速发现性能瓶颈);
单机混合链路压测脚本(性能环境快速验证应用维度的性能表现,调整流量配比,便于容量评估);
生产环境全链路压测脚本(生产环境压测专用的压测脚本);
梯度增加脚本(验证生产环境的性能,发现性能瓶颈和拐点);
稳定性验证脚本(验证生产服务集群在长时间高负载情况下的稳定性);
数据状态恢复脚本(特殊业务场景下某些数据只能用一次,可以理解为一种数据回滚策略);
稳定性预案验证脚本(验证限流、熔断、降级等稳定性预案是否生效);

2、脚本联调
脚本开发完成,接下来就是联调工作。

联调阶段,除了要考虑环境因素,重点是验证数据模型和流量模型是否匹配的问题。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每天都在努力,即使只是微小的进步。不要放弃你的目标,相信自己的能力。只有坚持不懈地奋斗,才能实现自己的梦想。无论前路多么艰辛,勇敢向前,永不言败!

每一分一秒都是宝贵的,珍惜时间才能更好地追逐梦想。只要你不放弃,成功就在前方等待着你。相信自己,勇往直前,未来一定会更加美好!

无论你面对什么困难,都要坚信自己能够战胜它;不要放弃,因为成功就在前方等待着你!每一次的尝试和努力都会让你更接近目标,相信自己,勇往直前!

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

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

相关文章

类和对象 --- 封装+对象特性

👂 快乐E调 - 林澜叶 - 单曲 - 网易云音乐 👂 Plain Jane (Freestyle) - Ombre2Choc Nation - 单曲 - 网易云音乐 1.5倍速,跟着敲,初识C 目录 🏆封装 🌳属性和行为作为整体 🌳案例 -- 设置…

js数组去重与循环对象

目录 一、数组对象去重 1.1、需要获取重复数据 1.2、直接过滤filterfindIndex 二、循环对象 三、多层数组对象过滤 一、数组对象去重 1.1、需要获取重复数据 let persons [{"name": "yzq","age": 20,"gender": true,"hei…

k8s配置资源管理|secret|configmap

k8s配置资源管理|secret|configmap 一 配置资源管理1 创建 Secret2 使用方式3 将 Secret 导出到环境变量中 二 ConfigMap1 Pod 中使用 ConfigMap2 Pod的创建3 用 ConfigMap 设置命令行参数4 通过数据卷插件使用ConfigMap 一 配置资源管理 //Secret Secret 是用来保存密码、tok…

2023年6月合肥/厦门/长春/深圳DAMA-CDGP数据治理专家认证报名

目前6月18日CDGA&CDGP考试目前开放的城市有:北京、上海、广州(满)、深圳、长沙、呼和浩特、杭州(满)、南京、济南(满)、成都、西安、武汉(满)、天津。 新增了武汉、天津这2个城市。另外合肥…

【Netty】Reactor 模型(十)

文章目录 前言一、传统服务的设计模型二、NIO 分发模型三、Reactor 模型3.1、Reactor 处理请求的流程3.2、Reactor 三种角色 四、单Reactor 单线程模型4.1、消息处理流程4.2、缺点 五、单Reactor 多线程模型5.1、消息处理流程5.2、缺点 六、主从Reactor 多线程模型6.1、Reactor…

Python的一些基础实操练习题

书接上文多看一眼多进步,python入门到放弃,是根据python的知识点的一些基础练习题,说了是基础练习题,基础练习题,基础练习题,水平高的就别看了,平高的就别看了,高的就别看了&#xf…

IP协议-服务类型字段

服务类型(Type of Service)字段是比较复杂的一个字段,该字段经过多次标准变更。 IPv4报文 一、最初标准(RFC 791) RFC 791定义TOS字段总共占用8bit,分为IP Precedence优先级(3bit)、…

Ansys Zemax | 如何将高斯光整形为平顶光

概要 本文展示了如何设计光束整形器将激光器产生的高斯分布的光转换为平顶分布的光输出。(联系我们获取文章附件) 介绍 光束整形光学元件可以将入射光的光强分布转换为其他特定的分布输出。最常见的例子就是将激光器产生的高斯分布的光转换为平顶&#x…

GMesh的Mesh操作面板介绍

GMesh操作面板介绍 Define 用于控制网格生成过程中各个单元的尺寸大小 “Size at points”选项允许您指定空间中某些点的尺寸大小。这些点可以是模型的几何结构中的点,也可以是在Gmsh中手动定义的点(使用“Point”命令)。在这种情况下&…

pycharm在终端运行时ps 不显示环境

如果下面显示的是ps ----- 而不是 则需要把这儿修改一下

2023年Java教学大纲!好程序员教你如何快速学会Java!

今天好程序员给大家分享一篇2023年的Java教学大纲,跟着这篇大纲学习,并且熟练掌握该技能,实习轻松月入过万不是梦! 一、Java初级程序员必须要掌握的技能: Java基础知识控制声明面向对象的概念数组字符串异常处理输入/输…

Ubuntu22.04安装最新Eigen库

按道理:该方法适用所有Linux,适合安装多版本 本文采用源码 cmake的方法安装,故前置条件: 源码下载,官网下载或GitLab下载安装cmake(没有安装cmake,也可以采用其他办法安装) 官网下…

解决win无法删除多层嵌套文件夹

起因:昨天研究jpackage工具,不小心搞得一个文件夹里嵌套了好几百个文件夹,用win自己的删除删不掉,shiftdel直接删除也不行,直接弹窗删除错误; 后来用电脑管家下载了个“文件粉碎”,添加目录&am…

硬核机器学习知识点教学--(代码讲解)

用代码和实战讲解机器学习,零基础一样看得懂👏🏻👏🏻👏🏻 复习、学习、备战考试皆可用👏🏻👏🏻👏🏻 本系列持续更新中&a…

举个栗子~Tableau 技巧(254):学做圆形维诺图(Voronoi diagram)

关于维诺图 维诺图用于分析不同集合之间的交集和差集关系。在数据科学和统计学中,它常用于可视化不同数据集之间的重叠和交集,以便更好地理解它们之间的关系和差异。 例如,我们可以使用维诺图来展示不同客户群之间的交集,以便更…

编辑与校对的艺术:如何提高公文写作质量

在写作过程中,编辑与校对是提高作品质量的关键环节。它们不仅涉及语法、拼写和标点等基本问题,还包括文本的组织、表达和内容。通过掌握编辑与校对的艺术,你可以使你的文字更具说服力、更清晰易懂,从而更有效地传达你的观点。 1.认…

分布式系统监控zabbix安装部署及自定义监控

目录 一、zabbix的基本概述1.1 zabbix 监控原理1.2 Zabbix 6.0 新特性1.3 Zabbix 6.0 功能组件1.4 zabbix的监控对象1.5 zabbix的常用术语 二、zabbix进程详解三、zabbix的监控框架四、zabbix源码安装及部署4.1 部署 zabbix 服务端4.2 安装 zabbix 客户端,实现 zabb…

00后学什么技术有前途?2023年Java和前端发展前景分析!

00后的你还在想着进厂吗?每天在流水线上打螺丝,过着一成不变的日子,而且每个月就休息那么几天。如果你不想进厂,特别是对那些20岁刚出头或者学历不是那么有优势的年轻人,好程序员建议还是应该去学习一门技术&#xff0…

从 OceanBase 迁移数据到 DolphinDB

OceanBase 是一款金融级分布式关系数据库,具有数据强一致、高可用、高性能、在线扩展、高度兼容 SQL标准和主流关系数据库、低成本等特点,但是其学习成本较高,且缺乏金融计算函数以及流式增量计算的功能。 DolphinDB 是一款国产的高性能分布…

Micro-python Socket 支持 ROS2 topic 框架 (一)

消息Topic ROS2官方文档 Topic官方介绍 是各节点之间的信息交流媒介,可以实现一对一,一对多,多对一,多对多的信息交流,如图所示 (一)使用工具打开消息流图 打开rqt_graph(注意其…