针对金融类数据中台非功能测试趟坑后的心得

背景 (问题描述) 

笔者近段时间,连续接到三家银行数据中台非功能测试任务, 目前已经告一段落,回想这段时间;趟过不少的坑,总结一下, 数据中台的本质是企业能力的复用和共享,需要敏捷响应业务快速变化需求,因此需要各种平台和组件的支撑,既要高质量数据的支持,抽取、沉淀、又要具备可复用、可共享、可弹性扩展的服务能力。因此在整个非功能测试周期根据客户的痛点与需求做了以下方面的工作:

测试策略 

需求调研阶段:负责前期需求调研 , 明确各金融业务场景对数据能力的要求,首先熟悉数据中台自身的各种业务特征下的数据资产和指标体系,其数据血缘关系地图,涉及的数据采集、处理、存储、展现等各流程,用到各类组件特性;其次 明确各种典型的业务场景下(客户营销、财务绩效、风险合规、决策支持、监管报送、分行应用、产品创新、智能应用、渠道服务等)数据中台对外提供的访问方式 (包括数据服务、算法服务、计算服务、搜索服务、模型服务、图像识别等),是 API 还是可视化界面,消息订阅模式,还是其他,其 不同时间区间的访问频度、访问峰值,单次查询的时间范围区间,单次查询的返回记录数,数据明细分布曲线。并借助 思维导图梳理出对应测试要点及需求调研表,最终的需求调研表涵盖典型应用场景及指标等 , 并在非功能测试方案说明针对每种组件设计对应测试策略等。达到各种 非功能场景进行量化。

测试准备阶段:和团队伙伴一起准备各类场景下对应脚本以及 多态数据源下( ES 、 hive 、 hbase 、 mysql 等),根据数据源的特性;准备满足测试要求(包括典型业务表、数据分布、数据量要求)的 测试数据。

测试实施阶段:

非功能测试按先组件后应用思路进行压测,从高可用、高性能、高可扩展性三方面进行验证,性能方面重点验证数据中台是否具备为各种数据分析和数据产品开发,数据入湖,数据集成等提供通用可靠平台支撑能力。包括各种数据形态下的数据集成能力,数据迁移能力,数据计算能力,数据存储能力,数据访问能力。

对于可靠性方面,由于数据中台作为银行业业务系统重要的基础性平台,服务于整个前台系统,为行内外业务系统提供支撑,又因为数据中台的使用依赖于众多的底层数据后台技术架构,其业务连续面临着前所未有的挑战。对于业务连续性问题应给予特别重视,且系统借鉴互联网公司的架构,组件较多;可靠性问题比较突出。因此在非功能测试,可靠性测试方面从以下几个方面进行验证,验证网关限流和降级是否有效。对基于全局、应用、服务维度的限流有效性进行验证。对 web 服务集群节点、数据 api 网关集群、数据 api 服务、数据查询和可视化等集群节点的集群有效性进行验证。验证服务宕机、流量激增、缓存穿透等故障情况下;对其他服务计算资源,重要业务的影响。微服务组件 hystrix 进行服务熔断和降级,阻止故障连锁反应的有效性。数据集成 job 是否支持重跑。

可扩展性方面:比如数据中台组件之大数据基础平台组件需要具备优越的可扩展性 ,包括但不局限与大规模的集群服务器的物理扩展,分布式存储的节点和空间扩展,分布式计算,批量计算,流式计算的可扩展性算力,分布式的数据库可扩展能力,以及数据智能化管理、数据联邦功能和多层级调度的资源管控等功能扩展,能够支撑高可用,高并发、海量数据的应用场景。因此我们对可扩展性方面做了多方面验证。包括服务集群处理节点的弹性伸缩进行验证。计算节点可扩展性进行验证。

测试进度把控方面:测试过程中及时根据测试结果、监控数据、进度偏差等、与团队伙伴合作 , 采用以数据驱动为主的数据科学手段,经验判断为辅,及时调整非功能测试实施策略;增加并行度,使进度偏差控制 5% 以内。在测试周期的推进过程;缺陷数量随压测进度的推进呈现收敛趋势。

测试报告阶段:通过收集测试监控和结果数据;形成测试报告,通过分析缺陷的数量、来源分布进行分析;提炼出项目数据资产。通过此次非功能测试实施,我们借鉴行业的先进经验,同时也熟悉数据中台的标准体系(基础标准、技术标准、安全标准、应用与服务标准的内容)。 

  数据中台涉及常用技术组件:

  1) 大数据基础平台建设采用了 CDP 大数据平台,是数据中台数据的提供者

  2) 大数据基础平台前端开发框架 Vue

  3) 大数据基础平台后端开发框架 spring boot

  4) 数据中台统一门户采用 springcloud 框架

  5) 即席多维 olap 分析引擎: kylin

  6) MPP SQL 查询引擎 impala

  7) 日志管理系统 ELK

  8) 日志解析采集 filebeat

  9) 认证 Kerberos

  10) 离线数据库: hive

  11) 分布式文件系统: HDFS

  12) 即席查询 KV 存储平台: HBase

  13) 离线计算平台: spark

  14) 实时计算平台: storm

  15) 准实时计算平台: spark streaming

  16) 数据平台反向代理 / 负载均衡: F5 、 nginx

  17) 日志类信息和数据分析类信息的存储和检索 elastic search

  18) 热点数据缓存服务: redis

  19) 数据中台微服务注册调度: eureka

  20) 文件缓存 Alluxio ,实现文件按天分区

  21) 消息中间件 Kafka

  22) 作业资源调度: yarn

  23) 数据库(包括配置信息监控信息等): Mysql

  24) 数据中台配置中心 apollo

  25) 日志文件收集: filebeat

  26) 服务熔断 hystrix

  27) 监控套件: Promethues

  28) APM 链路监控: skywalking

  29) 身份鉴别机制: kerberos

  30) 服务注册容器资源调度 Kubernetes

  31)部署模式:虚机 + 容器云高可用部署

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取  

猜你喜欢

转载自blog.csdn.net/okcross0/article/details/131982238
今日推荐