• 0
  • 0
分享
  • 分布式核心系统测试方法探索与实践
  • 恬恬圈 2020-04-02 13:18:48 字数 2128 阅读 2958 收藏 0

基于主机的集中式架构核心系统面临着成本高昂、处理能力接近极限、技术封闭与弹性伸缩不足等方面的挑战。分布式核心系统,以构建主机+开放融合式架构为目标,搭建开放平台分布式核心系统应用平台,对原有的关联系统实现透明,对外提供统一的服务。分布式核心系统在扩展性、低成本、降低运行风险等方面具有明显优势。那么,分布式核心系统如何测试呢?小伙伴们,赶紧一起来看下吧!

一、联机交易测试

新架构下,开放平台继承主机(应用模块A)功能,搭建开放平台应用体系(开放系统A),服务于开放平台其它应用;与主机应用无关的功能从主机剥离,下移到开放平台,减少主机消耗。其总体架构如图1所示。

1.png

图1 分布式核心系统总体架构

根据原主机应用模块A被开放系统和主机其它应用调用的情况,分布式核心系统联机交易分为以下五种交易类型(见表1)。

2.png

表1 分布式核心系统联机交易类型

对应表1的五种联机交易类型,采用差异化联机交易测试方法,各类交易涉及的测试项如表2所示:

3.png

  表2 分布式核心系统联机交易测试方法

1、完全下移:测试交易处理结果与开放系统A Oracle库记录是否一致。

2、同步下移:测试交易处理结果是否同步更新至开放系统A Oracle库和主机DB2。

3、暂时同步:测试方法分别对应完全下移交易或同步下移交易。

4、数据同步:通过未改造老主机交易更新主机数据,测试数据同步交易查询结果是否与开放系统A Oracle库记录一致,Oracle库是否与主机DB2记录一致。

5、未下移:回归测试,验证原主机交易是否成功,DB2数据是否正确。

二、批量交易测试

分布式核心系统批量交易测试主要采用类白盒(根据测试需求和应用设计情况,通过技术手段,直接操作后台数据库等进行数据准备和测试结果验证)测试方法,在开放系统A Oracle库准备相应测试数据后通过批量客户端调起批量节点,检查节点执行状态并根据交易规则核对数据验证结果。测试过程包括先进行单节点测试,着重于节点的功能检查,再执行整个作业计划,关注节点顺序配置及节点间数据交互的正确性。

三、补偿机制专项测试

分布式核心系统,需要确保主机和开放系统的数据一致性,对外提供统一的服务。系统通过联机补偿和批量补偿两种机制来实现。

3.1联机补偿测试

对于同步下移交易,在开放端处理成功后,由于主机交易未启用、网络延迟等原因,导致协同主机失败,类网关协同表记E状态,交易报错。该场景下,测试利用交易的幂等特性,完全不做修改或修改请求数据非主键信息再次提交,实现协同处理成功。

4.png

图2 联机补偿测试流程

3.2批量补偿测试

对于同步下移交易,在开放处理成功但由于网络等原因主机应答无返回的情况下,类网关协同表记U状态,需日终进行批量补偿,使用开放库最新数据更新主机数据,实现主机与开放数据最终一致性。

批量补偿测试过程:筛选出前一个会计日期类网关协同表U状态的记录,按照交易发生的顺序逐条读取协同信息,根据记录的操作类型、表名和WHERE语句,在协同操作的开放表中查询最新的数据,并根据协同操作类型的不同以及协同处理的开放表相应数据记录是否存在,根据表3测试方法验证生成主机补偿文件是否正确、主机依照生成的文件执行补偿是否成功。

5.png

表3 分布式核心系统批量补偿专项测试方法

四、应急切换专项测试

4.1 数据同步应急切换测试

正常情况,查询交易经类网关上开放系统A处理,开放系统A的数据由主机库通过数据同步机制秒级同步至开放库。当数据同步机制出现故障时,主机数据无法同步至开放系统A对应的表中,系统支持数据同步交易直接访问主机DB2表完成查询处理。

6.png

图3 数据同步应急切换测试流程

非应急状态下,直接在数据同步交易所查询的开放系统A表中修改数据,构造主机和开放数据库数据不一致的情况,测试数据同步交易查询结果是否和开放系统A表中数据一致。

应急状态下,在主机DB2表中修改数据,测试数据同步交易查询结果是否和主机表中数据一致,与开放系统A表中数据不同,确认应急方案是否生效。

4.2 交易路由应急切换测试

7.png

  图4 交易路由应急切换测试流程

当开放系统交易处理失败时,由类网关将交易路由切换至原主机交易处理,实现系统的稳定性。交易路由应急方案适用于下移前后接口未发生变化的交易。

非应急状态下,类网关交易表路由字段为开放系统地址配置,按照四种改造交易类型测试交易是否处理成功。

应急切换后,类网关交易表路由字段切换为主机地址配置,测试原主机交易是否处理成功。校验是否只变动主机DB2表,开放数据库表未更新。

总结

主机+开放融合式架构的分布式核心系统,较原主机核心系统,应用架构、交易处理链路及数据交互更加复杂,测试难度更大。上述分布式核心系统的联机、批量、补偿和应急测试方法已经在测试项目中实践应用,项目已顺利投产,希望能够对大家提供一些思路和帮助。当然,测试人员还要与开发人员充分进行系统设计和测试方案的讨论评审,根据不同的分布式核心系统的系统设计来制定相应的测试方案,确保测试更加完整和充分。


版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 当进行 自动化测试 编排时,测试步骤间的数据传递是至关重要的。在传统的方式中,一般通过复杂的脚本配置,或者手动复制这些数据,然后再慢慢地粘贴到每个需要它们的地方,以此来实现接口之间的参数传递。这种方式往往效率低下、容易出错并且难以维护,当接口或业务逻辑发生变化时,需要进行大量修改,增加了维护成本。为了应对这种复杂的数据依赖关系,Apifox 中引入了「动态值」传递机制。这种机制就像是一个灵活的“桥梁”,将指定的“上游”测试步骤的运行结果捕获,并插入到“下游”测试步骤的请求参数中,确保测试用例能够适应不同场景下的数据变化。这种响应关联机制消除了中间的手动传递数据环节...
            0 0 896
            分享
          •   有一份51Testing测试行业调查问卷需要您的助力,差不多三分钟的时间即可填完。我们给您准备了一份价值398元的测试课程作为礼品,感谢您的帮忙~链接:http://vote.51testing.com/  前言  最近是跳槽季,发现有小伙伴在一些非技术的软性问题上答的不是很好。  众所周知,程序员情商偏低,而这些软性问题,恰恰都具有一定欺骗性和吹牛皮成分在里边,对于演技不好的直男癌,简直就是天生克星。  其实不用太担心,软性问题往往就那几个,稍加训练和准备,你就可以成为一位高端名猿。  题目  第 1 题:说一下你自己的缺点  演技考验:4星  这题处处暗藏杀鸡,很多小伙伴会推心置腹,诚...
            0 0 966
            分享
          •   你是不是还在为描述缺陷复现步骤而苦恼?你是不是还在为寻找一款合适的视屏录制软件而挣扎?那么,你应该好好看看这篇小文章。  作为测试人员,撰写测试用例、提交测试缺陷是基本工作。但往往我们会遇到:开发人员无法根据我们描述的缺陷步骤,复现缺陷现象。且不说是不是因为测试人员描述的步骤不够精准或不够详细,一旦出现开发无法复现缺陷现象时就会出现频繁地沟通,导致出现缺陷处理时间延长的潜在风险。不仅如此,即使是测试人员一对一、当面为开发人员演示了缺陷的复现步骤,也可能出现缺陷处理人的转移而重复缺陷复现过程,由此会出现许多反复无效的沟通环节。  那么,你是怎么复现缺陷步骤呢?可能大家都有比较好的方法。但是笔...
            0 0 529
            分享
          •   测试行业现状  继教育培训、社区团购领域大幅度裁员之后,互联网大厂裁员消息也开始陆续传出,百度爆出游戏部门300多人接近全部被裁,直播业务被裁员90%;爱奇艺大规模裁员,裁员比例在20%到40%;而腾讯在年度员工大会表示,PCG事业群将开始大规模人员优化,此外,字节、阿里、携程等一众互联网企业,都开始削减支出、裁员过冬,不得不承认互联网企业的寒冬已来。  互联网仍在发展,但已经是存量市场了,对人员规模的需求正在放缓。在存量市场里,冗余人员和低效人员会被淘汰、被外包,而优秀的人才也会一直受到招聘方的青睐。所以我们就看到了近期行业里冰火两重天的一幕,一边是大量的低端测试工程师被淘汰、被外包和被...
            0 0 651
            分享
          • 概述自动化测试,顾名思义,指的是利用软件来执行测试用例并比较实际结果与预期结果的过程,以此确认软件产品的性能是否符合要求。那么,传统的手动测试方式是否还存在呢?在数字化时代之初,开发人员和测试人员需要手动执行测试,这种方法被通俗地称作“点击测试”。设想一下,当一个应用含有数百个组件和多个接口时,测试人员需要逐一手动检查它们,这个过程不仅耗时、效率低下,而且极易出错。因此,为了提升测试效率和准确性,自动化测试应运而生,它通过特定的工具自动执行这些重复的测试任务。自动化测试的优势经济高效:长期来看,可以显著降低测试成本。提高开发速度:通过减少手动测试的需求,加速测试过程。减少手动操作:自动进行重复...
            0 0 300
            分享
      • 51testing软件测试圈微信