
案例背景
01
系统快速迭代的挑战
随着互联网金融、大数据金融、人工智能等多项技术的普及,金融科技在北方某金融机构的应用与发展有效地保障了生产运行效率、稳定性与安全性,同时该机构为了保持对新业务需求的及时响应,必须不断的进行科技投入,持续进行产品开发与迭代,尤以重要交易系统对稳定性、性能容量提出了越来越高的要求。
机构持续进行周期性常态化的功能与性能测试,但长期以来一直受制于案例覆盖率有限、场景真实度较低、人力不足、多团队重复工作等因素的影响,难以实现全面、高质量的版本检核。
测试介入晚,时间紧,任务重,压力大
因为赶工期,测试周期会被大大压缩,测试介入很晚,而且随着软件功能增多,每次版本发布前的回归测试工作量倍数增加,甚至无法完成回归测试。
测试案例设计不全
现有的自动化测试工具,见效慢,成本高,因案例仍需人工设计,仅执行方面可做到自动化,而现有的人员有限,经费有限,人员对业务理解程度,决定测试案例编写的有效性,从而导致:
1. 性能测试,接口覆盖不足,无法模拟生产真实场景,无法准确评估系统性能和提前发现性能瓶颈;
2. 稳定性测试,全靠已设定好的案例7*24小时重复跑,测试不严谨,覆盖面不全。
生产故障难以复现,测试结果对比繁琐
出现生产问题,需要在测试环境复现时,测试无法模拟当时真实的生产场景,造成问题难以复现,而且大量的测试结果需要比对,对bug进行甄别,工作处理费时费力!
02
应对挑战的建设目标
为解决长期困扰的痛点问题,该机构引入交易录制回放系统,希望通过对生产环境真实业务的网络流量进行录制并在演练环境有效回放,有效提升测试覆盖率和场景真实度,令回放系统在多场景,如:核心系统EOS升级、核心库分库、周期性生产发版验证、核心优化改造专题、性能容量评估、核心信创改造等重要项目中发挥其预期作用。
项目建设过程中主要围绕以下内容为目标展开:
对核心系统、核心库生产交易的网络流量进行精准录制与还原;
实现灵活可控回放;
原始返回与回放返回报文的内容 全字段比对;
对接脱敏系统,验证回放系统下移至测试环境可行性。
天旦解决之道
无论是基于生产日志筛选,还是通过数据库查询获得数据来构造交易,进行全链路压测又或是行为回放,行业内已经有众多解决方案,用于解决软件开发测试过程中的一系列难点,我们广泛吸收了各大银行、券商在全链路压测及行为回放建设方面的经验,并结合天旦自身技术优势,创新式的设计开发了一套基于生产网络流的全接口交易录制回放解决方案。
01
方案特点
该机构的交易录制回放解决方案,基于ESB至核心系统CICS中间件、CICS中间件至DB2之间的TCP网络流量包(非日志)解析还原出生产交易报文,能够快速智能化生成测试案例库,进行任意构造场景,回放任意时点生产交易并记录、分析业务返回及性能指标变化,可以快速复现生产问题,大幅提升回归测试效率及性能测试的有效性。
其特点如下:
基于生产网络流完成回放,摆脱日志束缚;
智能化生成测试案例,构建完整生产案例库;
全量接口回放;
测试过程全链路网络性能与交易性能指标记录分析;
严格时序的交易线回放;
自动化全字段对比分析,快速定位差异;
数据报文级别的脱敏操作,使系统具备下移测试环境的能力。
02
部署架构
交易录制回放解决方案采用分布式部署模式,支持横向扩展,提供更高交易量TPS的录制与回放测试。
回放所发送的测试交易,源自对生产环境中捕获的TCP网络报文的解析还原,而非使用程序构造或人工生成交易,彻底解决软件测试中因案例库不完整、不能模拟生产真实业务场景而导致一系列问题。
系统物理部署架构
03
系统流程
交易录制回放解决方案集生产流量录制、数据解析处理、案例场景管理、回放系统、数据平台、数据对比统计、监控与报告为一体,完整录制生产交易流量,完整的案例库,全接口回放,保证高效便捷的完成回归测试与性能容量测试任务。
流程处理
04
核心功能
生产流量录制
回放系统的数据源来自于网络交换机的镜像流量,非系统日志,无需嵌码或代理,对生产系统不产生任何影响。录制系统采用高性能DPDK技术,适用高流量、多重复、多乱序的复杂网络场景,同时支持分布式部署,可通过横向扩展满足更高流量录制的需求。
通过实时的7*24录制网络流,可完整的存档及回溯往期时间点网络报文,从而实现回放系统在已保存的历史数据中任意时间段任意交易类型的回放与分析。
报文解析处理
报文解析模块依照业务系统网络接口规范,读取并解析网络报文,关联每一笔交易的请求与响应,时间顺序还原生产交易,同时针对重复、乱序、丢包造成的交易异常进行处理,保障解析交易与生产交易的一致率。
案例场景管理
智能化构建完整案例库,通过对网络报文内容的解析,获得报文中关键字段,例如:交易类型、渠道、合同号、操作员、**代码等关键交易字段,用于场景管理对所需交易进行过滤处理,例如,该机构常聚焦某一家成员行的交易,对其进行精准筛选后,快速生成基于生产真实数据的场景化测试案例。
亦可全量输出所选时段的所有交易,即日常生产场景用到的所有交易类型接口,真正实现测试案例的全接口覆盖。
针对部分场景,可依需求对回放报文字段进行替换、报文头修改、格式转换等操作。
生成的案例场景也与现有的自动化测试工具结合,实现读写可控的引流压测,从而进一步有效提高回归测试效率,助力敏捷测试。
系统物理部署架构
案例中该机构的回放系统采用了前两种格式转换模型,核心系统的回放采用“回放报文字段替换”模型,而核心库的回放则采用了“回放报文格式不变”的格式转换模型。
回放系统
在选择回放时间及场景案例后,回放主机与被测应用建立会话,完成验证,即开始将修改的请求报文按原始交易顺序发送至服务器端,应用程序收到并处理交易请求,过程可与生产环境交互过程完全一致,回放主机可处理同步或异步交易。
回放过程实时监测
-
提供多种回放速率 在限流TPS功能的基础上,可根据所需以常速、加速、减速三种回放模式进行任意速度回放测试,满足对生产场景还原、功能测试、性能测试、压力测试、回归测试等多种场景要求,该机构通常使用减速回放方式来适配测试环境中核心系统处理性能。
-
断点回放 手动或自动熔断触发的回放终止,再次拉起回放时支持从断点开始回放。 -
熔断 回放交易量TPS、成功率低于设定阈值后,立即停止回放,待研发人员查找熔断原因,适用无人值守的长时间回放。
服务Mock
对于业务路径中不能被回放测试的服务,或者涉及第三方系统,为了保证回放业务请求的完整性,需要对系统服务进行 Mock。
服务Mock,基于对生产流量的解析获得交易请求与响应数据,在回放环境中,收到前端系统的业务请求后,将按照生产响应时间及回放速率综合计算,执行对应的响应时间,为前端系统返回生产结果数据,全过程无代码侵入,对系统零影响。
全链路观测
回放链路全程可观测,统计各交易处理环节网络流量、网络时延、并发连接、响应时间、响应率、成功率等关键指标,从网络性能和交易性能两个方面入手,令测试人员更全面的掌握回放过程中业务路径各环节性能表现情况,同时统计结果可用于后续自动化全字段对比分析。
对比分析统计
完成多批次回放测试后,需要将多轮回放结果与生产或A/B轮进行比对分析,包括统计指标(交易量、成功率、响应率、响应时间及网络时延等)和交易明细;用以发现系统性能变化或异常交易,交易对比分析统计分为返回码对比与全字段对比:
统计结果对比:可对回放A/B轮返回结果的统计信息进行差异对比,对比效率高,速度快。
统计结果对比A/B轮差异
全字段对比:依靠字段配置文件,生产原始返回与回放返回的报文中所有字段进行比对,或回放A/B轮返回的报文中所有字段进行比对,可有效识别“返回码一致但某字段返回值不一致”、字段删改等细微差异。
全字段对比A/B轮差异
回放结果统计对比分析报告
方案总结
几年来,通过天旦与该金融机构的共同努力探索前行,系统已趋于成熟,已能够对生产环境真实业务的网络流量进行精确录制和解析,并在演练环境进行高效回放,帮助团队大幅提升了测试覆盖率、场景真实度,有效降低了缺陷逃逸率,缩短了核心与数据库系统发版上线时间。
交易录制回放系统上线期间,已在十余项测试任务中发挥重要作用,如:
新理财模型切换
核心平台优化(GDBI4RDB优化)
核心参数缓存改造
月度生产发版回归测试
期间帮助团队发现数十个高风险问题,尤以新接口的增加与修改对其他接口的潜在影响,其中多数缺陷人工手段极难测出,这得到了该机构基础金融部、生产运维部的高度认可,目前回放系统已加入发版验证流程,成为上线把关过程中关键一环。
未来回放系统将被委任更重要的任务,在即将到来的信创化改造、核心系统下移等重大事务中继续发挥其关键作用。
*备注:文章中所呈现数据均为测试数据

