首页> 中国专利> 基于金融核心交易场景的数据库测试数据生成方法及装置

基于金融核心交易场景的数据库测试数据生成方法及装置

摘要

本发明提供一种基于金融核心交易场景的数据库测试数据生成方法及装置,可用于金融领域或其他领域。方法包括:至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。本发明能够提高生成数据的准确性,进而提高基于生成数据的数据库测试的精准度。

著录项

  • 公开/公告号CN113010443A

    专利类型发明专利

  • 公开/公告日2021-06-22

    原文格式PDF

  • 申请/专利权人 中国工商银行股份有限公司;

    申请/专利号CN202110493712.1

  • 发明设计人 夏康;林承军;彭卫华;刘静;

    申请日2021-05-07

  • 分类号G06F11/36(20060101);G06F16/22(20190101);G06F16/242(20190101);G06Q40/04(20120101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人任默闻;王涛

  • 地址 100140 北京市西城区复兴门内大街55号

  • 入库时间 2023-06-19 11:32:36

说明书

技术领域

本发明涉及数据库测试技术领域,具体涉及一种基于金融核心交易场景的数据库测试数据生成方法及装置。

背景技术

在数据库基准测试领域,需要模拟业务负载对数据库中存储的数据进行交易处理,以评估数据库产品能够支撑的性能和容量。例如,需要模拟生成与生产环境同等量级的数据集,用于应用系统的性能压力测试和模拟投产测试。需要生成满足一定数量和质量条件的数据集,用于数据库产品的功能验证和基准性能测试。

现有的数据库中存储的数据一般采用随机造数的方式,常用的数据库基准测试工具如Sysbench、BanchmarkSQL等在测试数据生成阶段都采用该随机造数的方式。

但是,通过随机造数的方式得到的数据,分布完全随机,无法体现数据之间的关联关系,也无法体现金融账户数据的特点。比如金融系统数据要求账户余额表、账户明细表、业务登记表等不同数据表中同一账户的各种交易的进出金额要满足对账平衡关系,不同数据表中同一交易的时间戳和业务编号保持一致。

发明内容

针对现有技术中的问题,本发明提供一种基于金融核心交易场景的数据库测试数据生成方法及装置,具体包括以下技术方案:

第一方面,本发明提供一种基于金融核心交易场景的数据库测试数据生成方法,包括:

至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;

至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;

确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。

其中,所述至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中,包括:

确定所述账户开立交易处理的交易日期以及基于预设的序号表生成账户对应的账号;

从交易渠道的全局唯一ID服务器获取本次账户开立交易处理对应的业务唯一编号;

获取每个线程对应的执行柜员编号和执行机构编号;

基于所述账号将本次账户开立交易处理的金额、币种、所述交易日期、业务唯一编号、执行柜员编号和执行机构编号存储至账户信息表、账户余额表、账户序号表、存款协议表中;

其中,所述初始开户信息包含:账号、金额、币种、交易日期、业务唯一编号、执行柜员编号和执行机构编号。

其中,在获取每个线程对应的执行柜员编号和执行机构编号之后,还包括:

对所述初始开户信息进行核查处理;在核查处理通过后,基于所述账号将本次账户开立交易处理的金额、币种、所述交易日期、业务唯一编号、执行柜员编号和执行机构编号存储至账户信息表、账户余额表、账户序号表、存款协议表中。

其中,所述对所述初始开户信息进行核查处理,包括:

对所述执行柜员编号对应的柜员、所述执行机构编号对应的机构是否存在进行核查;

对所述币种是否支持进行核查;

对所述账户开立交易处理是否业务防重进行核查。

其中,所述至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中,包括:

确定所述账户存款交易处理的交易日期并从交易渠道的全局唯一ID服务器获取本次账户开立交易处理对应的业务唯一编号;

获取每个线程对应的执行柜员编号、执行机构编号、账户存款交易的业务信息;

基于所述账号将本次账户存款交易处理的交易日期、业务唯一编号柜员编号、执行机构编号、账户存款交易的业务信息存储至账户余额表、账户明细表中并登记账户计息明细表;

其中,所述业务信息包含业务发生账号、业务发生币种和业务处理金额。

第二方面,本发明提供一种基于金融核心交易场景的数据库测试数据生成装置,包括:

账户开立模块,用于至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;

账户交易模块,用于至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;

测试数据模块,用于确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。

其中,所述账户开立模块包括:

第一确定单元,用于确定所述账户开立交易处理的交易日期以及基于预设的序号表生成账户对应的账号;

采集单元,用于从交易渠道的全局唯一ID服务器获取本次账户开立交易处理对应的业务唯一编号;

第一获取单元,用于获取每个线程对应的执行柜员编号和执行机构编号;

第一存储单元,用于基于所述账号将本次账户开立交易处理的金额、币种、所述交易日期、业务唯一编号、执行柜员编号和执行机构编号存储至账户信息表、账户余额表、账户序号表、存款协议表中;

其中,所述初始开户信息包含:账号、金额、币种、交易日期、业务唯一编号、执行柜员编号和执行机构编号。

其中,所述账户交易模块包括:

第二确定单元,用于确定所述账户存款交易处理的交易日期并从交易渠道的全局唯一ID服务器获取本次账户开立交易处理对应的业务唯一编号;

第二获取单元,用于获取每个线程对应的执行柜员编号、执行机构编号、账户存款交易的业务信息;

第二存储单元,用于基于所述账号将本次账户存款交易处理的交易日期、业务唯一编号柜员编号、执行机构编号、账户存款交易的业务信息存储至账户余额表、账户明细表中并登记账户计息明细表;

其中,所述业务信息包含业务发生账号、业务发生币种和业务处理金额。

第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的基于金融核心交易场景的数据库测试数据生成方法的步骤。

第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的基于金融核心交易场景的数据库测试数据生成方法的步骤。

由上述技术方案可知,本发明提供一种基于金融核心交易场景的数据库测试数据生成方法及装置,通过至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。能够满足金融数据对账平衡等关联性要求,同一账户、同一交易在不同数据表中保存的金额、编号、日期等信息能够保持一致性,生成的数据在数据分布、数据关联性等方面更符合金融数据的特征,提高生成数据的准确性,进而提高基于生成数据的数据库测试的精准度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中的基于金融核心交易场景的数据库测试数据生成方法的流程示意图。

图2为本发明实施例中的基于金融核心交易场景的数据库测试数据生成方法中步骤S101的流程示意图。

图3为本发明实施例中的基于金融核心交易场景的数据库测试数据生成方法中步骤S102的流程示意图。

图4为本发明实施例中的基于金融核心交易场景的数据库测试数据生成装置的结构示意图。

图5为本发明实施例中的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种基于金融核心交易场景的数据库测试数据生成方法的实施例,参见图1,所述基于金融核心交易场景的数据库测试数据生成方法具体包含有如下内容:

S101:至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;

S102:至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;

S103:确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。

在本实施例中,配置初始参数,初始参数包含并发的线程数、账户总数量、柜员数量和服务机构数量。配置初始参数之后,初始化相关系统表,包含:序号表、机构表、柜员表、币种表。

开启线程数个线程(至少两个线程)模拟交易柜员并发地通过“账户开立”交易生成账户总数量个账户的初始开户信息,该过程向账户信息表、账户序号表、存款协议表等相关数据表中插入交易数据。

开启线程数个线程模拟交易柜员并发地通过“账户存款”交易生成账户总数量个账户的初始金额信息,该过程向账户余额表、账户明细表等相关数据表中插入和更新交易数据。

至此,在相关各数据表中已生成所需的数据。

进一步地,为表达方便,本实施例中用如下变量名来表示批量交易的参数:

至此,在相关各数据表中已生成所需的数据。

初始化相关系统表,包含:

(1)初始化序号表:

序号表用于分配和继续当前系统使用的各种序号。执行如下SQL语句插入初始化值:

其中,序号类型取值1表示账号序号;函数get_system_date()表示取系统当前时间戳。

(2)初始化机构表:

对于取值从1到i_institution_num的机构编号i,循环执行如下SQL语句:

(3)初始化柜员表:

对于取值从0到i_tell_num的柜员编号i,循环执行如下SQL语句:

其中:/表示浮点除,//表示整除向下取整,math.ceil()函数表示向上取整。这样为每个柜员指定一个所属机构,即将i_tell_num个柜员分配到i_institution_num个服务机构。

(4)初始化币种表:

对于系统支持的每个币种,将相关信息插入币种表中。示例SQL如下:

由上述技术方案可知,本发明提供一种基于金融核心交易场景的数据库测试数据生成方法,通过至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。能够满足金融数据对账平衡等关联性要求,同一账户、同一交易在不同数据表中保存的金额、编号、日期等信息能够保持一致性,生成的数据在数据分布、数据关联性等方面更符合金融数据的特征,提高生成数据的准确性,进而提高基于生成数据的数据库测试的精准度。

在本发明一实施例中,参见图2,提供上述实例中步骤S101的一种具体实现方式,包括如下步骤:

S1011:确定所述账户开立交易处理的交易日期以及基于预设的序号表生成账户对应的账号;

在本步骤中,获取交易系统时间为账户开立交易处理的交易日期v_workdate。并从交易系统的序号表生成账户对应的账号。如下SQL语句所示:

需要说明的是,执行一次UPDATE语句系统序号表中的序号可以跳增,为避免交易系统序号表成为热点,一个线程可一次取多个序号(如上示例SQL中一次取100个号),在线程内按需分配使用,若“账户开立”交易回滚,交易系统序号表中已取用的序号直接丢弃而无需回滚。

S1012从交易渠道的全局唯一ID服务器获取本次账户开立交易处理对应的业务唯一编号;

在本步骤中,从交易渠道的全局唯一ID服务器获取业务唯一编号v_seq。

S1013:获取每个线程对应的执行柜员编号和执行机构编号;

在本步骤中,获取每个线程在账户开立处理中的执行柜员编号v_teller、执行机构编号v_institution。

其中,每个线程代表一个执行交易的柜员,对应有一个柜员编号和所属机构编号,设定为该交易的执行柜员编号和执行机构编号。

S1014:基于所述账号将本次账户开立交易处理的金额、币种、所述交易日期、业务唯一编号、执行柜员编号和执行机构编号存储至账户信息表、账户余额表、账户序号表、存款协议表中;

其中,所述初始开户信息包含:账号、金额、币种、交易日期、业务唯一编号、执行柜员编号和执行机构编号。

可以理解的是,获取账户币种v_currency=1。客户要求开立的账户币种,可以是交易系统支持的币种(币种表)中任意一种(随机)。

进一步的,在获取每个线程对应的执行柜员编号和执行机构编号之后还包括:

对所述初始开户信息进行核查处理;在核查处理通过后,基于所述账号将本次账户开立交易处理的金额、币种、所述交易日期、业务唯一编号、执行柜员编号和执行机构编号存储至账户信息表、账户余额表、账户序号表、存款协议表中。

其中,对所述初始开户信息进行核查处理,包括:

对所述执行柜员编号对应的柜员、所述执行机构编号对应的机构是否存在进行核查;

对所述币种是否支持进行核查;

对所述账户开立交易处理是否业务防重进行核查。

在本实施例中,

检查机构是否存在。示例SQL如下:

如果记录不存在则报错。

检查柜员是否存在。示例SQL如下:

如果记录不存在则报错。

检查币种是否支持。示例SQL如下:

如果记录不存在则报错。

业务防重控制。示例SQL如下:

如果记录已存在,则报错提示:业务重复发起。

取用一个账号v_account。账号防重控制。示例SQL如下:

如果记录存在,则报错提示账号已使用。

基于所述账号将本次账户开立交易处理的金额、币种、所述交易日期、业务唯一编号、执行柜员编号和执行机构编号存储至账户信息表、账户余额表、账户序号表、存款协议表中,包括:

账户信息表新增一条记录。示例SQL如下:

其中:注销日期用特殊值'1900-01-01'表示赋值为空,即未注销。

账户余额表中插入一条记录。示例SQL如下:

账户开立交易中用户的初始金额设置为0。

存款协议表中插入一条记录。示例SQL如下:

可以理解的是,结息日期就是计息开始日,开户交易中最后结息日期赋交易当天。利率取值将真实利率乘上一个10的倍数(如上SQL示例中乘以100000000),通过该处理规避计算机浮点数处理造成的误差。

账户序号表中新增相关记录。示例SQL如下:

在业务登记簿表中登记这笔交易。示例SQL如下:

在本发明一实施例中,参见图3,提供上述实例中步骤S102的一种具体实现方式,包括如下步骤:

S1021:确定所述账户存款交易处理的交易日期并从交易渠道的全局唯一ID服务器获取本次账户开立交易处理对应的业务唯一编号;

在本步骤中,获取交易系统时间为账户开立交易处理的交易日期v_workdate。从交易渠道的全局唯一ID服务器获取业务唯一编号v_seq。

S1022:获取每个线程对应的执行柜员编号、执行机构编号、账户存款交易的业务信息;

在本步骤中,获取每个线程在账户开立处理中的执行柜员编号v_teller、执行机构编号v_institution。

其中,每个线程代表一个执行交易的柜员,对应有一个柜员编号和所属机构编号,设定为该交易的执行柜员编号和执行机构编号。其中,所述业务信息包含业务发生账号v_account、业务发生币种v_currency和业务处理金额v_amount。

需要说明的是,真实场景中特别是线上交易渠道,从金融机构视角,下一个到来客户的账号ID、业务币种、业务金额可以认为是随机的,因此这里v_account、v_currency、v_amount可采用值域范围内的随机生成值。与现有技术方案如Sysbench、BanchmarkSQL等工具根据数据类型确定一个随机值可能取值范围不同,本发明中业务发生账号的值域为已开立账号的集合,业务发生币种的值域为币种表中所支持币种的集合,业务处理金额的值域可根据生成数据的需要进行设置,如[1,10000000000]表示0.01元到1亿元。

进一步地,步骤S1022之后还包括:

检查机构是否存在。示例SQL如下:

如果记录不存在则报错。

检查柜员是否存在。示例SQL如下:

如果记录不存在则报错。

检查币种是否支持。示例SQL如下:

如果记录不存在则报错。

业务防重控制。示例SQL如下:

如果记录已存在,则报错提示:业务重复发起。

S1023:基于所述账号将本次账户存款交易处理的交易日期、业务唯一编号柜员编号、执行机构编号、账户存款交易的业务信息存储至账户余额表、账户明细表中并登记账户计息明细表;

具体包括:

查询账户信息表。示例SQL如下:

如果账户不存在,则报错提示账户不存在。

如果账户存在,但账户状态字段显示状态不正常,则报错提示账户状态不正常。

查询账户余额表。示例SQL如下:

如果记录不存在,则报错。

如果记录存在,则获取账户余额赋值给v_balance。

查询账户明细序号v_seq_account。示例SQL如下:

将查询结果赋值给账户明细序号v_seq_account。

查询计息明细序号v_seq_interest_accrual:

将查询结果赋值给计息明细序号v_seq_interest_accrual。

登记账户计息明细表:

如果账户余额表的最后交易日field5不等于当前交易日期v_workdate,则登记一笔计息明细。示例SQL如下:

需要说明的是:计息明细表只需登记一笔。如果账户余额表的最后交易日field5等于当前交易日期v_workdate,说明本日已变更过余额,无需再插入或更新计息明细表。

更新账户余额:

设上期余额v_balance_old=v_balance,当前余额v_balance=v_balance+v_amount。

如果账户余额表的最后交易日FIELD5不等于当前交易日期v_workdate,则需要将当前余额更新到上期余额字段。

如果账户余额表的最后交易日FIELD5等于当前交易日期v_workdate,则上期余额不变;

将当前余额更新为当前余额加上业务处理金额:

插入账户明细表。示例SQL如下:

业务登记簿表中插入一条记录。示例SQL如下:

需要说明的是:存款人是贷方,借贷双方币种金额必须一致。

在本实施例中提供了上述实施例中的账户信息表、账户余额表、账户存款协议表、机构表、柜员表和币种表的具体格式:

账户信息表:

(1)字段定义:

(2)索引定义:

(3)表说明:

FIELD4-开户时需预留一个账户密码(可选择在开户环节设置,也可在账户启用前单独申请设置),该密码为后续购买票据等凭据时使用,作为核验客户身份的辅助手段,更好地保证客户资金安全。

账户余额表:

(1)字段定义:

(2)索引定义:

(3)表说明:

账户余额表无需时间戳字段。

账户存款协议表:

(1)字段定义:

(2)索引定义:

(3)表说明:

注意基准利率的类型为INT。赋值为实际利率*108,处理金额较小的情况,避免浮点运算损失精度。

机构表:

(1)字段定义:

(2)索引定义:

柜员表:

(1)字段定义:

(2)索引定义:

币种表:

(1)字段定义:

(2)索引定义:

需要说明的是,所有表都必须定义主键。实际应用中可以采用数据模型中的唯一索引作为主键,也可以增加一个无业务意义的ROWID列作为主键。

所有字段都需定义NOT NULL属性,可采用正常业务值域外的特殊值表示空值。

从上述描述可知,本实施例基于真实金融账务的交易系统,以银行账户开立、存款的金融核心交易场景为基础,通过“账户开立”、“账户存款”的交易处理流程生成的数据满足金融数据对账平衡等关联性要求,同一账户、同一交易在不同数据表中保存的金额、编号、日期等信息能够保持一致性,生成的数据在数据分布、数据关联性等方面更符合金融数据的特征。

本发明实施例提供一种能够实现所述基于金融核心交易场景的数据库测试数据生成方法中全部内容的基于金融核心交易场景的数据库测试数据生成装置的具体实施方式,参见图4,所述基于金融核心交易场景的数据库测试数据生成装置具体包括如下内容:

账户开立模块10,用于至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;

账户交易模块20,用于至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;

测试数据模块30,用于确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。

其中,所述账户开立模块包括:

第一确定单元,用于确定所述账户开立交易处理的交易日期以及基于预设的序号表生成账户对应的账号;

采集单元,用于从交易渠道的全局唯一ID服务器获取本次账户开立交易处理对应的业务唯一编号;

第一获取单元,用于获取每个线程对应的执行柜员编号和执行机构编号;

第一存储单元,用于基于所述账号将本次账户开立交易处理的金额、币种、所述交易日期、业务唯一编号、执行柜员编号和执行机构编号存储至账户信息表、账户余额表、账户序号表、存款协议表中;

其中,所述初始开户信息包含:账号、金额、币种、交易日期、业务唯一编号、执行柜员编号和执行机构编号。

其中,所述账户交易模块包括:

第二确定单元,用于确定所述账户存款交易处理的交易日期并从交易渠道的全局唯一ID服务器获取本次账户开立交易处理对应的业务唯一编号;

第二获取单元,用于获取每个线程对应的执行柜员编号、执行机构编号、账户存款交易的业务信息;

第二存储单元,用于基于所述账号将本次账户存款交易处理的交易日期、业务唯一编号柜员编号、执行机构编号、账户存款交易的业务信息存储至账户余额表、账户明细表中并登记账户计息明细表;

其中,所述业务信息包含业务发生账号、业务发生币种和业务处理金额。

由上述技术方案可知,本发明提供一种基于金融核心交易场景的数据库测试数据生成装置,通过至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。能够满足金融数据对账平衡等关联性要求,同一账户、同一交易在不同数据表中保存的金额、编号、日期等信息能够保持一致性,生成的数据在数据分布、数据关联性等方面更符合金融数据的特征,提高生成数据的准确性,进而提高基于生成数据的数据库测试的精准度。

本申请提供一种用于实现所述基于金融核心交易场景的数据库测试数据生成方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:

处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述基于金融核心交易场景的数据库测试数据生成方法的实施例及用于实现所述基于金融核心交易场景的数据库测试数据生成装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。

图5为本申请实施例的电子设备9600的系统构成的示意框图。如图5所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图5是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。

一实施例中,基于金融核心交易场景的数据库测试数据生成功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:

至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。

从上述描述可知,本申请的实施例提供的电子设备,通过至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。能够满足金融数据对账平衡等关联性要求,同一账户、同一交易在不同数据表中保存的金额、编号、日期等信息能够保持一致性,生成的数据在数据分布、数据关联性等方面更符合金融数据的特征,提高生成数据的准确性,进而提高基于生成数据的数据库测试的精准度。

在另一个实施方式中,基于金融核心交易场景的数据库测试数据生成装置可以与中央处理器9100分开配置,例如可以将基于金融核心交易场景的数据库测试数据生成配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现基于金融核心交易场景的数据库测试数据生成功能。

如图5所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图5中所示的所有部件;此外,电子设备9600还可以包括图5中没有示出的部件,可以参考现有技术。

如图5所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。

其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。

输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。

该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。

存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。

通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。

基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。

本发明的实施例还提供能够实现上述实施例中的基于金融核心交易场景的数据库测试数据生成方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的基于金融核心交易场景的数据库测试数据生成方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。

从上述描述可知,本发明实施例提供的计算机可读存储介质,通过至少两个线程中每个线程通过账户开立交易处理得到多个账户;将每个账户的初始开户信息存储至各自对应的账户信息表、账户余额表、账户序号表、存款协议表中;至少两个线程中每个线程对多个账户中至少一个账户进行账户存款交易处理,将每次账户存款交易处理的金额信息存储至该账户存款交易处理的账户对应的账户余额表、账户明细表中;确定所有账户的账户信息表、账户序号表、存款协议表、账户余额表和账户明细表中的数据为批量交易场景数据库的测试数据。能够满足金融数据对账平衡等关联性要求,同一账户、同一交易在不同数据表中保存的金额、编号、日期等信息能够保持一致性,生成的数据在数据分布、数据关联性等方面更符合金融数据的特征,提高生成数据的准确性,进而提高基于生成数据的数据库测试的精准度。

虽然本发明提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

本领域技术人员应明白,本说明书的实施例可提供为方法、装置(系统)或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号