一种用于多库多表造测试数据的装置及方法与流程

文档序号:29860509发布日期:2022-04-30 10:51阅读:172来源:国知局
一种用于多库多表造测试数据的装置及方法与流程

1.本发明属于数据库测试技术领域,具体涉及一种用于多库多表造测试数据的装置及方法。


背景技术:

2.数据库是一个长期存储在计算机内的、有组织、可共享、统一管理的大量数据的集合,本质上是用于存放数据的仓库。对于建立的数据库,需要进行测试,数据库测试就是依据数据库设计规范对软件系统的数据库结构、数据表及其之间的数据调用关系进行的测试。数据库的测试内容主要包括:数据库连接测试;数据表增加满;数据表删除空;删除空表中的记录;数据库的健壮性、容错性和恢复能力测试;数据库的安全测试;数据库的容量测试;数据库对象的测试,包括定义的存储过程、视图、触发器、约束、规则等,都要进行测试以保证功能完好;数据库接口测试,包括数据项的修改操作;数据项的增加操作;数据项的删除操作;数据表的并发操作等等。
3.一般一个数据库中至少包含一个数据表,数据存储在数据表中,对于多库多表的数据库系统,它的存储空间很大,可以存放百万条、千万条、甚至上亿条数据,因此,在对多库多表类数据库进行测试时,需要大量的测试数据。
4.现有用于数据库测试的数据获取过程有以下不足:一是用于测试数据库的数据获取速度十分缓慢。比如,对于银行的金融管理系统的数据库,在存量测试数据的数据量未能满足测试需求的情况下,需要通过交易接口获取数据,虽然获取的数据更接近于实际业务场景,但是通过系统交易接口的方式造数,部分接口耗时过长时会导致整体造数时间长,数据生成效率低,无法及时支持百万级数据量的测试数据量。
5.二是获取的数据质量较差。为了提高数据获取速度,一些数据库测试用数据是通过造数程序生成数据,很多造数程序无法保证生成的测试数据的质量,一旦数据表结构发生变化,需要重新调整造数程序,可维护性较差,易用性较低。


技术实现要素:

6.本发明旨在提供一种用于多库多表造测试数据的装置及方法,解决现有技术中数据库的测试数据获取效率低、数据质量较差的技术问题。
7.为解决上述技术问题,本发明的第一方面是:提供一种用于多库多表造测试数据的装置,包括:配置信息对比模块,所述配置信息对比模块用于对比实际数据库的库表结构与配置文件中配置信息的差异,并输出对比结果;对比结果判断模块,所述对比结果判断模块用于判断所述配置文件中配置信息与实际数据库是否存在差异,如果存在差异,则对所述实际数据库进行检查并进行调整以消除差异;
数据生成模块,所述数据生成模块包括:样本数据生成单元,用于采集真实数据生成多份样本数据;参数化数据识别单元,用于对所述样本数据生成单元生成的多份样本数据进行对比,动态识别哪些字段需要进行参数化,并确定相应字段参数化的方式;样本数据克隆单元,用于复制一份样本数据作为数据副本;参数化数据替换单元,用于替换所述数据副本中需要参数化的字段生成新的数据;数据文件写入单元,用于将所述参数化数据替换单元生成的新的数据写入到数据库能够接收的数据文件;数据导入模块,其用于将所述数据文件写入单元生成的数据文件导入到数据库。
8.优选的,所述配置信息对比模块包括:配置文件配置信息获取单元,其用于获取配置文件中涉及的业务场景的数据表的配置信息;实际数据库库表结构配置信息获取单元,其用于获取实际数据库表结构的配置信息;差异对比单元,其用于对比配置文件中各业务场景涉及的数据表的配置信息跟实际数据库的库表结构的差异,以及对比获取配置文件中新增业务场景涉及的数据表的配置信息;对比结果输出单元,其用于输出所述差异对比单元的对比结果。
9.优选的,所述参数化数据识别单元确定相应字段参数化的方式包括:用户参数的方式、用户自定义变量的方式、正则提取的方式、函数助手的方式。
10.本发明的第二方面是:提供一种用于多库多表造测试数据的方法,包括以下步骤:(1)对比实际数据库的库表结构与配置文件中配置信息的差异,并输出对比结果;(2)判断所述配置文件中配置信息与实际数据库是否存在差异;(2.1)如果所述配置文件的配置信息与实际数据库存在差异,则对所述实际数据库进行检查并进行调整以消除差异,然后执行所述步骤(1);(2.2)如果所述配置文件中配置信息与实际数据库不存在差异,则执行步骤(3);(3)生成数据:(3.1)采集真实数据生成多份样本数据;(3.2)对所述步骤(3.1)中生成的多份样本数据进行对比,动态识别哪些字段需要进行参数化,并确定相应字段参数化的方式;(3.3)复制一份样本数据作为数据副本;(3.4)根据参数化的方式,替换所述数据副本中需要参数化的字段生成新的数据;(3.5)将所述步骤(3.4)中生成的新的数据写入到数据库能够接收的数据文件;(4)将所述步骤(3.5)中生成的数据文件导入到数据库。
11.优选的,所述步骤(1)包括:(1.1)获取配置文件中涉及的业务场景的数据表的配置信息;(1.2)获取实际数据库表结构;
(1.3)对比所述步骤(1.1)中获取的配置文件中各业务场景涉及的数据表的配置信息跟所述步骤(1.2)中获取的实际数据库表结构的差异,以及对比获取配置文件中新增业务场景涉及的数据表的配置信息;(1.4)输出所述步骤(1.3)中的对比结果。
12.优选的,在所述步骤(3.2)中,所述参数化数据识别单元确定相应字段参数化的方式包括:用户参数的方式、用户自定义变量的方式、正则提取的方式、函数助手的方式。
13.优选的,在所述步骤(4)中,使用多线程并发的方式,将数据文件的内容高速写入到数据库。
14.与现有技术相比,本发明的有益效果是:1、该用于多库多表造测试数据的装置对所建立的实际数据库与配置文件的配置信息进行比对,查找出差异对实际数据库进行修改,使得实际数据库满足真实业务的使用要求,然后再根据消除差异的数据库获取样本数据,确保获取的样本数据在结构上满足实际数据库测试要求。
15.2、该用于多库多表造测试数据的装置基于消除差异的实际数据库,采集真实数据生成多份样本数据,然后对生成的多份样本数据进行对比,动态识别需要参数化的字段,并确定相应字段参数化的方式,然后对样本数据进行克隆,替换克隆的数据副本中需要参数化的字段生成新的数据,确保生成的数据更加接近真实数据,保证造数质量,以及造数效率。
附图说明
16.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1为本发明用于多库多表造测试数据的装置一实施例的结构框图。
17.图2为本发明用于多库多表造测试数据的装置一实施例中配置信息对比模块的结构框图。
18.图3为本发明用于多库多表造测试数据的装置一实施例中数据生成模块的结构框图。
19.图4为本发明用于多库多表造测试数据的方法一实施例的流程图。
20.图5为本发明用于多库多表造测试数据的方法一实施例中对配置文件中配置信息和实际数据库差异对比流程图。
21.图6为本发明用于多库多表造测试数据的方法一实施例中数据生成流程图。
具体实施方式
22.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.一种用于多库多表造测试数据的装置,请参阅图1至图3。
24.如图1所示,该用于多库多表造测试数据的装置包括配置信息对比模块10、对比结
果判断模块20、数据生成模块30和数据导入模块40,数该配置信息对比模块10、对比结果判断模块20、数据生成模块30和数据导入模块40均为计算机可执行的功能模块。
25.其中,配置信息对比模块10用于对比配置文件中记录的配置信息与实际数据库的库表结构的差异,并输出对比结果,这里的配置文件是根据所要搭建的数据库的运行环境、业务需求所书写的,配置文件中的配置信息决定了实际数据库的库表结构。比如,对于银行的金融管理系统,其所需要的数据库一般是多库多表型数据库,根据金融管理系统的运行环境和实际业务确定配置文件,实际业务决定了所需要的数据库的数目、相应数据库的结构、各数据库中数据表的个数、各数据表的表结构等,其中,数据库的结构包括索引、过滤器、查询等结构元素,数据表的结构包括该数据表包含哪些字段、各字段的字段名、字段类型及宽度等元素。
26.本实施例中,配置信息对比模块10包括配置文件配置信息获取单元11、实际数据库库表结构配置信息获取单元12、差异对比单元13、对比结果输出单元14,配置文件配置信息获取单元11、实际数据库库表结构配置信息获取单元12、差异对比单元13、对比结果输出单元14为计算机可执行的功能单元。
27.其中,配置文件配置信息获取单元11用于获取配置文件中涉及的业务场景的数据表的配置信息;实际数据库库表结构配置信息获取单元12用于获取实际数据库表结构的配置信息;差异对比单元13用于对比配置文件中各业务场景涉及的数据表的配置信息跟实际数据库的库表结构的配置信息的差异,以及对比获取配置文件中新增业务场景涉及的数据表的配置信息,这里新增业务场景涉及的数据表是指实际数据库中没有的数据表,需要在实际数据库中重建;对比结果输出单元14用于输出差异对比单元13的对比结果。
28.对比结果判断模块20用于根据所述对比结果输出单元14输出的对比结果,来判断配置文件中的配置信息与实际数据库是否存在差异,如果存在差异,则对实际数据库进行检查并进行调整以消除差异,消除差异后,通过配置信息对比模块10、对比结果判断模块20再次进行差异对比,直至配置文件中的配置信息与实际数据库差异消除。
29.当配置文件中的配置信息与实际数据库没有差异,则通过数据生成模块30生成用于数据库测试的数据。
30.如图1所示,数据生成模块30包括样本数据生成单元31、参数化数据识别单元32、样本数据克隆单元33、参数化数据替换单元34、数据文件写入单元35,样本数据生成单元31、参数化数据识别单元32、样本数据克隆单元33、参数化数据替换单元34、数据文件写入单元35均为计算机可执行的功能单元。
31.其中,样本数据生成单元31用于采集真实数据生成多份样本数据,比如,对于银行的金融管理系统,可通过调用交易接口发起交易,生成合法的业务数据,通过获取的业务数据来生成多份样本数据。
32.参数化数据识别单元32用于对样本数据生成单元生成的多份样本数据进行对比,动态识别哪些字段需要进行参数化,并确定相应字段参数化的方式。这里的动态化识别是指在样本数据获取的过程中,识别数据表中需要参数化的字段;字段参数化的方式是指该字段需要采用哪种参数化方式,比如,可通过函数来确定参数、一定范围内取值来确定参数、几个固定值中选取来确定参数等方式,在本实施例中,参数化数据识别单元32确定相应字段参数化的方式包括用户参数的方式、用户自定义变量的方式、正则提取的方式、函数助
手的方式。
33.样本数据克隆单元33用于复制一份样本数据作为数据副本;参数化数据替换单元34用于替换数据副本中需要参数化的字段生成新的数据,字段替换过程中,根据对应字段的参数化方式来进行替换,确保字段替换后的数据符合测试数据的要求。数据文件写入单元35用于将参数化数据替换单元34生成的新的数据写入到数据库能够接收的数据文件。
34.数据导入模块40其用于将数据文件写入单元35生成的数据文件导入到数据库。
35.这里的数据库是与配置文件无差异的实际数据库,数据库导入测试数据过程中,可对数据库的性能进行测试,当导入足够量的测试数据,数据库测试结束。
36.一种用于多库多表造测试数据的方法,请参阅图4至图6。
37.结合图4、图5和图6所示,该用于多库多表造测试数据的方法包括以下步骤:步骤s100:对比实际数据库的库表结构与配置文件中配置信息的差异,并输出对比结果。该步骤s100具体包括:步骤s101:获取配置文件中涉及的业务场景的数据表的配置信息;步骤s102:获取实际数据库表结构;步骤s103:对比步骤s101中获取的配置文件中各业务场景涉及的数据表的配置信息跟步骤s102中获取的实际数据库表结构的差异,以及对比获取配置文件中新增业务场景涉及的数据表的配置信息;步骤s104:输出步骤s103中的对比结果。
38.步骤s200:判断配置文件中配置信息与实际数据库是否存在差异。
39.在本步骤中,如果配置文件中配置信息与实际数据库存在差异,则对实际数据库进行人工检查并进行调整以消除差异,然后执行步骤s100继续比对。如果配置文件中配置信息与实际数据库不存在差异,则执行步骤s300。
40.步骤s300:生成数据。
41.该步骤具体包括:步骤s301:采集真实数据生成多份样本数据;步骤s302:对步骤s301中生成的多份样本数据进行对比,动态识别哪些字段需要进行参数化,并确定相应字段参数化的方式;步骤s303:复制一份样本数据作为数据副本;步骤s304:根据参数化的方式,替换数据副本中需要参数化的字段生成新的数据;步骤s305:将步骤s304中生成的新的数据写入到数据库能够接收的数据文件。
42.其中,在步骤s302中,参数化数据识别单元确定相应字段参数化的方式包括用户参数的方式、用户自定义变量的方式、正则提取的方式、函数助手的方式。
43.步骤s400:将步骤s305中生成的数据文件导入到数据库。
44.在本步骤中,使用多线程并发的方式,将数据文件的内容高速写入到数据库。
45.需要说明的是,在本文中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
46.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1