首页 > 其他分享 >生产环境全链路性能测试体系建设之路(2)

生产环境全链路性能测试体系建设之路(2)

时间:2024-12-14 16:59:40浏览次数:8  
标签:配置 测试 性能 链路 探针 实例 应用 规则

目录

一、应用管理

二、测试规则配置管理

三、链路分析

四、工具平台服务化


生产环境全链路性能测试体系建设之路主要包括生产测试流程规范建设、生产测试工具平台建设、生产测试实施团队建设、落地实施细则。

本文主要聊一聊生产测试工具平台建设。

一、应用管理

性能测试的数据隔离配置按照应用维度进行管理,相关功能包括应用增删改查、单应用维测试流量开启或关闭控制、应用下实例状态管理、预期数管理和测试规则版本管理。

对于实例状态,主要分为已就绪和未就绪两种。已就绪状态包括:实例生效的规则版本和最新发布版本一致且无异常情况;探针已经成功安装且应用所有实例已就绪,可以进行测试;实例自身已就绪,等待应用进入就绪状态。

未就绪状态包括:实例生效的规则版本和最新发布版本不一致,或发生异常;实例处于初始化状态,即探针启动的默认状态;测试探针正在安装中;测试探针安装成功等待下发测试配置;测试探针安装失败,需重新安装探针;由于全局错误不能再实施测试,此时需检查探针日志。

对于接收压测流量,该功能用于管理应用实例是否接收处理测试流量。若开启接收,则应用实例会处理测试流量;若关闭接收,则应用实例不会处理测试流量,此时如果发起测试请求则直接报错,并且能在应用日志中看到错误信息"不允许测试流量”。

对于预期数,它用于校验应用实例状态是否和预期一致,以便对实例状态做出判断。预期数用于评估应用是否存在漏部署的节点,避免存在漏部署节点导致生产流量数据污染。若设置预期数,而实际已就绪数与预期数不符,则无法启动对应目标的测试。

对于规则配置版本,它用于服务端和底层探针对比版本,以使测试人员确认探针上最新的配置规则是否生效。初始版本为0,发布变更或还原变更会影响实例状态校验。对于规则变更,若发布变更,系统会将最新规则同步至庭层服务,同时会生产一个递增版本号。若未发布变更,提示存在未发布变更,可点击“发布变更“按钮进行发布,或通过”还原变更“清除未发布规则。还原变更指的是还原至上一次已发布规则版本。

二、测试规则配置管理

对测试规则的管理包括对规则的添加、编辑、删除、导入/导出、启用/禁用等。其中导出/导入规则是从应用维度全量导入或导出配置规则,启用/禁用规则是针对单条数据进行操作,不影响其他规则。有规则变更成功无须重启应用,但需发布变更才能生效。

平台的规则配置主要包括影子库表、Mock规则、白名单、定时任务、消息配置、影子日志、实例监控等功能。

在影子库表功能中,配置影子库表服务地址,请求将转发到影子库表服务地址,否则将转发到原库表。测试流量会到影子库表,如果没有配置测试流量就会报错。

选择类型,添加数据库类型,可基于配置代码模板快速配置规则,支持批量添加多条规则,遵循JSON 5格式。

在Mock规则功能中,支持配置HTTP、DUBB0等类型的Mock规则。它用于模拟请求接口调用返回值,使测试流程继续执行,但实际不会进行外部调用。

在白名单功能中,测试人员可以看到提示“开启校验白名单,不在白名单内的请求路径和消息Topic无法调用和发送,即压测流量无法通过",白名单主要用于在测试过程中拦截请求,只允许放行白名单中配置的请求。

白名单功能支持一次批量添加多条规则,需选择类型:HTTP、Dubbo、Kafka或RabbltMQ,可根据提供的配置代码极板进行规则配置。规则添加完成后默认是禁用状态。

在消息配置功能中,测试人员会看到提示“启用影子Topic后,实例会将发送给原Topic的消息转为影子Topic”,消息配置默认开启。

在影子日志功能中,测试人员配置测试流量产生的日志保存路径。若原目录下不存在该路径,则自动创建一个子目录;若已存在,则日志会存储在该路径中。

三、链路分析

平台具有链路分析能力,下面分别讲解平台上关于链路分析的配置项。

首先是链路查询。它支持应用、实例、服务、请求结果、耗时、返回行数和开始时间等维度查询链路。

其次是调用树。该功能可用于查看当前应用调用情况,可通过结果分析查看具体应用是否正常。

再次是调用详情。它支持查看服务名称、类型、开始时间、耗时、入参、返回、异常和日志等信息。

最后是业务统计。它包括数据库、远程调用、消息Topic这3个子项。其中,数据库展示的是通过探针的业务请求调用了哪些存储工具(如MYSQL、Redis等)及其相关配置信息。

此时,开启应用接收测试流量则展示的是影子库表信息,未开启应用接收测试流量则展示的是真实库表信息。远程调用展示了通过探针枪理的业务请求调用的接口及其相关信息。

消息Topic展示了通过探针理的业务请求调用的消息中间件(如Kaka、RocketMO等)及其相关配置信息。

相应地,开启应用接收测试流量时展示的是影子中间件信息,未开启应用接收测试流量时展示的是真实中间件信息。

四、工具平台服务化

基于公司内的项目性能测试经验,提炼生产性能测试的阶段性工作的细节,形成指南和规范,各项目组根据业务需求可申请生产测试服务支持。

对于常态化项目,做好流程规划把控,考虑可能影响项目实施的生产环境的变化因素,例如:接口变化影响测试实施,系统变化影响测试范围,系统应用组件变化造成数据污染,系统中间件变化造成测试链路变化。

从两个方向展开规划,以应对以上变化。

方向一,沉淀相关文档;

方向二,对供应商项目组提求。

具体措施方案如下:

沉淀接口文档,每次测试前做接口比对和接口模型比对,考量每次变更对测试的影响,跟项目组确认后推进测试实施;

沉淀测试系统范围,每次根据接口文档提前做系统范围确认,在前一次基础上做更新;

沉淀系统组件和中间件详情,每次根据文档做中间件和代码组件确认,做组件基线;

针对系统中间件及其他组件,希望每当有架构改变的时候同步测试项目组,项目组根据变动提前做好应对方案。

阅读后若有收获,不吝关注,分享,留言评论等操作!!!

标签:配置,测试,性能,链路,探针,实例,应用,规则
From: https://blog.csdn.net/qd_lifeng/article/details/144442554

相关文章

  • 渗透测试-前端验签绕过之SHA256+RSA
    本文是高级前端加解密与验签实战的第2篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过SHA256+RSA签名来爆破登录。绕过根据提示可以看出这次签名用了SHA2556和RSA两个技术进行加密。查看源代码可以看到RSA公钥是通过请求服务器获取:请求一下:http://127......
  • Pytest接口自动化测试框架Python自动化测试开发
    一、引言在软件开发过程中,接口测试是确保软件各个组件之间数据传输和功能交互正常工作的重要环节。通过接口测试,可以提高软件的整体质量和稳定性。Pytest是一个流行的Python自动化测试框架,提供了丰富的断言方法和灵活的测试组织结构,使得编写接口测试用例变得简单而高效。本文将详......
  • Windows环境使用conda安装paddleOCR并测试
    1,安装Anaconda打开清华镜像源https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D选择对应的版本的Anaconda下载并安装,按照提示一步步安装即可。2,使用AnacondaNavigatorGUI创建conda环境在AnacondaNavigator中,选择Environments选项卡,然后单击Create按钮。这将......
  • 【鸿蒙开发】关于性能优化的小tips
    系列文章目录【鸿蒙开发】鸿蒙开发基础干货篇–1【鸿蒙开发】基础干货篇–2小白入门手册(内含DevEco安装教程和汉化插件安装)【鸿蒙开发】基础干货篇–3小白入门手册(内含模拟器保姆级安装使用教程)【鸿蒙开发】基础干货篇–4小白入门手册(内含Stage模型工程目录结构和U......
  • Linux系统性能调优技巧深度解析
    Linux系统性能调优技巧深度解析在Linux系统中,性能调优是确保系统在高负载下依然能够稳定、高效运行的重要环节。调优的目标包括优化系统资源的利用率(如CPU、内存、磁盘和网络),减少瓶颈,并提升系统的响应速度。本文将详细介绍Linux系统性能调优的技巧,并提供具体的代码使用案例......
  • 为了改一行代码,我花了10多天时间,让性能提升了40多倍---Pascal架构GPU在vllm下的模型推
    ChatGPT生成的文章摘要这篇博客记录了作者在家中使用Pascal显卡运行大型模型时遇到的挑战和解决方案。随着本地大型模型性能的提升,作者选择使用vllm库进行推理。然而,作者遇到了多个技术难题,需要自行编译vllm和PyTorch,以支持Pascal架构的显卡。编译过程中,作者深入研究了显卡不支持......
  • 语义缓存:提升 RAG 性能的关键策略
    检索增强生成(Retrieval-AugmentedGeneration,简称RAG)(RAG综述:探索检索增强生成技术的多样性与代码实践)技术已经成为构建高性能AI模型的重要基石。RAG通过结合先进的语言模型与外部知识检索,能够生成既准确又富含上下文的响应。然而,尽管RAG功能强大,但它也伴随着一系列挑战,如高令牌......
  • iOS app 自动化测试 - 环境搭建
    1.基本前提安装好了mac上自动化测试的基本环境如果没有,可以参考这一个:2.iOSappiumpython自动化测试环境搭建2.1真机环境2.1.1前提:安装了appium-desktop2.1.2打开appium中的WebDriverAgent的xcode项目用访达,显示包内容进入目录:/Applications/AppiumServ......
  • iOS app 自动化测试,appium inspector 启动会话报错:Failed to create session. An unkn
    报错内容:Failedtocreatesession.Anunknownserver-sideerroroccurredwhileprocessingthecommand.Originalerror:'12.5.5'doesnotexistinthelistofsimctlSDKs.OnlythefollowingSimulatorSDKversionsareavailableonyoursystem:15.2,......
  • 黑苹果 - 搭建python自动化测试环境
    通用环境1.安装xcode从AppStore安装安装完成之后,打开xcode,同意各种协议不用新建项目注意:xcode下载完成后,安装的过程很慢,需要等待。我是12.5版本,差不多等了50分钟才安装好。一般来说,只要圆圈在一步步的前进,基本就能够安装成功。2.安装python33.安装selenium:pip......