System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库测试,尤其涉及一种资金管理系统多数据库测试方法、系统及存储介质。
技术介绍
1、资金管理系统作为一种tob的业务系统,需要适配企业内部各种各样的技术栈,其中就包括各种数据库,比如oracle、mysql、postgresql等等,随着客户的增多和国产数据库的兴起,需要测试的数据库种类也越来越多,工作量繁重。同时作为企业财务核心业务系统,涉及到与多个金融机构或第三方支付机构的交互,因此在测试过程中除了验证系统自身的业务逻辑正确性,还需要保证数据的安全性,避免因为某处缺陷导致资金损失。
2、传统方法一般通过多次的人工测试来对不同数据库进行验证,但是人工测试耗时长,投入产出比不高,严重影响项目进度。
3、相关技术中也会采用流量复制策略,通过将请求流量复制多份,来实现多数据库的测试,减少人工操作。但是流量复制技术的应用需要每个数据库单独部署一套服务,服务器资源会成倍地增长,并且由于复制的是完全的请求数据,还存在数据泄漏的风险。
4、中国专利《跨平台数据库管理方法、装置、计算机设备和存储介质》,公开号:cn108932309a,公开日:2018年06月15日,具体公开了接收终端发送的数据库管理请求;响应数据库管理请求,向终端返回管理页面;管理页面包括多个数据库标识和多个管理项目;接收终端基于管理页面返回的管理信息;管理信息包括选定的数据库标识,以及选定的数据库标识对应的管理项目;识别选定的数据库标识对应的数据库类型;根据数据库类型以及选定的数据库标识对应的管理项目,调用相应的管理组件,对
5、中国专利《数据库测试方法、装置、存储介质及数据库压测装置》,公开号:cn114936145a,公开日:2022年08月23日,具体公开了获取针对数据库的兼容性测试指令,基于所述兼容性测试指令获取所述数据库对应的测试配置信息,所述测试配置信息用于所述数据库执行并返回测试执行结果;基于所述数据库对应的端口标识将所述测试配置信息发送至所述数据库所属测试服务器,获取所述数据库经由所述测试服务器返回的所述测试配置信息对应的测试执行结果;基于所述测试执行结果,生成所述数据库对应的兼容性测试结果。该方案也是对单个数据库进行单独测试,并没有公开如何同步对多个服务器进行测试。
技术实现思路
1、本申请针对现有技术中存在对单个服务器进行单独测试效率低、对多个服务器采用流量复制技术存在数据泄露风险,提供一种资金管理系统多数据库测试方法、系统及存储介质,通过接收测试请求中的数据库标识,判断开启的线程数量,并利用过滤器或者拦截器对测试请求中的请求内容进行缓存,使得能够在后续处理过程中使用缓存的请求内容,避免出现数据只能读取一次的问题的发生,利用多线程携带数据库标识向资金管理系统中多个数据库并行验证,缩短测试周期,同时无需对应每个数据库单独部署一套服务,能够所有数据库兼容测试,减少服务器部署需求,且无需将请求复制多份分别进行不同数据库的测试,一个测试请求实现多个数据库的测试,保证了数据的安全性。
2、为实现上述技术目的,本申请提供的一种技术方案是,一种资金管理系统多数据库测试方法,包括如下步骤:s1:接收测试请求,获取测试请求中的数据库标识;s2:利用过滤器或拦截器缓存测试请求中的请求内容;s3:调用对应数据库标识数量的线程,采用多线程携带数据库标识向资金管理系统多数据库分别发送请求内容;s4:接收所有数据库的响应结果,聚合响应结果作为测试结果返回请求端。
3、进一步的,在所述s1之前执行:s0:预设资金管理系统数据库与数据库标识的映射关系,并设置预设数据库标识。
4、进一步的,所述s1还包括:接收http请求,读取http请求header获得测试请求中的数据库标识。
5、进一步的,所述s0还包括:以与预设数据库标识数量对应的线程创建java线程池。
6、进一步的,所述s3还包括:当每读取一个数据库标识,java线程池开启一个线程,采用多线程携带数据库标识向资金管理系统多数据库分别发送请求内容。
7、进一步的,所述s3还包括:当每读取一个数据库标识,java线程池开启一个线程;每个线程携带一个数据库标识,向与数据库标识对应的资金管理系统数据库发送对应的请求内容,利用submit方法获取返回的get方法;接收返回的get方法,当返回的get方法数量与读取的数据库标识数量相同时,判定测试结束,输出每个数据库的响应结果。
8、进一步的,所述s4还包括:接收所有数据库的响应结果,利用与逻辑将请求结果进行合并为最终请求结果,将失败原因合并为列表,聚合最终请求结果以及失败原因作为测试结果返回请求端。
9、进一步的,所述采用多线程携带数据库标识向资金管理系统多数据库分别发送请求内容包括:
10、判断数据库标识传递为内部传递还是跨服务传递;若为内部传递,则当每个线程结束时由对应的子线程继承数据库标识持续传递;若为跨服务传递,则利用跨服务调用接口进行数据库标识的传递。
11、进一步的,所述采用多线程携带数据库标识向资金管理系统多数据库分别发送请求内容还包括:调用资金管理系统数据库与数据库标识的映射关系,根据携带的数据库标识以及映射关系判断请求内容发送的资金管理系统数据库,并对应发送请求内容。
12、本申请提供的另一种技术方案是,一种资金管理系统多数据库测试系统,用于实现如上述的方法,包括:网关模块,用于接收测试请求,获取数据库标识创建多线程传递;参数传递模块,用于实现数据库标识在传递过程中的内部传递以及跨服务传递;数据库切换模块,用于根据数据库标识连接对应的数据库。
13、本申请提供的又一种技术方案是,用于存储计算机程序或指令,当计算机程序或指令被处理设备执行时,实现上述的一种资金管理系统多数据库测试方法。计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘)等。
14、本申请的有益效果:通过接收测试请求中的数据库标识,判断开启的线程数量,并利用过滤器或者拦截器对测试请求中的请求内容进行缓存,使得能够在后续处理过程中使用缓存的请求内容,避免出现数据只能读取一次的问题的发生,利用多线程携带数据库标识向资金管理系统中多个数据库并行验证,缩短测试周期,同时无需对应每个数据库单独部署一套服务,能够所有数据库兼容测试,减少服务器部署需求,且无需将请求复制多份分别进行不同数据库的测试,一个测试请求实现多个数据库的测试,保证了数据的安全性。
本文档来自技高网...【技术保护点】
1.一种资金管理系统多数据库测试方法,其特征在于:包括如下步骤:
2.如权利要求1所述的一种资金管理系统多数据库测试方法,其特征在于:
3.如权利要求2所述的一种资金管理系统多数据库测试方法,其特征在于:
4.如权利要求2所述的一种资金管理系统多数据库测试方法,其特征在于:
5.如权利要求4所述的一种资金管理系统多数据库测试方法,其特征在于:
6.如权利要求4所述的一种资金管理系统多数据库测试方法,其特征在于:
7.如权利要求1所述的一种资金管理系统多数据库测试方法,其特征在于:
8.如权利要求5所述的一种资金管理系统多数据库测试方法,其特征在于:
9.如权利要求8所述的一种资金管理系统多数据库测试方法,其特征在于:
10.一种资金管理系统多数据库测试系统,用于实现如权利要求1至权利要求9任意一项所述的方法,其特征在于:包括:
【技术特征摘要】
1.一种资金管理系统多数据库测试方法,其特征在于:包括如下步骤:
2.如权利要求1所述的一种资金管理系统多数据库测试方法,其特征在于:
3.如权利要求2所述的一种资金管理系统多数据库测试方法,其特征在于:
4.如权利要求2所述的一种资金管理系统多数据库测试方法,其特征在于:
5.如权利要求4所述的一种资金管理系统多数据库测试方法,其特征在于:
6.如权利要求4...
【专利技术属性】
技术研发人员:徐天岳,黄卫敏,曹奇亮,
申请(专利权)人:浙江保融科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。