工商银行软件开发中心对全链路自动化灰度测试的探索与实践


2026-4-20 9:58来源:移动支付网    作者:工行软件开发中心广州开发二部

一、背景与现状

灰度发布是一种逐步将新版本推向用户的策略,通过新旧版本并存并控制新版本仅对部分用户可见,降低发布风险并验证需求。

为落实国家及总行金融战略要求,中国工商银行软件开发中心(以下简称“开发中心”)正加速从集中式架构向分布式架构转型。转型中,系统数量和复杂度激增。为控制投产风险、提升发布灵活性、保障服务连续性,开发中心广泛采用灰度发布。

然而,当前灰度发布面临两大关键挑战:

1、部分业务无流量:特定业务分支或低频交易在灰度期间可能没有真实流量,导致验证效果不佳。

2、测试覆盖不足:功能测试环境受限于人力、时间、环境等因素,难以完全覆盖所有业务场景的灰度策略。

开发中心近年来已建立较完善的接口、批量、流量自动化测试能力。核心目标是如何利用这些资产,有效降低灰度问题漏测率(注:指问题未被测试发现而进入生产环境的比率),确保灰度内容平滑转正,实现高质量交付。为此,开发中心正探索构建基于现有自动化测试资产的全链路业务场景灰度测试守护机制,以提升测试质效,支撑快速持续交付。

二、解决方案及应用实践

本方案通过“灰度验证链路探测”与“灰度策略全覆盖”两大核心功能模块协同运作,构建全链路自动化灰度测试能力。工具基于Spring Boot框架构建,主要提供Web服务及Java运行环境支持。

整体架构见图1所示:

图1

1、灰度验证链路探测。

该功能包括如下模块,见图2所示:

图2

(1)文件检索:以本地或远程仓库中的文件作为数据源,利用Apache FileUtil工具,高效地筛选出生成调用链路需要用到的目标文件和代码。

(2)代码扫描:对第一步筛选出的文件进行扫描,使用NLP算法解析并获取代码中的调用信息,再通过深度遍历算法对服务调用关系进行遍历,得到调用关系链路。

(3)通讯区比对:在扫描服务调用链路的同时,获取到服务调用的传参,以及被调用方的输入通讯区参数进行比较,得到通讯区匹配结果。

(4)生成链路:展示服务调用全链路,以及全链路中未按约定提供/调用服务的应用、接口、字段名、字段类型等重要信息。

该功能提供了前端输入页面,可通过服务名和方法名获取服务的调用全链路,并判断服务的调用链路是否通畅。运行服务之后(其效果图见图3所示),如服务之间的连接线为绿色,则表明调用链路通畅,红色则表明链路存在问题,点击红线,便可获取提示,得知此服务上下游通讯区哪些字段不匹配。

图3

2、灰度策略全覆盖。

开发中心目前已有成熟的分布式平台接口自动化测试平台,积累沉淀了较多细粒度的测试资产,不同业务应用的测试自动化脚本分别存在于版本库和资产库中。其中,版本库保存的是当期待投产版本的接口自动化脚本,主要用于覆盖该版本新增、修改内容的测试脚本。资产库保存的是存量版本守护的接口自动化脚本,用于覆盖存量代码的测试脚本。

工具自动抓取分布式平台接口自动化测试平台上案例资产库与当期版本库中对应接口的所有调用方的自动化测试脚本,按照上下游接口的灰度策略,对白板与灰度调用链路进行交叉匹配,形成推荐列表(注:白板是指在当前的接口自动化测试覆盖体系中,尚未被任何自动化测试脚本覆盖的接口调用链路),见图4所示:

图4

根据不同的灰度调整场景,分别执行以下操作:

1、白调灰/白调白:使用案例资产库中的自动化测试脚本

2、灰调灰/灰调白:使用案例当期版本库中的自动化测试脚本

将接口灰度比例自动调整为“全灰”(白调灰、灰调灰)或“全白”(灰调白、白调白),自动运行测试并展示结果。

工具运行结果见图5所示:

图5

三、工具的实践效果

随着工具的正式落地,其在研发测试全流程中展现出显著价值,具体体现在以下三大核心维度:

1、精准定位代码级问题,高效疏通测试环境。

工具通过智能代码分析与全链路追踪技术,快速定位上下游服务间的接口异常、数据传递断层等代码层级问题,将传统“黑盒猜因”转为“白盒定位”,帮助团队将环境问题排查时间缩短60%以上。

2、提升灰度测试覆盖维度,强化质量防控网。

通过业务分支全覆盖和灰度策略全覆盖,工具将灰度测试的分支覆盖率从原有40%提升至85%以上,确保边缘场景和主控逻辑充分验证。

3、显著降本提效,释放人力资源。

原手工测试需重复准备数据,涉及与上下游应用交互。工具实施后,重复性手工测试任务减少70%,原需5人/日的回归测试现通过自动化流水线1天内完成,团队得以聚焦于高阶测试设计与创新。

四、未来展望

全链路自动化灰度测试工具自实施以来,凭借快速、高效的全量自动化测试能力,有效助力相关应用提升服务质量和发布效率。下一步将聚焦工具能力升级,重点从以下三方面迭代:

1、接轨生产:引入生产环境回放案例,提升测试的可靠性和准确性。

2、智能赋能:集成大模型、机器学习等AI技术,实现测试案例智能生成与链路分析,降低人工维护成本。

3、测试左移:推动工具能力前移,更紧密联结开发测试流程,提升整体研发效能。

评论加载中
相关文章

月点击排行
关于本站    联系我们    版权声明    手机版
Copyright © 2011-2026 移动支付网    粤ICP备11061396号    粤公网安备 44030602000994号
深圳市宇通互联信息技术有限公司    地址:深圳市宝安区新安街道28区宝安新一代信息技术产业园C座606