一种服务化的贷款还款计划测试系统和方法与流程

专利查询21天前  8



1.本发明涉及软件系统开发领域,具体而言,涉及一种服务化的贷款还款计划测试系统和方法。


背景技术:

2.贷款核心测试工作的重点一直是验证贷款产品的借据在生命周期各个阶段的分期期供本金、利息、罚息、复息、欠息等字段金额是否准确,这些数值直接影响后续的用户还款,核销等交易的账务是否准确。影响还款计划的因子有很多,导致每个字段的计算都较为繁琐费时。比如,宽限期长度及计息规则、是否计复息、是否计罚息、复息计息规则、放款日期、到期日期、还款方式、还款日期、逾期起始日、逾期利率、利率、计息规则等。
3.传统的测试方法是确认上述各个因子后,根据计算公式进行人工计算预期结果后与实际结果进行比对。然而,因输入因子多、计算结果字段多且各字段之间有联动影响、测试环境特有的批量跳跑等导致人工计算的成本越来越不可承担,无法满足越来越快的版本发布测试要求。
4.面对人工计算的繁琐,大部分银行尝试使用基于excel的公式来提高计算效率,但是仍然存在如下不足:(1)excel更新后分发不方便,往往多个版本共存而用户不自知;(2)基于excel公式,公式复杂难于阅读与维护,维护成本极高;(3)工具只能人工使用,无法被自动化脚本利用,投入产出比受限。


技术实现要素:

5.鉴于上述问题,本发明提供了一种服务化的贷款还款计划测试系统和方法,具备维护成本低、更新发布简单、可视化用户界面与程序服务接口一致的特点,可以显著提高测试预期结果计算效率,压缩测试执行周期,加快发布节奏。
6.为解决上述技术问题,本发明采用的技术方案是:一种服务化的贷款还款计划测试系统,包括django web服务框架,位于所述django web服务框架上层的web ui模块和http api模块,以及位于所述django web服务框架下层的还款计划生成器;所述web ui模块用于提供可视化界面ui,以供用户访问;所述http api模块用于提供对外api接口,以供自动化测试平台或其他代码平台调用;所述django web服务框架用于提供url映射、http协议支持和mtv分层开发支持;所述还款计划生成器包括views模块、贷款参数管理模块、还款计划模块和公共工具,所述views模块用于接收url映射请求,提供获取到的贷款请求参数,串联还款计划主流程;所述贷款参数管理模块用于存放贷款参数,并根据贷款参数进行贷款期供计划计算;所述还款计划模块用于计算贷款期供计划中多种字段的取值;所述公共工具用于提供贷款期供计划计算的通用工具。
7.作为优选方案,所述web ui模块包括static单元和forms单元,所述static单元用于定义ui静态部分,所述静态部分包括页面展示中静态的html,css脚本定义和js脚本,所述forms单元用于定义ui中的表单,所述表单包括贷款基本参数表单、核心批量执行参数表
单集和还款信息表单集。
8.作为优选方案,所述贷款参数包括开关类、日期类、宽限类、利率类、还款类和杂项类。
9.本发明还公开了一种服务化的贷款还款计划测试方法,包括如下步骤:接收用户贷款请求,利用url匹配判断所述贷款请求的来源,所述来源包括浏览器或程序;根据所述贷款请求的来源,获取相应贷款参数;根据所述贷款参数,利用通用工具进行贷款期供计划的计算;计算所述贷款期供计划中多种字段的取值,并对额度精度进行控制;将所述贷款供期计划返回至浏览器或程序。
10.作为优选方案,若所述贷款请求来源于浏览器,则调用loan_plan方法获取默认贷款参数或提交贷款参数;若所述贷款请求来源于程序,则调用loan_plan_cli方法,直接根据接口定义提交贷款参数。
11.作为优选方案,在所述利用通用工具进行贷款期供计划的计算之后,还包括根据有无主动还款修正所述贷款参数,并根据修正后的贷款参数计算贷款剩余期供计划。
12.作为优选方案,所述贷款期供计划包括首/尾期供、标准期供、部分还款结清子期供和提前还款后当前剩余期供。
13.作为优选方案,所述计算贷款期供计划中多种字段的取值,包括:判断还款方式,根据贷款参数计算借据状态,计算批量顺跑、批量跳跑天数,以及计算其他字段。
14.作为优选方案,当贷款供期计划返回至浏览器时,将贷款供期计划的字段转换为含html、js和css的网页文件,发送至浏览器解析后进行展示;当贷款供期计划返回至程序时,将贷款供期计划的字段转换为json串,发送至程序进行解析。
15.与现有技术相比,本发明的有益效果包括:基于django框架提供web服务接口,将整个系统功能服务化,集中部署、集中更新、集中发布;该系统实现之初参考现有excel表格工具的使用方式,使用方式与展示方式表格工具保持一致,几乎没有切换成本;程序通过http client调用接口,入参及结果数据通过json格式交互,集成该系统十分方便,可以方便的改造现有自动化用例;该系统支持计算跳跑、部分还款情况下字段值的计算,可以精确比对各种数值;该系统仅依据业界标准通用的贷款计息公式,与被测对象完全独立,保障了数据比对成功后的用例执行结果的可信度。本发明提供了一种便于发布且易维护的贷款还款计划测试系统,并提供了http api接口便于其他程序或平台的集成,扩展了系统使用场景。
附图说明
16.参照附图来说明本发明的公开内容。应当了解,附图仅仅用于说明目的,而并非意在对本发明的保护范围构成限制。在附图中,相同的附图标记用于指代相同的部件。其中:
17.图1为本发明实施例服务化的贷款还款计划测试系统的结构示意图;
18.图2为本发明实施例服务化的贷款还款计划测试方法的流程示意图;
19.图3为本发明实施例贷款期供计划的结构示意图。
具体实施方式
20.容易理解,根据本发明的技术方案,在不变更本发明实质精神下,本领域的一般技
术人员可以提出可相互替换的多种结构方式以及实现方式。因此,以下具体实施方式以及附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限定或限制。
21.对下文中出现的专业术语进行解释:
22.django web服务框架,是一个开放源代码的web应用框架,由python写成,采用了mtv的框架模式。
23.url,是统一资源定位符,是互联网上标准资源的地址。
24.get,为从指定的资源请求数据。
25.post,为向指定的资源提交要被处理的数据。
26.根据本发明的一实施方式结合图1示出。一种服务化的贷款还款计划测试系统,包括django web服务框架,位于django web服务框架上层的web ui模块和http api模块,以及位于django web服务框架下层的还款计划生成器。
27.web ui模块用于提供可视化界面ui,以供用户访问。该web ui模块包括包括static单元和forms单元。其中,static单元用于定义ui静态部分,静态部分包括页面展示中静态的html,css脚本定义和js脚本,接收用户请求或工具响应后页面的静态展示部分,如布局、样式。forms单元用于定义ui中的表单,表单包括贷款基本参数表单、核心批量执行参数表单集和还款信息表单集等。
28.http api模块用于提供对外api接口,以供自动化测试平台或其他代码平台调用;django web服务框架用于提供url映射、http协议支持和mtv分层开发支持。
29.上述还款计划生成器包括views模块、贷款参数管理模块、还款计划模块和公共工具。
30.views模块用于接收url映射请求,提供获取到的贷款请求参数,串联还款计划主流程,转换结果等功能。比如浏览器客户端过来的请求对应到loan_plan方法,程序客户端请求过来对应到loan_plan_cli方法。
31.贷款参数管理模块提供贷款参数管理功能,用于存放贷款参数,并根据贷款参数进行贷款期供计划计算。贷款参数包括开关类(宽限期计息开关、计复息开关、计罚息开关、复息计息开关等)、日期类(贷款起贷日期、到期日期、当前日期、逾期起始日等)、宽限类(宽限期、宽限期计息规则等)、利率类(正常年利率、逾期年利率等)、还款类(还款种类、提前还款类型、还款金额等)和杂项类(贷款金额、还款方式、期供还款日、顺跑起止信息等)。
32.还款计划模块用于计算贷款期供计划中多种字段的取值,包括期次、计息天数、起始日期、还款日期、计息天数、上期还款日期、应还本金、应还利息、本息合计、宽限期到期日、逾期本金、应计利息、计、应收欠息、应计罚息、计提利息、表外应计利息、表外欠息、表外应计罚息、表外罚息、表外计提利息、应计复息、应收复息字段。
33.公共工具用于提供贷款期供计划计算的通用工具,比如精度装饰器、全局枚举值等。
34.参见图2,本发明还公开了一种服务化的贷款还款计划测试方法,包括如下步骤:
35.s1,接收用户贷款请求,利用url匹配判断贷款请求的来源,来源包括浏览器或程序。
36.若贷款请求来源于浏览器,则调用loan_plan方法获取默认贷款参数或提交贷款
参数;若贷款请求来源于程序,则调用loan_plan_cli方法,直接根据接口定义提交贷款参数。
37.s2,根据贷款请求的来源,获取相应贷款参数;根据贷款参数,利用通用工具进行贷款期供计划的计算。
38.在利用通用工具进行贷款期供计划的计算之后,还包括根据有无主动还款修正贷款参数,并根据修正后的贷款参数计算贷款剩余期供计划。
39.s3,计算贷款期供计划中多种字段的取值,并对额度精度进行控制。计算贷款期供计划中多种字段的取值,包括:判断还款方式,根据贷款参数计算借据状态,计算批量顺跑、批量跳跑天数,以及计算其他字段。其中,借据状态包含正常、宽限期、逾期和非应计。贷款期供计算过程中精度都采用最高进度,避免精度损失,但是并不适合贷款实践,因此最终展现前要对进度进行控制,将展示进度控制到分。
40.批量跳跑:跳跑相对于顺跑而言,顺跑即按账务日期顺序逐天切换到对应的批点(比如结息日),跳跑则是不按顺序切换,比如直接从2月1日跳到2月10日,节省测试批量执行时间。
41.参见图3,上述贷款期供计划包括首/尾期供、标准期供、部分还款结清子期供和提前还款后当前剩余期供,则各贷款期供计划中多种字段的取值计算如下:
42.(1)首/尾期供:计息天数可能超过一个月,或者小于一个月,因此需要进行特殊处理。
43.对于整体期供超过一个月的计息,需要区分两种情况:当前时间介于[起始日期~起始日期+1个月):计息规则需要按整月00规则计算,天利率=年利率/月份/月天数。当前时间介于[起始日期+1个月~结息日):计息规则需要按零头10规则计算,天利率=年利率/360。
[0044]
对于整体期供小于一个月的计息,计息规则需要按零头10规则计算。
[0045]
(2)标准期供:即普通期供,无需特殊处理,根据标准计算公式计算即可。主要公式如下,以等额本息为例:
[0046]

标准期供本息合计=[本金*年利率*(1+年利率)*还款期数]/[(1+年利率)*还款期数-1];
[0047]

首期期供还款本金=每期还款金额-初始应还利息;
[0048]

末期期供还款本金=总贷款金额-已还本金;
[0049]

初始应还利息=00规则或10规则;
[0050]
整月(00规则):公式应计利息=剩余本金*正常利率/1200/当月天数*(当期结息日-上期还款日);
[0051]
零头(10规则):公式应计利息=剩余本金*正常利率/36000*(当期结息日-上期还款日);
[0052]

应还本金=每期还款金额-初始应还利息;
[0053]

应计利息=类似应还利息计算,“当期结息日”换成当前时间;
[0054]

应收欠息=还款日结息后到了逾期,应计利息转应收欠息;
[0055]

应计罚息区分宽限期计息与不计息;
[0056]
宽限期不计息:公式应计罚息=逾期本金*逾期利率/36000*逾期天数;
[0057]
宽限期计息:公式应计罚息=逾期本金*逾期利率/36000*逾期天数-逾期本金*正常利率/36000*宽限期;
[0058]

应收罚息=公式类似应计罚息计算,逾期天数是逾期开始到现在期供的计息天数之和;
[0059]

应计复息=(应收欠息+罚息)*逾期利率/360/100*逾期天数;注:逾期一期内,需考虑宽限期;
[0060]
应收复息=公式类似应计复息计算,使用结息日计算逾期天数。
[0061]
注:表外本息字段值本质上是表内本息结转,此处不再赘述。
[0062]
(3)部分还款结清子期供:结息日到期前用户提前还款产生的期供信息,需要做如下特殊处理:
[0063]
期供还款日期=提前还款日期;
[0064]
宽限期到期日=提前还款日期;
[0065]
上期还款日期=提前还款日期;
[0066]
计息天数=提前还款日期

期供起始日期;
[0067]
应还本金=提前还款本金;
[0068]
应计利息、计提利息固定为0;
[0069]
其余字段等同标准期供。
[0070]
(4)提前还款后当前剩余期供:上期还款日期=提前还款日期;计息天数=同期标准期供还款日期-提前还款日期;应还利息、应还本金、计提利息、每期应还本息合计=根据提前还款后的新贷款参数,重新根据标准期供公式计算;其余字段等同标准期供。
[0071]
提前还款贷款参数变更:提前还款后,还款计划需要依据新的贷款参数进行重新计算期供计划,更新逻辑如下:
[0072]
1、新的贷款额度=原期供本期剩余本金

本次提前还款本金额度;
[0073]
2、起贷日期=原期供计划当前期期供起始日期;
[0074]
3、期供总期数=根据新的起贷日期重新计算;
[0075]
4、等额本息标准本息合计=根据新的起贷日期、贷款额度重新计算;
[0076]
5、提前还款金额=0;
[0077]
6、期供期次=原来期供期数+新期供期供期数-1。
[0078]
s4,将贷款供期计划返回至浏览器或程序。当贷款供期计划返回至浏览器时,将贷款供期计划的字段转换为含html、js和css的网页文件,发送至浏览器解析后进行展示;当贷款供期计划返回至程序时,将贷款供期计划的字段转换为json串,发送至程序进行解析。
[0079]
下面对本发明的贷款还款计划测试系统的使用流程进行说明:
[0080]
1、普通用户界面ui接口
[0081]
普通用户可以使用任何一个浏览器使用该测试系统,在请求页面中,包括了决定还款计划的各项参数,其页面展示的为forms中定义的各自表单,用于提交贷款参数。在还款计划详情页面中,整个页面分成两个部分:请求参数回显部分与贷款期供计划字段部分。
[0082]
2、程序http api接口
[0083]
任何支持http协议的程序均可以通过http post消息与该系统进行交互,数据通过json形式进行传输。
[0084]
3、自动化平台集成样例
[0085]
自动化平台集成该系统样例,通过如下几步的修改,即可集成使用本系统。
[0086]
步骤1、收集贷款开户参数,无需改造直接从开户交易入参中获取,并预设批跑参数batchgaplist、还款参数repaylist为默认值备用,两个参数类型均为list。
[0087]
步骤2、收集批跑参数,改造核心批量关键字。本次批量执行后batchgaplist都在现有基础上增加本次批量值。比如执行两次批量后,形如:
[0088][0089]
步骤3、收集还款参数,无需改造直接引用还款交易入参,多次还款需要添加为列表。比如两次还款,则参数形如:
[0090][0091]
步骤4、提交准备好的参数,一次获取整个还款计划数据。工具反馈还款计划数据报文样例如下:
[0092]
[0093]
[0094][0095]
步骤5、正常触发交易后,结果比对时从上步中获取的工具数据中取出对应字段与实际字段比对,以决定测试结果是否通过。
[0096]
字段获取的原理都是通过关键字逻辑,将“get_from_tool”开头的字段,实际比对在响应报文json串中通过下标方法获取的相应字段。
[0097]
综上所述,本发明的有益效果包括:基于django框架提供web服务接口,将整个系统功能服务化,集中部署、集中更新、集中发布;该系统实现之初参考现有excel表格工具的使用方式,使用方式与展示方式表格工具保持一致,几乎没有切换成本;程序通过http client调用接口,入参及结果数据通过json格式交互,集成该系统十分方便,可以方便的改造现有自动化用例;该系统支持计算跳跑、部分还款情况下字段值的计算,可以精确比对各种数值,紧密贴合测试实践;该系统仅依据业界标准通用的贷款计息公式,与被测对象完全独立,保障了数据比对成功后的用例执行结果的可信度。本发明提供了一种便于发布且易维护的贷款还款计划测试系统,并提供了http api接口便于其他程序或平台的集成,扩展了系统使用场景。
[0098]
应理解,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0099]
本发明的技术范围不仅仅局限于上述说明中的内容,本领域技术人员可以在不脱离本发明技术思想的前提下,对上述实施例进行多种变形和修改,而这些变形和修改均应当属于本发明的保护范围内。

技术特征:
1.一种服务化的贷款还款计划测试系统,其特征在于,包括django web服务框架,位于所述django web服务框架上层的web ui模块和http api模块,以及位于所述django web服务框架下层的还款计划生成器;所述web ui模块用于提供可视化界面ui,以供用户访问;所述http api模块用于提供对外api接口,以供自动化测试平台或其他代码平台调用;所述django web服务框架用于提供url映射、http协议支持和mtv分层开发支持;所述还款计划生成器包括views模块、贷款参数管理模块、还款计划模块和公共工具,所述views模块用于接收url映射请求,提供获取到的贷款请求参数,串联还款计划主流程;所述贷款参数管理模块用于存放贷款参数,并根据贷款参数进行贷款期供计划计算;所述还款计划模块用于计算贷款期供计划中多种字段的取值;所述公共工具用于提供贷款期供计划计算的通用工具。2.根据权利要求1所述的服务化的贷款还款计划测试系统,其特征在于,所述web ui模块包括static单元和forms单元,所述static单元用于定义ui静态部分,所述静态部分包括页面展示中静态的html,css脚本定义和js脚本,所述forms单元用于定义ui中的表单,所述表单包括贷款基本参数表单、核心批量执行参数表单集和还款信息表单集。3.根据权利要求1所述的服务化的贷款还款计划测试系统,其特征在于,所述贷款参数包括开关类、日期类、宽限类、利率类、还款类和杂项类。4.一种服务化的贷款还款计划测试方法,其特征在于,包括如下步骤:接收用户贷款请求,利用url匹配判断所述贷款请求的来源,所述来源包括浏览器或程序;根据所述贷款请求的来源,获取相应贷款参数;根据所述贷款参数,利用通用工具进行贷款期供计划的计算;计算所述贷款期供计划中多种字段的取值,并对额度精度进行控制;将所述贷款供期计划返回至浏览器或程序。5.根据权利要求4所述的服务化的贷款还款计划测试方法,其特征在于,若所述贷款请求来源于浏览器,则调用loan_plan方法获取默认贷款参数或提交贷款参数;若所述贷款请求来源于程序,则调用loan_plan_cli方法,直接根据接口定义提交贷款参数。6.根据权利要求4所述的服务化的贷款还款计划测试方法,其特征在于,在所述利用通用工具进行贷款期供计划的计算之后,还包括根据有无主动还款修正所述贷款参数,并根据修正后的贷款参数计算贷款剩余期供计划。7.根据权利要求4所述的服务化的贷款还款计划测试方法,其特征在于,所述贷款期供计划包括首/尾期供、标准期供、部分还款结清子期供和提前还款后当前剩余期供。8.根据权利要求4所述的服务化的贷款还款计划测试方法,其特征在于,所述计算贷款期供计划中多种字段的取值,包括:判断还款方式,根据贷款参数计算借据状态,计算批量顺跑、批量跳跑天数,以及计算其他字段。9.根据权利要求4所述的服务化的贷款还款计划测试方法,其特征在于,当贷款供期计划返回至浏览器时,将贷款供期计划的字段转换为含html、js和css的网页文件,发送至浏
览器解析后进行展示;当贷款供期计划返回至程序时,将贷款供期计划的字段转换为json串,发送至程序进行解析。

技术总结
本发明提出了一种服务化的贷款还款计划测试系统和方法,该系统包括Django Web服务框架、WEB UI模块和HTTP API模块,以及还款计划生成器;所述WEB UI模块用于提供可视化界面UI,以供用户访问;所述HTTP API模块用于提供对外API接口;所述Django Web服务框架用于提供URL映射、HTTP协议支持和MTV分层开发支持;所述还款计划生成器包括Views模块、贷款参数管理模块、还款计划模块和公共工具。本发明提供了一种便于发布且易维护的贷款还款计划测试系统,并提供了HTTP API接口便于其他程序或平台的集成,扩展了系统使用场景。扩展了系统使用场景。扩展了系统使用场景。


技术研发人员:陈刚 曹宗凯 冯江勇 蔡宝列 彭申亮
受保护的技术使用者:江苏苏宁银行股份有限公司
技术研发日:2021.11.24
技术公布日:2022/3/7

最新回复(0)