来源:2024年度全国农村金融机构科技创新优秀案例评选

获奖单位:深圳农商银行

荣获奖项:科技管理创新优秀案例

一、项目背景、目标及相关规划

1.项目背景

随着银行业务的爆发式增长和数字化转型的深入,我行正在稳步推进基于分布式、微服务架构的“三代”核心系统建设。“三代”核心系统是一个复杂的大型工程,传统的测试方法效率低下且难以快速覆盖全部测试场景,无法满足敏捷化测试需求。因此,需要引入一款自动化测试工具,可通过录制历史测试案例数据或生产环境真实交易数据,在测试环境中以“回放”方式进行多场景、多案例的自动化功能测试和性能测试,从而降低人力测试成本、提升测试效率和质量。

在此背景下,我行构建了基于生产流量的仿真验证平台。该平台能够提高测试效率,扩大测试覆盖范围,从而提供一个更加可靠、高效的软件开发和测试环境。不仅是对现有测试体系的一次升级,更是面对未来技术挑战的一项战略性投资,提升企业竞争力。

2.项目目标

仿真验证平台项目建设的主要目标是提高测试效率和质量,为此平台需要实现自动化测试、真实环境模拟以及快速问题定位。

在自动化测试方面,平台应支持单笔、批量、定时任务和任意时段任意交易类型的自动化回放测试,显著减少人工测试时间,确保测试的全面覆盖和结果准确性。

在真实环境模拟方面,通过回放真实交易流量,平台应该更准确地模拟生产环境,从而提升测试的质量和可靠性。在快速定位问题方面,通过对比回放结果与实际结果的差异,平台需要迅速识别并修复潜在问题,进一步增强系统的稳定性和性能。

3.建设规划

根据我行当前实际情况,仿真验证平台的建设按照以下两个阶段进行:

第一阶段:引入仿真验证平台,支持“三代”核心系统建设。

此阶段,仿真验证平台的建设主要目标是赋能“三代”核心系统建设。具体规划如下:

(1)重点对“三代”核心系统进行全面的流量录制和回放测试,确保新系统在上线前的质量。

(2)利用仿真平台进行性能压测,模拟高并发场景,确保核心系统能够承受预期的业务压力。

(3)验证新老核心系统间的数据迁移流程,确保数据的完整性和准确性。

(4)通过模拟故障场景,评估系统的容错能力和恢复能力。

第二阶段:推广仿真验证平台,赋能重要系统升级建设

仿真验证平台在“三代”核心系统建设中应用相对成熟后,将仿真验证平台应用于其他重要系统(如支付系统、手机银行等)升级建设工作。具体规划如下:

(1)支持核心业务系统的云平台化迁移(“上云”),验证迁移后的系统稳定性和性能。

(2)测试数据库版本的迭代升级,确保新版本数据库的兼容性和性能。

(3)支持应用系统的国产化改造,确保国产化替代过程中的系统稳定性。

(4)验证新老系统间的无缝切换流程,确保业务连续性。

(5)支持应用版本的高效迭代发布,进行版本间的兼容性和性能测试。

打开网易新闻 查看精彩图片

4.业务功能

深圳农商银行借鉴行业先进经验,结合自身优势,构建了仿真验证平台,为软件系统测试提供了流量录制、案例生成、流量回放和流量比对验证一站式全流程引擎,确保了系统稳定,提升了测试效率与质量。

(1)融合多项技术,实现高性能无损无感录制

通过融合网络镜像技术、旁路高性能录制技术、跨时段组包以及预生成任务技术,仿真验证平台实现了对网络流量的无损无感录制。平台利用先进的旁路Tap交换机技术复制网络流量,确保生产环境不受任何影响;采用旁路高性能录制技术,在不影响业务运行的情况下完成流量的无损捕捉,并借助Kafka高速队列实现流量数据的高效异步入库。为了重构完整的请求与响应报文,平台应用了时间片内及跨时间片的组包技术,确保流量片段能够按照正确的时序被拼接起来。此外,预生成任务计划技术的应用赋予了平台在遇到异常情况时的断点续做能力,进一步增强了系统的稳定性和可靠性。

(2)建立系统化流程,生成场景案例

场景案例的流程包括建立信号队列、提取交易用户、识别案例和存入案例四个步骤。首先,平台根据场景配置的事件触发顺序,拉取该时间片内的前n个场景案例生成时间片信号,并生成一个案例队列包裹,确保回放时能够串行调用。接着,提取交易柜员或用户,将柜员分发到子线程,由子线程完成案例或场景案例的生成。然后,根据柜员拉取的流量判断其是否为场景案例,如果是,则将其合并为案例集;如果不是,则独立为一个案例。最后,将生成的案例缓存起来,以便后续回放使用。

(3)多方式的流量回放

仿真验证平台具备多种回放功能,以适应不同的测试需求。实时回放能够即时重播最新数据流,快速验证新功能或修复效果;全量回放则全面覆盖所有记录的数据,确保系统的整体性能;单笔回放针对特定请求进行单独测试,便于定位具体问题;场景级别回放模拟特定业务流程,确保各个组件协同工作正常;指定时间段回放允许用户根据需要选择某一时间窗口内的流量进行测试,分析特定时段的问题;按生产顺序回放则保持请求的实际顺序,检验系统处理并发的能力。这些回放模式结合及时响应机制,能够有效检测系统潜在问题,确保系统的稳定运行和高质量表现。

(4)多渠道流量比对

仿真验证平台具备多渠道的比对功能,能够全面验证系统的稳定性和一致性。系统不仅支持存储历史回放结果比对,还支持详细的回放结果比对,确保每次测试的准确性和可靠性。全字段比对功能覆盖所有数据项,细致检查每一个细节;指定字段比对则针对特定数据项进行对比,便于聚焦关键信息。降噪比对技术进一步提升了比对的精度,通过过滤无关数据,突出显示真正有意义的差异。这些功能结合在一起,帮助开发和运维团队快速识别和定位潜在问题,确保系统在多渠道环境下的表现始终如一。

二、创新点

我行构建的仿真验证平台集多形式安全录制、自动录入案例、场景回放、Mock多级挡板验证、多插件流量录制、持续比对验证及高并发时序保障等功能于一体,共同构建了一个高效、精准、全面的测试验证环境,为复杂系统的高质量开发与部署奠定了坚实的技术基础。

1.多形式安全录制

平台支持灵活多样的流量录制形式,同时确保整个录制过程的安全性。支持网络交换机的镜像流量录制报文,无需嵌码或代理,对生产系统运行不产生影响。录制系统采用高性能技术,适用高流量、多重复、多乱序的复杂网络场景,同时支持分布式部署,可通过横向扩展满足更高流量录制的需求。通过实时的7*24录制网络流,可完整的存档及回溯往期时间点网络报文,从而实现回放系统在已保存的历史数据中任意时间段任意交易类型的回放与分析。另一方面,在一些无法获取到网络流量的系统,支持基于交易日志文件或库表日志录制报文。

2.自动录入案例

平台能够高度自动化、智能化地生成测试案例,使得手动编写测试用例成为过去。通过流量录制技术,平台能够自动清洗和转换捕获的数据,进而生成一系列高拟真、高覆盖度的全业务测试案例库。这一流程不仅极大地提高了效率,减少了人工错误,同时也保证了测试案例的覆盖面和质量,从而显著增强了软件测试阶段的可靠性和有效性。

3.自动识别场景

仿真验证平台具备智能场景识别功能,在执行回放的过程中,依据预先设定的规则自动检测并标记特定的交易场景。借助于上下文感知技术,平台能够在无需人工干预下,精准地更新请求报文中的相关字段,确保每次交互都能适应当前环境的变化。这一机制不仅简化了操作流程,还提升了处理效率与准确性。

4.支持Mock多级挡板验证

对于无法回放的链路,平台采用挡板并对服务进行Mock,通过提供Mock节点设置,用户可以采用多种方式进行Mock数据配置,包括自定义数据、基于录制流量的关键值匹配以及借助AI智能计算生成动态数据;此外,平台适配多种报文和协议,支持导入和配置两种报文格式设置方式,全过程无代码侵入且对系统零影响。这一系列功能不仅增强了Mock数据的真实性和灵活性,还确保了在多级挡板验证中的全面覆盖,从而有效提升了测试的准确性和系统的稳定性。

5.持续比对验证

仿真验证平台提供多种比对维度,包括报文字段、数据和文件等,并支持持续比对验证功能。通过多种规则和模板,平台能够自动对比录制数据与回放结果,细致入微地检查每一个数据点,自动识别任何潜在的差异或偏差。这不仅提升了验证的全面性和准确性,还增强了比对的灵活性和验证效率。

6.高并发时序保障

在进行流量回放分发时,仿真验证平台采用了分桶并发处理机制,这一机制不仅确保了交易顺序的正确性,还显著提升了回放的并发处理能力。因此,系统即使在高负载环境下也能保持稳定的性能和高效的处理速度。

此外,使用者可以根据需求灵活设置时间段、回放速率等参数,并结合全链路网络和交易性能指标分析,生成详尽的应用性能测试报告。这种灵活性和全面的分析能力进一步增强了平台的实用性和有效性。

三、项目过程管理

深圳农商银行于2024年3月启动了仿真验证平台项目。经过团队的共同努力,该项目于同年6月正式投入运行。截至目前,已有“三代”核心系统、个人手机银行等应用系统建设项目使用该平台。

四、运营情况

自平台上线以来,持续帮助我行进行自动化业务系统功能及性能验证,显著提升了运营效益和竞争优势。截至目前,平台已高效识别了十余个系统中的79个数据迁移、参数设置和性能方面的缺陷,为系统上线前的质量管控提供了有力保障。此外,我行建立了一站式常态化回放机制,持续为改造、云端迁移和数据库升级等转型场景提供技术支持。

五、项目成效

平台显著提升了比对成功率、工作效率,并降低了成本,有效解决了生产运维中的问题,具体表现在以下几个方面。

1、三代核心系统开发初始阶段,可以通过流量录制的报文作为单元测试报文,开发人员通过单笔回放功能提高了自测的效率。

2、在回放测试的推动下,回放比对的一致成功率实现了显著飞跃。自2024年7月19日至8月27日,从52%大幅攀升至99%。期间共发现了79个缺陷,其中包括十余个数据移植问题、3个参数问题和1个性能问题。值得注意的是,这些缺陷中有许多是通过传统人工手段难以发现的。由此可见,回放测试有效弥补了人工测试和自动化测试在业务场景覆盖率和分支测试方面的不足。目前,回放系统已成为我行三代系统建设中的关键环节,在系统上线前的质量把关中发挥了重要作用。

3、对于难以在生产或测试环境中重现的问题,利用仿真验证平台可以容易重现,协助了生产运维团队定位问题。

更多金融科技案例和金融数据智能优秀解决方案,请在数字金融创新知识服务平台-金科创新社案例库、选型库查看。