信用卡分期业务的场景级自动化测试探索与实践
来源:BanTech智库
作者:中国工商银行软件开发中心成都产品部
一、背景与现状
中国工商银行软件开发中心(以下简称“中心”)在总行党委的领导下,认真贯彻党中央关于金融工作的指示,结合个人金融银行战略要求,加快推进信用卡业务服务体验提升与数字化转型,致力为客户提供更优产品、更好服务。
为了保障信用卡相关产品的对客服务质量,提升用户满意度,解决传统手动运行案例难以在快速迭代的产品研发周期内实现全流程覆盖的难点,近年来,中心持续推动从用户视角开展业务全场景测试,通过自动化手段进行场景级质量守护,提高测试工作的仿真度,将体验问题尽早在测试阶段暴露并进行优化,已形成了低成本、易落地的解决方案。
场景级自动化测试,即以自动化的形式进行一个完整的业务全流程测试。以信用卡分期业务为例,依次包括测算、增信、申请、放款、还款等多个步骤,一个场景级自动化案例将覆盖以上各步骤,从业务入口开始,直至业务办理完成,真实还原了用户的实际操作场景。
我们在场景级自动化测试的探索中,陆续遇到了以下技术难点:
一是业务场景复杂多变,全场景测试依赖前端页面和后端接口混合编排运行,这要求自动化工具能够快速、灵活、低成本地完成流程编排。
二是业务办理过程依赖基础平台,例如短信验证码、图形验证码、Mock平台、缓存平台等,工具底层需要适配各基础平台,并提供标准规范的使用方式。
三是请求的调用链路长、环境稳定性差,在场景级案例中,流程加长会将稳定性问题放大,如何降低环境稳定性对案例运行的影响是一个难点。
二、工具的设计与实现
1.实现方案
目前中心已有成熟的前端自动化工具和接口自动化工具,在此基础上,通过整合开发,建成了支持场景级自动化案例运行的工具平台,其整体架构如图 1所示,该工具有如下模块:
(1)主控模块,包括案例的编排与调度、环境管理、图文报表等基础能力,通过对基础能力和组件模块的调度,实现场景级案例的灵活编排运行。
(2)UI模块,负责模拟用户的页面交互操作,主控通过UI模块驱动浏览器完成页面操作,其能力基础为业界常用工具Selenium。
(3)接口调用模块,模拟对后端服务的调用,封装了行内常用的HTTP、RPC等接口。
(4)外联模块,打通案例运行中联动到的横向基础平台,例如验证码、缓存、Mock平台等,实现对各个基础平台数据的增删改查操作。
图1 场景级自动化工具架构
目前工具已经实现场景级自动化案例的编排和运行,并支持案例在本地工作环境和Jenkins平台进行调度。工具运行前,对前后端操作步骤进行编排准备,在运行中对关键步骤进行记录,最终自动化输出验证报告。
2.案例的灵活编排与运行
UI模块和接口调用模块封装了前端页面和后端服务的操作细节,与案例进行解耦,使案例专注于操作步骤的编排。案例编排时,根据业务办理的实际顺序设置操作步骤的顺序,工具在运行时将依次调用各操作步骤。如图 2所示,当操作步骤的类型为前端操作时,通过UI模块唤起浏览器,打开业务办理页面,模拟用户进行信息输入和提交动作,当操作步骤的类型为接口调用时,则通过接口调用模块对被测应用进行直接调用,由此自动化案例实现一个完整的业务办理流程,覆盖了用户的手动操作步骤。同时,在UI模块运行过程中,可以对每一个页面进行截图,并对每一个交互细节进行断言,例如页面文本、图片等,以保证页面的体验效果与设计一致。
图2 案例编排
3.行内工具平台适配
工具在运行过程中,与行内的服务平台、工具平台之间存在频繁的交互,例如业务办理流程中,存在短信验证码获取与校验场景,需要打通短信验证码平台,获取认证短信。外联模块将各平台的适配工作进行封装,与案例解耦,并以规范统一的方式提供给案例进行调度。目前已适配的平台包括:Mock平台、容器管理平台、缓存平台、短信平台等。
4.环境管理
环境问题一直以来都是制约测试工作顺利开展的关键因素,环境问题会造成案例运行成功率低、噪声大等问题。错误的环境配置甚至会导致所有测试工作返工,环境管理模块尝试通过以下两点解决上述问题,如图3所示。
图3 环境管理
(1)环境检测,针对环境配置不符合预期的问题,环境检测能力可在案例运行前,先行检查容器中的镜像版本、代码变更点等信息,确保环境版本与案例版本相匹配,同时将检测结果汇总至案例运行报告中,使测试人员对案例运行环境的状态心中有数。
(2)环境裁切,针对因环境造成的案例成功率低问题,可进行环境裁切,将影响链路调用的旁路系统进行屏蔽,从而确保被测应用可以稳定地提供服务。理想情况下案例应当运行在全链路均为真实应用的环境中,但实际测试时候,部分应用存在短时间内难以恢复的情况,并且此应用与被测应用当次的变更点无关,此时可以将下游应用从全链路中裁切。裁切动作通过修改测试配置,在案例运行时动态更新Mock平台的开关状态实现,当Mock开关关闭时,请求透传至真实下游,当Mock开关打开时,则返回预设报文,实现裁切。
三、工具的实践效果
在信用卡分期业务的研发流程中,工具应用在了多个关键节点,如图 4所示,详细情况如下:
(1)在代码提交环节增加存量功能的冒烟测试节点,使开发在提交代码前完成存量功能的回归测试,以提高提测代码的质量。
(2)在环境部署后,交付测试前,插入集成冒烟测试节点,以提高测试环境的可测性,降低环境问题带来的测试成本。
(3)在功能测试阶段,补充增量案例、维护存量案例,在功能环境做全量案例的回归;同时在发布前的最后阶段,完成回装环境的自动化验证。
图 4 实践场景
场景级自动化工具在信用卡分期业务落地后,实现了场景级回归测试,并首次将对客页面纳入保障范围,对服务体验的保障有促进意义,详细的应用效果如下:
(1)回归测试的覆盖面和效能显著提升,信用卡分期的全量业务场景在小时级完成回归测试。
(2)自动化测试覆盖准入、功能冒烟、日常回归等多个测试节点,在整个研发迭代过程中建立了多层防护墙。
(3)通过工具的帮助,测试人员减少了重复劳动,将更多的时间和精力投入测试分析和风险识别,使测试团队的成熟度得到了提升。
四、未来展望
场景级自动化测试工具应用以来,凭借快速、高效的全量自动化测试能力,有效地保障了对客产品的服务质量,助力信用卡业务的服务体验提升与数字化转型。随着业务和环境复杂度的提升,场景级自动化测试工具仍需在以下方面进行提升:
一是降低编写成本、提升编写效率,实现通过页面录制完成案例编写的能力。
二是对外提供完备的API服务,支持跨平台部署和运行,与DevOps流程相结合,实现更快速、高效的软件交付目标。
三是提高工具的智能化水平,建设高效、精准的案例推荐、问题定位、资源调度能力。
-END-
注:本文著作权属于原创作者所有,转载、摘编或利用其他方式使用本文观点或文字、图片的,应申请获得授权、注明来源。违反该声明者,将追究其相关法律责任。
这是科技创新最好的时代,这是属于我们每个人最好的时代,关注“BanTech智库”,专注银行科技发展,探索无界金融生态!