信用卡系统测试自动化实战:快速定位问题,提升效率
邮储银行新一代信用卡核心系统测试自动化实践探索
目前,邮储银行正致力于新一代信用卡核心系统的建设,致力于实现信用卡业务的全面数智化升级。在系统开发过程中,我们采用了DevOps流程,以提升开发效率。然而,这也带来了新的挑战,因为频繁的集成和部署使得测试工作量大幅增加,测试人员需在短时间内完成大量测试任务,包括新增功能的验证和回归测试,这无疑增加了质量管控的难度。
面对这些挑战,我们积极探索更有效的测试方法。其中,接口自动化测试的引入是一个重要的突破。通过自动化测试,我们可以实时监测系统的不稳定变更,帮助测试和开发人员迅速定位问题,从而显著提高测试覆盖率和效率。同时,我们根据实际需求,打造了信用卡核心测试支持工具,为整个项目建设流程提供了强大的支持。
频繁的集成与部署带来的挑战
在新一代信用卡核心系统的开发过程中,由于引入了DevOps流程,导致集成与部署的周期大大缩短,版本更新迅速。这虽然提升了开发效率,但同时也带来了手工回归测试成本高、测试难度大的问题。在有限的人力资源下,如何提升回归测试的覆盖率成为了一个亟待解决的难题。
1. 测试数据生成的问题
信用卡核心系统的测试过程中,需要大量的测试数据来模拟各种交易场景,如挂失、止付、消费、分期等。然而,手工生成这些数据不仅操作复杂,而且效率低下,难以满足频繁发版的需求。此外,某些特殊场景下的测试数据甚至无法复用,需要持续生成,这进一步增加了测试的难度和成本。
关联系统调用与接口稳定性问题
新一代信用卡核心系统的建设涉及到众多关联系统,系统间的交互涉及复杂的接口调用和数据传输。如果核心接口不稳定,将直接影响关联系统的正常使用和整体的测试进度。因此,如何保证核心接口的稳定性和可用性,确保关联系统的测试进度,也是当前测试工作的一大难点。
信用卡接口自动化测试框架的设计与实现
针对上述问题,我们提出了一个基于模板与数据双驱动的接口自动化测试框架。该框架在邮储银行现有接口自动化框架的基础上进行优化,结合新一代信用卡核心系统的特点,实现了测试数据的自动识别和接口请求体的智能拼装,从而降低了测试人员的脚本编写难度,提高了脚本的产出率。该框架分为资源管理层、数据管理层和接口管理层三个层次,通过分层设计和管理,有效提升了测试的效率和准确性。

框架整体架构图
该框架整体架构图清晰地展示了各个组件之间的交互与依赖关系,为理解和使用框架提供了直观的视觉参考。通过分层设计,该框架实现了对测试资源的统一管理、测试数据的高效处理以及接口请求的智能拼装,从而有效提升了信用卡接口自动化测试的效率和准确性。
框架整体架构图
该框架整体架构图清晰地展现了各个组件之间的交互与依赖关系,为理解和使用框架提供了直观的视觉参考。通过分层设计,该框架实现了对测试资源的统一管理、测试数据的高效处理以及接口请求的智能拼装,从而有效提升了信用卡接口自动化测试的效率和准确性。
接下来,我们将深入探讨该框架的两个核心特性:模板驱动和数据驱动。
2. 模板驱动
该框架采用模板驱动方式,实现了接口和脚本的高度分离。与传统的JMeter脚本不同,此框架将信用卡核心交易请求进行了深入分析和拆解,分为公共层和应用层进行统一维护。测试人员只需关注接口的应用层内容,通过拼接公共层和应用层即可形成完整的请求体。所有联机接口均基于这种拆解方式,构建了丰富的模板库。在Jmx文件中,JMeter能根据接口服务标识符自动定位所需请求模板,并生成可调用的完整请求体。模板中已预制默认参数,测试人员仅需关注当前测试场景所需参数,极大简化了脚本维护工作。
3. 数据驱动
该框架还通过数据驱动方式实现了测试脚本与测试数据的高度分离。测试数据被存储在外部Excel文件中,而请求体则封装在模板中。脚本执行时会自动导入接口测试所需的参数数据,确保了测试数据的独立性。与传统的接口测试框架相比,该框架在数据读取和处理方面具有显著优势:它按列而非行进行数据读取,使得数据与参数的关系更加清晰易懂;同时支持随机参数生成和多种格式日期数据生成等功能,使脚本能够更加专注于业务逻辑的处理。此外,该框架还提供了灵活的字段描述和测试用例管理方式,满足了多种场景下的接口测试需求。通过数据驱动的方式,当接口功能发生变更时,测试人员只需增加、修改或删除相应的测试参数数据即可,无需对测试脚本进行大量修改。

某接口测试数据及脚本结构示意图
在信用卡测试中,不同场景下每个接口的请求字段可能有所不同。为了灵活应对这种差异,该框架能够依据数据文件内容,动态调整各测试场景所需的请求字段。这样的设计不仅提高了脚本的复用性,还显著降低了维护工作量。
脚本规范化与成本降低
该框架不仅支持单接口测试,还适应多接口串联的复杂场景。在多接口串联测试中,只需将各接口参数数据放置于同一Excel文件的不同Sheet页中,便能轻松应对业务中的多接口需求。图3和图4详细展示了多模块间多接口串联的数据文件和脚本结构,涵盖了从客户开户到销户的完整业务流程。所有请求均通过JMeter函数自动生成请求体,确保了脚本的规范性和一致性。采用模板与数据双驱动的方法,实现了脚本、接口与数据的彻底分离,简化了维护流程。以50条脚本为例,传统方式编写耗时约200分钟,而使用该框架仅需45分钟,显著提高了编写效率。同时,当接口功能发生变化时,测试人员只需更新参数数据,无需改动接口文件,从而大大降低了维护成本。

图3 多接口串联场景的数据文件示意图
在多接口串联测试中,数据文件的设计至关重要。图3展示了这样一个数据文件的示例,其中各个接口的参数数据被清晰地分隔在不同的Sheet页中。这种结构不仅便于测试人员管理和维护,还能确保在业务需求发生变化时,能够迅速而准确地更新相关数据。

图4 多接口串联场景的脚本结构示意图
在多接口串联测试中,脚本结构的合理性直接影响到测试的效率和准确性。图4展示了一个多接口串联场景的脚本结构示例,通过清晰的分层和模块化设计,使得测试人员能够更高效地编写、管理和执行测试脚本。这种结构不仅简化了测试流程,还提高了测试的可靠性。实现用例生成自动化,节约测试成本
鉴于手动编写测试用例耗时耗力,我们团队研发出一款测试数据转用例工具。这款工具能依据测试框架中的参数文件和测试数据,一键自动生成符合规范的用例文件。在测试分析阶段,我们整理出115个接口的测试数据,利用此工具轻松生成了4000余条测试用例。经过业务、开发和测试人员的内部评审,这些用例全面覆盖了业务场景,包括流程、规则和权限等方面。若按传统手工方式编写这些用例,预计需花费15个人天,而使用自动生成工具仅需2分钟,且生成的用例在规范性和完整性上更胜一筹。此外,在系统建设过程中,由于业务需求和系统迭代的不断变化,手动维护测试用例成本高昂。而在我们的自动化框架中,每次调整测试脚本后,都能通过自动生成工具同步更新最新的测试用例,从而显著降低了维护成本。
4.未来展望
我们团队的测试自动化方案已成功应用于邮储银行新一代信用卡核心系统的测试工作中,有效降低了测试成本,提升了测试效率,为项目质量的提升做出了显著贡献。该方案的实施效果得到了充分验证,未来将在邮储银行更多核心系统如资金清算系统、数字人民币核心系统中得到推广应用。同时,该方案也为同行和同类系统的测试自动化工作提供了有价值的参考。
未来,随着科技的日新月异,测试自动化已成为软件开发与质量保障不可或缺的一环,其发展趋势愈发朝向高效、智能和自动化。邮储银行将持续深化人工智能与机器学习的应用,借助机器学习的自我优化功能,实现对测试需求、数据及结果的智能化分析,从而提升测试的精准度与效率。此外,我们计划研发模块化的测试工具,增强工具的灵活性及可维护性,以应对复杂多变的测试需求,推动测试自动化向多元化和智能化迈进。我们的目标是以更高效的运作和更精准的测试结果,持续推动软件质量的提升与创新。