技术应用丨基于流量回放的数据比对测试实践

技术应用丨基于流量回放的数据比对测试实践
2025年01月08日 10:02 金融电子化

文 / 中国民生银行信用卡中心科技信息专家    余金桥

中国民生银行信用卡中心 李丽萍

2024年5月,中国民生银行信用卡中心(下称民生信用卡中心)新核心系统在“客户零感知、体验零受损”的情况下顺利完成不停机迁移切换,确保客户交易、查询服务不中断,标志着民生银行信用卡跨入具备亿级用户服务能力和数十亿笔日交易量处理能力的新阶段。

为确保新核心系统高质量投产,项目组针对功能情况、集成状况、性能及高可用表现、安全评估、用户体验等验证目标开展多层次多维度的测试与验证工作。在此基础上,创新性开展多轮基于流量回放的比对测试工作,并自研了一套符合信用卡核心业务特色的数据比对测试系统,为项目建设全流程提供有力保障。

本文将详细阐述新核心系统建设项目中基于流量回放的数据比对测试实践,为同行业提供参考借鉴。

中国民生银行信用卡中心科技信息专家  余金桥

新核心系统数据比对测试的挑战

在追求新老异构系统迁移切换“零感知”的道路上,比对测试作为验证系统质量的关键环节,面临着一系列复杂的痛点和挑战。

新核心系统完成由传统集中式架构向单元化分布式架构的转型,数据架构由单体数据库转变为单元化分库分表,这不仅增加了数据查询的复杂性,更对数据的完整性和一致性提出了更高要求。在确保数据准确性的同时,如何高效地进行跨库跨表的数据比对,成为了项目组必须攻克的难题。

新核心系统在信用卡核心业务架构的重塑过程中,功能异构性问题是比对的难点之一,如授权全校验、子账户冲减顺序等,都要求比对测试具备高度的灵活性和适应性。项目组不仅要对新老系统的功能差异进行详尽比对,还要确保在功能变更后,系统的稳定性和用户体验不受影响。

在流量回放的时序处理方面,当联机交易和批量文件处理时,新老系统文件的时序不一致成为一大挑战,项目组需要通过自研工具和算法进行交易清洗和文件索引及排序,确保数据处理的准确性和完整性,这一过程不仅考验着项目组的技术能力,也体现了民生信用卡中心对数据质量的极致追求。

此外,随着交易数据的爆炸式增长,比对测试所需处理的数据量也呈几何级增长,这对测试工具的性能和稳定性提出了更高要求,项目组通过采用先进的测试技术和工具,以应对海量数据的挑战,确保测试结果的准确性和可靠性。

业务水平要求高、时间进度紧也是比对测试面临的痛点之一。项目组质量保障团队由民生信用卡中心具备丰富经验和专业技能的科技人才构成,通过制定科学的测试计划和进度安排,以应对复杂的测试任务,确保测试工作的高效进行。

新核心系统数据比对测试实践

1.数据准备。比对测试需要搭建新老两套系统,新核心系统在数据库铺底数据和用于回放的流量数据原则上保持一致。

铺底数据为生产上某时间点的老系统数据库切片数据,项目组采用精确的数据切片技术,从海量的生产数据中提炼出具有代表性的切片,这些切片不仅覆盖了各种交易场景和业务逻辑,还包含了账单日、最后还款日、月末、季末、年末等重要节点,并且经过了严格的清洗处理,确保了数据的准确性和安全性。通过这些精确的数据切片,能够模拟真实环境下的系统负载,为比对测试提供真实可靠的场景。实际生产库数据量大约为30T,经多轮清洗和优化,数据量可控制在3T以内。

用于回放的流量数据为生产上老系统的交易日志,从信用卡核心的应用系统架构讲,交易从大的方面可以分为联机类和批量类。其中,联机类包括:处理各卡组织标准的8583交易协议的授权服务;继承老核心系统对外提供的管理、查询交易接口,实现信用卡对客及系统接口功能的管理服务;承接运营管理平台的后台服务,实现业务功能操作的Web后管。批量类包括:承接信用卡业务日间/日终批量处理的业务功能,主要如卡组织清算文件的处理,账户的计息、入账、账单等批量功能。以某日为例:8583类交易600余万笔,管理类交易11506余万笔。经评估,生产上连续获取3天的请求报文交易日志,交易类型的覆盖率可达到90%以上,未覆盖的交易类型待后续阶段重新从生产获取日志测试。加上批量交易需要处理的输入文件,预估3天生产请求交易日志和批处理文件在200G左右。

值得注意的是,由于获取数据的老核心系统版本和待测新核心系统的应用版本之间存在差异,还要对数据做业务处理工作,使得数据的版本符合待测版本的需求。

2.流程概述。每个阶段比对测试的流程,分为五个步骤。

流量清洗:从生产日志中提取真实请求报文,供新老系统回放使用。主要的清洗工作包括交易抽取和格式转换,交易抽取是根据回放测试需求设置规则对报文进行抽取,可按照交易类型和功能组合(如只抽取某一只交易中查询功能的报文)抽取,也可将报文按客户进行分类,满足不同测试验证阶段需要;格式转换是将日志中老系统的报文转为符合新老系统报文规范的格式,以保证老系统的日志可被新老核心系统联机接收。

流量回放:不同类型的交易按照回放策略串行或并行发送,确保核心系统可以正常处理并返回应答,同时更新数据库相关库表数据,产出相关文件及报表等。在不同测试阶段,测试团队可根据比对测试要达到的目标灵活制定回放策略。

结果比对:对于产出的测试结果进行差异比对,按照比对层次的不同,可进行数据库、表、字段等多层次的全量或增量比对,服务接口的响应报文比对,以及批量输出的文件、报表比对。

差异处理:比对差异经过分析后可划分为合理差异和缺陷差异两种情况。针对合理差异,可以使用技术手段进行差异抹平,包括字段屏蔽、数值转换等;针对缺陷差异,进行根因分析、可以提交给相关研发进行代码修复。

修复后验证:测试团队对数据库记录进行回滚校对,系统开发团队则进行应用代码修复迭代,重新测试验证。

3.测试阶段。在流量回放执行过程与开发阶段高度并行的背景下,整个实践过程分为五个阶段。

静态数据比对:数据迁移是重构系统生产切换的第一步,其正确性也是后期流量回放的前提和基准。在具体操作方面,测试团队制定相关比对规则进行数据库层面的全表全字段比对,通过使用比对工具,将生产上获取的老系统数据库切片数据,通过迁移变形,生成新核心系统库表数据。

基于交易视角的单交易回放:本阶段的测试适用于迭代开发阶段,目的是为了验证单交易的正确性。项目组在管控环境下搭建新老两套系统,从老核心系统获取生产请求报文及批量输入文件,清洗后以单支交易为执行任务进行流量回放比对,其中联机交易、日间批、日终批任务分别独立比对。为了兼顾覆盖率与回放效率,本阶段会根据不同的交易类型,制定单交易的最大交易量,并会对时序不敏感的交易使用并发机制进行回放,在最大化覆盖率的前提下提升回放效率。

基于客户视角的交易比对:本阶段适合在核心系统业务功能基本稳定时开展。测试团队对生产日志进行清洗,尽量贴近生产客户真实的交易场景进行回放比对,为保证回放的正确和高效,批量测试遵从客户量由少到多,连续跑批天数由少到多的原则,采取客户间并行、客户内串行,且客户并行数量由少到多递进的方式回放。该阶段联机和批量的回放保持相对独立。

联机和批量混合滚动测试:模拟生产上真实的联机和批量编排场景,基于客户视角,通过联机、批量交易的多日滚动混发进行交易回放比对。

专题测试:以上阶段系统基本功能比对稳定后,项目组视情况进行外围系统比对测试,包括新型架构的专项比对测试和新需求追补后的版本比对复测等(见图1)。

图1  数据比对测试实施阶段任务解析

新核心系统数据比对测试平台建设

在比对平台建设方面,测试团队基于上述测试需求研发了比对测试平台,帮助解决海量数据的测试工作,主要包含四大关键功能。

流量清洗功能:比对测试平台从服务器日志中提取真实请求报文,用于提供给回放模块使用,并可根据测试需求设置规则对报文进行抽取,如按照交易类型、交易类型和功能组合等进行分类,也可按客户进行分类等,满足不同测试验证阶段需要。

流量回放功能:比对测试平台可以自主控制回放速度、回放数量,支持串行及并行两种回放模式,支持多种报文协议,通过设置交易错误上限来控制是否自动停止回放,支持断点续发等功能,回放完成后提供详尽的测试报告,包括请求的统计信息、错误的详细记录、响应时间、回放成功率、比对一致率、不一致报文类型统计、不一致响应字段标注等。比对测试平台在发送清洗好的报文时,可单向只往一个服务发送,以评估系统在真实负载下的性能和稳定性,同时支持向两个服务不同版本发送,监听响应通道根据流水号自动匹配到两方响应报文,逐一解析比对每个字段差异,此功能适用于版本回归、升级或系统重构类项目来验证功能的一致性。

数据比对功能:比对测试平台可以对比源数据库和目标数据库之间的数据,通过一键获取库表字段减少人工配置,支持自定义规则,针对迁移需求和数据特点,灵活配置源库和目标库的表对应关系、字段的转换关系等,支持一个或多个字段确定唯一行数据。对于数据表水平分表及垂直分表,比对测试平台均可通过配置后进行对应比对,最后出具完整数据差异报告。此功能可适用验证在数据迁移后没有数据丢失、改变或损坏,保证数据的完整性和一致性,还可动态自动比对回放过程中此段时间内数据库数据的差异性。

文件比对功能:比对测试平台可用于日间日终跑批生成出来的文件比对,支持多种格式,包括标准类文件、账单文件、报表文件等,还支持配置字段转换规则或过滤掉无需比对的部分,按每行或行部分字段比对。对于大文件,比对测试平台采取分治策略,将大文件切成小文件分布式、多线程提高比对效率。

除上述核心功能以外,比对测试平台还支持可视化视图、报表展示,可以实时统计项目信息、任务执行情况、结果正确率趋势等,并可与其他工具平台,如性能测试平台、接口测试平台、DevOps流水线平台等完成了一体化集成(见图2)。

图2  数据测试平台应用架构图

总体流量回放比对期间,民生信用卡中心共回放交易60亿笔,文件比对上万次,数据库比对500多亿行,并通过双向追溯,确认了功能类、联机接口类字段、数据库类字段、文件类字段、追补需求类等共814个差异,为正式迁移投产提供了充分的预期支撑。

数据比对测试探索方向

在数据比对测试的探索方向上,民生信用卡中心将持续挖掘流量回放测试的应用潜力,扩大应用范围,在三个方面继续完善数据比对测试系统:一是会与流量录制技术相结合,探索基于生产流量的流量录制回放技术,利用生产流量多样性的特征最大限度提升功能验证效果,保障核心日常生产上线的安全性和稳定性,助力核心系统高质量发展;二是探索新的应用场景,将比对测试作用于生产版本和即将上线的版本之间开展,推动数据比对测试系统更新迭代,继续完善金融科技服务能力;三是继续扩展可支持的数据库类型,并支持更多的报文协议,将核心流量测试的经验带到更多的项目中,助力民生信用卡中心数字化转型。

新核心,新征程。民生信用卡中心将继续发挥创新自研的技术优势,围绕“金融五篇大文章”探索发展新方向,以新核心系统的科技赋能,助力推动全行业务向更高水平迈进。

(此文刊发于《金融电子化》2024年11月上半月刊)

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部