• 0
  • 0
分享
  • 分布式核心系统测试方法探索与实践
  • 恬恬圈 2020-04-02 13:18:48 字数 2128 阅读 3382 收藏 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软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   故事点是敏捷项目管理和开发中的一种抽象的度量单位,用于估计实现一个或多个用户故事的复杂度,它是对工作量的一种描述方式。一个故事点就是一个数字,透过这个数字告诉整个团队用户故事的复杂度。复杂度包括功能的难易程度、风险和花多大的功夫。  故事点(story point)和预估时间(estimated)不一样,故事点是一种相对的估计,它并不能和类似“人/天”这样的单位画等号,因为每个人完成同样复杂度的工作所需的时间是不同的。我们举个例子说明一下:  假设T团队有A、B、C三位员工,A君的能力是B君的2倍,B君的能力是C君的2倍(能力是不能这样对比的,这里只是方便说明问题),T团队约定10天为一个...
            0 0 1926
            分享
          •   上一章我们剖析了如何修炼自身面试情商,避免在面试中触礁。不过,江湖险恶,面试场上总会偶遇各类“特色鲜明”的面试官。比如说,在加入蚂蚁之前,本人也曾与某二线互联网车企的面试官上演了一段有趣的小插曲:  “哟,您的经验挺丰富啊,技术水平看着也蛮不错的,还有出版书籍的经历呐?”  那时年少轻狂的我,瞬间接招:“哎呀,您真是高手啊,我也正期待拜读您的大作呢,到时候可别忘了给我打电话通知一声。”随后潇洒转身,扬长而去。  随着自己升级为面试官,接触了更多同仁和面试场景后,我发现每位面试官都有自己独特的性格色彩,甚至同一面试官在不同时间和情绪状态下也会呈现出迥异的面试风格。  “暖男”式面试官的“温柔...
            0 0 432
            分享
          •   概述  在人才市场中,一次完整的求职过程通常包括以下阶段:  · 简历筛选  · 电话面试  · 笔试面谈  · 意向确定  · 就职到岗  其中第一步,简历是求职过程中的敲门砖。  简历如果过于潦草,无法体现自身真实水平,那么可能连面谈的机会都得不到;反之,简历如果过于浮夸,后续流程中也难免露馅,造成不好的后果。  本文就来探讨一下,一份合格的测试工程师简历应该如何撰写。  简历元素  一份合格的简历应当包含以下元素:  · 基础情况  · 个人信息  · 教育背景  · 技术能力  · 工作经历  · 项目经验  · 自我评价  1. 基础信息  求职者的基础情况有时候不会单...
            0 0 1265
            分享
          • app测试中,随着功能的不断增多,每次发版本的时候需要回归内容就越来越多,回归需要花费的时间从1小时扩大到4小时,8小时甚至多天。为了减少投入回归的时间成本,人力成本,无数的测试人员开始尝试UI自动化。其实无论是web UI还是app UI 自动化都是存在一定的共性内容。就是通过控件的位置、名称、属性等获取控件对象,并且通过操作控件对象或者坐标来模拟用户的操作。它包括三个核心部分:1、动作执行动作执行需要先有动作,然后再进行执行,动作的获取有两种方式,一种是通过录制脚本,主要是记录空间的位置坐标和发生的事件,通过回放脚本完成测试事件,像airtest框架就提供比较方便的录制回放功能。...
            0 0 761
            分享
          • 前言还记得前段时间情人节,各种产品活动秒杀。结果有对象的辣条自然少不了被对象一番折磨 (注意:不是new出来的哈,也不是橡胶的,实实在在的女朋友) 于是乎彻底激发了我的求生欲,在这种关头我是必须发挥出自己的才能了,这才有了这篇毫秒级秒杀的精品出来,话不多说直接进入主题目录项目环境某宝抢购流程分析程序实现思路代码实践与梳理项目环境操作系统:Windows 10 开发环境:python3.7IDE:Pycharm自动化模块:Selenium安装命令:pip install selenium浏览器版本:Google Chrome 99.0.4844.51浏览器驱动版本:ChromeDriv...
            11 12 1183
            分享
      • 51testing软件测试圈微信