本发明涉及金融支付服务领域,更具体地说,它涉及一种基于js mock的支付通道自动化测试方法、系统及装置。
背景技术:
1、在金融支付通道测试过程中,测试团队经常面临一系列挑战,如:
2、无法控制通道方的返回,返回的数据不满足要求;
3、通道方配合力度不够,异常场景难以实现,影响测试进度和质量;
4、通道方测试环境下线,银行后续接入新商户到该通道时无法测试;
5、通道方不提供测试环境,对接通道方生产环境测试时会影响银行生产上的账务问题,且会对真实的卡造成风险。
6、诸多因素阻碍测试进度和降低测试质量,异常场景测试高度依赖通道方配合,让测试很被动,如通道签约失败或未知、通道支付超时、通道查证失败或超时、通知超时,若通道方不积极配合进而会导致测试覆盖率偏低,系统带着隐患上线,若没有通道mock只有一小部分测试用例可实现自动化,自动化用例整体上过于简单、僵硬,覆盖率低,对于提高自动化用例的覆盖度杯水车薪,达不到预期效果,在高效率、快节奏的版本迭代周期中测试很难生存。
技术实现思路
1、本发明的目的是提供一种基于js mock的支付通道自动化测试方法、系统及装置,能够提高自动化用例覆盖度,能适应高效率、快节奏的版本迭代周期。
2、本发明的上述技术目的是通过以下技术方案得以实现的:一种基于js mock的支付通道自动化测试方法,包括如下步骤:
3、s1、为支付通道配置通道模板,所述通道模板包括报文模板和关键字模板;
4、s2、运行自动化测试用例,组装支付请求报文,调用支付系统,发起通道请求;
5、s3、响应于通道请求,解析支付请求报文,获取通道名称、通道交易类型以及支付请求关键字;
6、s4、根据通道名称和通道交易类型,匹配通道模板;
7、若支付请求关键字匹配到对应的关键字模板,则获得对应的应答关键字,通过对应的报文模板对应答关键字进行重构,得到应答报文;
8、若支付请求关键字未匹配到关键字模板,则返回通过初始化通道报文模板生成的应答报文;
9、s5、将应答报文发送至支付系统,并响应于支付系统发出的记账请求,根据应答报文进行核心记账,并模拟记账结果。
10、作为本发明的一种优选技术方案,s2中,支付系统发起通道请求时,对支付请求报文进行加密;
11、s3中,解析支付请求报文前,对支付请求报文进行解密;
12、s4中,生成应答报文后,对应答报文进行加密;
13、s5中,支付系统收到应答报文时,对应答报文进行解密。
14、一种基于js mock的支付通道自动化测试系统,包括:
15、配置管理模块,用于为支付通道配置通道模板,所述通道模板包括报文模板和关键字模板;
16、测试端工具,用于运行自动化测试用例,组装支付请求报文,调用支付系统,发起通道请求;
17、通道mock服务模块,用于响应通道请求,解析支付请求报文,获取通道名称、通道交易类型以及支付请求关键字;根据通道名称和通道交易类型,匹配通道模板;若支付请求关键字匹配到对应的关键字模板,则获得对应的应答关键字,通过对应的报文模板对应答关键字进行重构,得到应答报文;若支付请求关键字未从匹配到关键字模板,则返回通过初始化通道报文模板生成应答报文;还用于将应答报文发往支付系统;
18、核心mock服务模块,用于响应于支付系统发出的记账请求,根据应答报文进行核心记账,并模拟记账结果。
19、作为本发明的一种优选技术方案,所述核心mock服务模块中,记账结果若为成功,则直接进行核心记账;若记账结果为失败,且有补偿机制则进行补记账操作,否则作为代扣失败处理;若记账结果为超时,则触发查证操作。
20、作为本发明的一种优选技术方案,所述报文模板为以通道名称和通道交易类型命名的初始化通道报文模板,所述关键字模板包括对应的请求关键字和应答关键字。
21、作为本发明的一种优选技术方案,所述通道mock服务模块设置有动态mock接口,所述动态mock接口用于实时动态修改关键字模板中的关键字赋值,获取预期结果。
22、作为本发明的一种优选技术方案,所述支付系统预先上传支付公钥到所述通道mock服务模块,所述通道mock服务模块预先上传通道公钥至所述支付系统;
23、在发起通道请求时,支付系统使用支付私钥对支付请求报文加密后,发至所述通道mock服务模块;
24、所述通道mock服务模块在处理所述支付系统发出的通道请求时,通过支付公钥对支付请求报文进行解密,获得通道请求内容;
25、所述通道mock服务模块在生成应答报文后,使用通道私钥对应答报文加密后再发回支付系统;
26、所述支付系统在接收应答报文时,通过通道公钥对应答报文进行解密,获得应答报文内容。
27、一种基于js mock的支付通道自动化测试装置,包括:处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
28、综上所述,本发明具有以下有益效果:能够实现全面的测试用例覆盖,确保每次代码变更都能经过严格验证,提高测试效率,快速响应版本迭代。具有更高的灵活性和可扩展性,能够适应自定义的调度方法和内部rpc框架,当需要一些非标准能力时,外部工具往往难以快速满足实际的需求,甚至可能无法提供所需的功能。而本发明采用的设计方案则具有强大的扩展性和可阅读性,即后台配置方便,请求关键字和应答关键字相互对应方便读取配置,并与核心mock服务模块集成,在模拟记账异常时触发查证回调,形成业务逻辑闭环,能够灵活应对各种异常和非标准场景;解决了通道环境难模拟和高依赖带来的各种风险问题,解决了支付通道难以实现自动化的壁垒。不仅可以支持研发、联调、测试整个项目活动,也可以通过提高自动化用例覆盖度,能适应高效率、快节奏的版本迭代周期。
1. 一种基于js mock的支付通道自动化测试方法,其特征是:包括如下步骤:
2. 根据权利要求1所述的一种基于js mock的支付通道自动化测试方法,其特征是:
3.一种基于js mock的支付通道自动化测试系统,其特征是:包括:
4. 根据权利要求3所述的一种基于js mock的支付通道自动化测试系统,其特征是:所述核心mock服务模块中,记账结果若为成功,则直接进行核心记账;若记账结果为失败,且有补偿机制则进行补记账操作,否则作为代扣失败处理;若记账结果为超时,则触发查证操作。
5. 根据权利要求4所述的一种基于js mock的支付通道自动化测试系统,其特征是:所述报文模板为以通道名称和通道交易类型命名的初始化通道报文模板,所述关键字模板包括对应的请求关键字和应答关键字。
6. 根据权利要求5所述的一种基于js mock的支付通道自动化测试系统,其特征是:所述通道mock服务模块设置有动态mock接口,所述动态mock接口用于实时动态修改关键字模板中的关键字赋值,获取预期结果。
7. 根据权利要求6所述的一种基于js mock的支付通道自动化测试系统,其特征是:所述支付系统预先上传支付公钥到所述通道mock服务模块,所述通道mock服务模块预先上传通道公钥至所述支付系统;
8.一种基于js mock的支付通道自动化测试装置,其特征是:包括:处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-2中任一项所述的方法。