一种数据库的测试数据的自动生成方法、装置及测试系统的制作方法_2

文档序号:9750723阅读:来源:国知局
规则将生成的所述测试数据插入到所述数据库表中。
[0051]下面,详细地说明本发明的数据库的测试数据的自动生成方法的详细步骤。
[0052]数据库表以及字段
[0053]数据库是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库由数据库表组成,其中,数据库表是数据库中存储数据的一种数据组织形式,具有多个字段,举例而言,用户需要借助数据库来保存一个班级中所有学生的信息,该情况下,可以以班级为单位创建一个数据库,命名为“class”,这个数据库中包括一个学生基本信息表,命名为“stu”,一个是学生的科目考试成绩表,命名为“score”。学生基本信息表包括“姓名”、“性别”、“学号”这三个字段,每个字段都可以存储一个特定类型的信息,比如“张三”、“男”、“200110010”。科目考试成绩表与学生基本信息表相同,包括“学号”、“科目”、“成绩”这三个字段,可以存储例如“200110010”、“语文”、“80”。其中,每个字段都具有特定的属性,代表不同的含义。这里,在进行测试数据准备的时候,就需要知晓学生基本信息表与科目考试成绩表这两个表之间的关系以及每个字段的属性,换而言之,就需要知晓待插入数据的插入规则。否则,准备的插入数据之间就不符合数据内在的逻辑结构,从而导致所准备的数据是无效的,或者至少是质量不高的数据。
[0054]数据库表字段的参数
[0055]为对数据库表进行操作,比如插入或者修改数据库表中的数据,需要获得其参数,参数一般包括:字段名称、字段类型、字段是否唯一、字段是否可为空、字段是否为关联外键。数据库表中字段属性唯一的就可作为主键,主键的要求是所存储的数据是唯一的就可以,可以是一个字段,也可以是组合字段。关联外键的含义是通过一个数据库表中的某个字段可以外部连接到其他的数据库表,如上述学生基本信息表和科目考试成绩表这两个表的“学号”字段,可以是关联外键。
[0056]—般来说,通过编程语句可以获取字段名称、字段类型、字段是否唯一及字段是否可为空,编程语句可以是Java语句、C、C++、VC++等各种编程语言,本发明中对于编程语言没有限定,可以是任何的编程语言,只要能够实现对数据库表生成语句实现解析就可以。
[0057]字段是否是关联外键的确定
[0058]但是,现有的编程语言例如Java语句无法获取一个字段是否关联外键的信息,本申请提出了确定字段是否关联外键的方法,如图2所示,包括:S21、获取该数据库表的建表语句;S22、解析所述建表语句,确定所述建表语句中是否存在外键,即是否存在类似于“FOREIGN KEY”的语句,如果存在,相应字段为关联外键,并基于所述建表语句确定与所述外键相关联的其他数据库表。
[0059]该步骤一般作为查询步骤的子步骤,当然也可以独立执行。
[0060]测试数据的生成规则
[0061]为灵活的生成测试数据,就需要对测试数据的生成规则进行定义,测试数据的生成规则是指按照什么方式来生成测试数据,本发明中,测试数据的生成规则包括但是不限于根据随机数来生成测试数据、通过手工输入来生成测试数据、通过配置文件来生成测试数据、引用数据库中已有的数据表中的数据来生成测试数据等。其中,每一字段的数据可通过不同的方式生成,也可以通过相同的方式生成,在此并不限定于生成方式,可以根据具体的需求来定。
[0062]测试数据的插入规则
[0063]由于使用编程语言的批处理插入数据库会涉及效率问题,字段数量、大小、类型等不同,会直接影响到插入效率,而批量插入量不同也会影响到插入效率。因此,本发明能够通过程序智能选择去配置批量插入量来达到一个最优插入速度来插入到数据库。而智能选择批量插入量是通过配置智能选择插入规则文件去实现,由于插入规则是能够具体规则的配置文件,因此该智能选择规则可以通过不断的测试之后不断地去优化,直到寻找到最优的规则文件和最快的插入速度。图3示出了生成所述插入规则的步骤,用于生成所述插入规则,包括:S41、生成存储插入规则的插入配置文件;S42、初始化所述插入配置文件,在所述插入配置文件中初始化每次插入数据的初始插入量;S43、确定待插入的字段的数量、大小和类型,使用所述初始插入量进行数据的插入,并确定初始插入速度;以及S44、调整所述初始插入量,并记录相应的插入速度,进行多次调整,以确定最大插入速度及相应的数据插入量,使用与最大插入速度相应的数据插入量,来更新插入配置文件中的初始插入速度,生成插入配置文件。
[0064]这样通过智能的计算,针对不同的数据表、数据类型等,就能够确定出最合适的插入量,从而提高插入速度。
[0065]本发明的上述方法可通过计算机程序实现,计算机至少具备CPU( CentralProcessing Unit:中央处理单元)、存储控制程序的R0M(Read Only Memory:只读存储器)、作为CPU的作业区域使用的RAM(Random Access Memory)以及非易失性存储器。非易失性存储器包括快闪存储器以及硬盘驱动器中的至少一个。所述计算机程序可以存储在存储器中,存储器可以为以下中任何一个:随机存储器、只读存储器、光或磁存储器,或者能够存储数字信息的任何合适存储器。所述存储器可以是系统存储器、可为系统访问的其他存储器或协同处理器的特定本地存储器。但是不限于此,也可以通过特定的物理电路来实现,物理电路包括集成电路、大规模集成电路、VLSI (超大规模集成电路)、FPGA等。
[0066]根据本发明的数据库的测试数据的自动生成方法,解决了字段关联外键识别难的技术难题,能够提供多种灵活的测试数据生成规则,实现智能化插入,同时能够大量且高速地生成符合要求的测试数据,提高了软件开发与测试的效率。
[0067]数据库的测试数据的自动生成装置
[0068]下面,基于图4-图6来说明本发明提供的数据库的测试数据的自动生成装置。图4示出了本发明的数据库的测试数据的自动生成装置I,包括:选择模块11,用于选择需要生成测试数据的数据库表;查询模块12,用于查询数据库表的参数;测试数据生成模块13,用于根据数据库表的参数选择测试数据的生成规则,生成测试数据;以及测试数据插入模块14,用于选择测试数据的插入规则,基于插入规则将生成的测试数据插入到数据库表中。
[0069]在查询模块12中设有关联外键获取模块121,如图5所示,其包括:获取模块1211,用于获取该数据库表的建表语句;解析模块1212,用于解析建表语句,确定建表语句中是否存在“FOREIGN KEY”,如果存在,所述字段为关联外键,并基于所述建表语句确定与所述外键相关联的另一数据库表。
[0070]—般来说,关联外键获取模块121可设置于查询模块12中,当然,其可以是一个独立的模块。
[0071]如图6所述,在测试数据插入模块14中包括插入规则生成模块141,其中包括:插入配置文件生成模块1411,用于生成存储插入规则的插入配置文件;初始化模块1412,用于初始化插入配置文件,在插入配置文件中初始化每条插入数据的初始插入量;确定模块1413,用于确定待插入的字段的数量、大小和类型,使用初始插入量进行数据的插入,并确定初始插入速度;调整模块1414,用于调整初始插入量,并记录相应的插入速度,经过多次调整,以确定最大插入速度及相应的数据插入量,使用与最大插入速度相应的所述数据插入量更新插入配置文件中的所述初始插入速度,生成插入配置文件。
[0072]—般来说,插入规则生成模块141可设置于测试数据插入模块14中,当然,其可以是一个独立的模块。
[0073]本发明的数据库的测试数据的自动生成装置I可以通过集成电路技术实现,如VLSI(超大规模集成电路)、FPGA等,也可以通过计算机程序模块实现,程序模块包括用来执行特定的任务或实施特定的抽象数据类型的例行程序、程序、构件、数据结构等等。而且,本领域技术人员将意识到,本发明方法可以通过其它计算机系统配置而被实践,包括单处理器或多处理器计算机系统、小型计算机、大型计算机、以及个人计算机、手持计算设备、基于微处理器的或可编程的消费者电子设备等等,它们中的每个设备可以操作地被耦合到一个或多个相关联的设备。
[0074]根据本发
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1