测试数据库创建方法及测试数据库创建系统与流程

文档序号:11386406阅读:412来源:国知局
测试数据库创建方法及测试数据库创建系统与流程

本发明涉及计算机软件测试领域,尤其涉及一种测试数据库创建方法及测试数据库创建系统。



背景技术:

随着互联网的发展,b2b和b2c等新兴交易模型的应用和飞速发展,大数据和云计算领域受到了越来越多的科研团队的追捧,数据信息将是未来最有价值的产品。信息的处理速度,取决于数据库管理系统对数据的处理速度。而数据库管理系统的研究,归根结底是数据库性能的研究。而国际事务处理性能委员会(tpc)提出的tpc-e基准,是评测大数据场景下数据库事务处理的权威性标准。

tpc-e是用于替换tpc-c的新oltp测试基准。tpc-e基准更加真实准确的模拟了现有的企业应用环境,在测试模型上进行了巨大革新与改进,更加强调模型的高仿真性。tpc-e以美国证券交易所为模型,测试模型如图1所示,包括在线交易、账户查询、市场调研等日常操作。

该测试模拟证券公司也会与外界的金融市场相联系,根据市场变化执行相应的操作并更新相关的账户和市场信息。它不仅包含了c2b的环境还包括的b2b的环境,这种商业模型更为人们熟悉也更容易理解,同时更贴近现有用户的实际应用环境。

数据库基准测试的测试环境的好坏和体量将决定数据库评测结果的准确性,因此,在对众多数据数据库通过基准测试系统进行性能测试时,基准测试数据库环境的创建显得尤为重要。

目前,现有技术在tpc-e负载下的基准测试系统的测试数据库环境的创建,其所有的字段都是采用简单的“0”、“1”数字作为测试样本简单替代真实的数据来搭建测试环境,主要侧重tpc-e基准模型的逻辑关系对数据库的处理能力的评测。但是,采用这种方式创建的基准测试环境,测试样本数据类型单一、数据组成与实际相差大,会增大性能测试的误差,对测试结果有很大的影响。



技术实现要素:

本发明为了解决上述技术问题,提出一种测试数据库创建方法,其特征在于,包括:

步骤s1,获取真实数据源,所述真实数据源包括非数字类型的数据;

步骤s2,根据所述真实数据源建立源数据词频库;

步骤s3,建立测试数据库,所述测试数据库包括测试数据表;

步骤s4,触发任务事务,所述任务事务根据由所述源数据词频库生成的数据记录更新或者添加测试数据至所述测试数据表。

作为优选,所述真实数据源包括数据元素,所述源数据词频库包括所述数据元素以及所述数据元素对应的词频;所述步骤s2包括:

步骤s2-1,分析所述数据元素的词频,所述词频反映所述数据元素在所述真实数据源中出现的次数的多少;

步骤s2-2,建立所述源数据词频库。

作为优选,所述步骤s4包括:

步骤s4-1,生成数据记录集合,所述数据记录中的数据元素的词频与所述数据元素在源数据词频库中的词频一致;

步骤s4-2,将所述数据记录集合中未使用过的数据记录作所述任务事务的输入信息,启动任务事务,所述任务事务更新或者添加测试数据至所述测试数据表;

步骤s4-3,判断所述测试数据库是否满足预设要求,如果满足,测试数据库创建结束,如果不满足,则回到步骤s4-2。

作为优选,所述步骤s4-3中判断所述测试数据库是否满足预设要求的方法包括:判断所述测试数据库的大小是否满足预设要求。

作为优选,所述测试数据包括客户信息数据,所述测试数据表包括存储所述客户信息数据的客户信息表;所述步骤s4-3中判断所述测试数据库是否满足要求的方法包括:判断所述客户信息表中的客户信息数据是否满足预设要求。

作为优选,所述任务事务包括交易执行事务,所述交易执行事务更新或者添加所述客户信息数据至所述客户信息表,所述交易执行事务触发其他类型任务事务以更新或者添加测试数据至所述测试数据表;所述步骤s4-2中,启动所述交易执行事务。

作为优选,所述数据记录包括数据字段,所述数据字段由多个所述数据元素组成;所述步骤s4-1包括:

步骤s4-1-1,从所述源数据词频库中选择数据元素;

步骤s4-1-2,将所述数据元素组成数据字段;

步骤s4-1-3,将所述数据字段组成所述数据记录;

步骤s4-1-4,将所述数据记录添加至所述数据记录集合。

本发明还提供一种测试数据库创建系统,其特征在于,包括:

数据源获取模块,用于获取包括非数字类型数据的真实数据源,所述真实数据源包括数据元素;

存储模块,所述存储模块存储根据所述真实数据源建立的源数据词频库以及测试数据库;所述源数据词频库包括所述数据元素以及所述数据元素对应的词频,所述测试数据库包括测试数据表;

执行模块,执行任务事务;所述任务事务根据由所述源数据词频库生成的数据记录更新或者添加测试数据至所述测试数据表。

作为优选,所述存储单元存储数据记录集合,所述数据记录中的数据元素的词频与所述数据元素在源数据词频库中的词频一致;所述执行模块包括:

数据记录集合生成单元,根据所述源数据词频库生成记录数据并将所述记录数据添加至所述数据记录集合中;

任务事务触发单元,将所述数据记录集合中未使用过的数据记录作所述任务事务的输入信息,启动任务事务,所述任务事务更新或者添加测试数据至所述测试数据表;

判断单元,判断所述测试数据库是否满足预设要求。

作为优选,所述测试数据包括客户信息数据,所述测试数据表包括存储所述客户信息数据的客户信息表;

所述任务事务包括交易执行事务,所述交易执行事务更新或者添加所述客户信息数据至所述客户信息表;

所述任务执事务触发单元启动所述交易执行事务,所述交易执行事务触发其他类型任务事务以更新或者添加测试数据至所述测试数据表;

所述判断单元判断所述客户信息表中的客户信息数据是否满足预设要求。

本发明使用取自证券交易所的真实数据源,通过对真实数据源进行词频分析,建立词频库。然后根据词频的大小选取数据元素从而组成数据字段,以此循环生成一行数据记录的所有字段,以建立数据记录。采用多样化的数据类型,通过概率统计建立模型,更加真实的模拟tpc-e基准模型,从而更加真实的评测出数据库处理性能。

附图说明

图1tpc-e测试基准模型;

图2本发明实施例的测试数据库创建系统示意图;

图3本发明实施例的测试数据库创建方法流程图;

图4本发明实施例的测试数据表的模式和实体关系图;

图5本发明实施例的测试测试数据表层级关系图。

具体实施方式

以下具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。

实施例一

一种测试数据库创建系统,用于适用于创建用于tpc-e基准测试系统的测试数据库环境。如图2所示,本实施例中所述的测试数据库创建系统包括:

一.数据源获取模块,用于获取来自证券交易所的真实的数据,并对该数据进行预处理以后得到真实源数据。这里的预处理通常是指剔除该真实数据中交易金额、银行卡号等暴露用户隐私的信息。使得获得的真实数据源即保证了丰富的数据类型(包括字符型等非数据类型的数据)。

二.存储模块,存储模块存储源数据词频库、数据记录集合以及测试数据表。

其中源数据词频库是根据真实数据源建立:真实数据源包括多个数据元素,例如,客户名称(如“张三”)中的姓(“张”)和名(“三”)可以分别作为一个数据元素。统计真实数据源中的各数据元素的出现次数,作为该数据元素的词频。并且将该数据元素以及该数据元素的词频存储至源数据词频库中。作为优选,源数据词频库汇中的数据元素按照词频的大小顺序排列。

数据记录集合中包括数据记录,数据记录中所有数据记录的数据元素的词频与该数据元素在源数据词频库中的词频一致。

本实施例中的测试数据表为面向sqlite的tcp-e基准测试系统创建测试运行时的数据环境。其包括33张数据表,表1示出了本实施例的测试数据库中的33张测试数据表。

33张测试数据表中,有27张测试数据表表含有外键约束,总共有50个外键。测试数据表包括多个数据字段,数据字段的类型有char(字符型)、integer(整型)、byte(字节型)等十种数据类型,共有188列。33张测试数据表的模式、字段信息、引用关系、索引项和实体关系的具体设计描述如图4所示。其中,标有pk的为表主键,标有fk的为表外键。图5示出了33张测试数据表的层级关系。

三.执行模块,执行任务事务。tpc-e包括12中事务类型,各事务类型的描述如表2所示:

各任务事务在执行时,能够相应的更新或者添加各相关的测试数据表中的测试数据,并且一个任务事务的执行还能够触发与其相关的其他任务事务的执行。

具体的,执行模块进一步包括:

数据记录集合生成单元,根据源数据词频库生成记录数据并将记录数据添加至数据记录集合中。利用matlab对源数据词频库进行拟合以输出多个数据元素,并且使得输出的各数据元素的词频与其在源数据词频库中的词频相同。根据执行的任务事务的特性生成执行该任务事务所需要输入的数据记录。数据记录一般由多个数据字段组成,一个数据字段通常包括一个或者多个数据元素;根据数据字段的类型选取对应类型的数据元素组成数据字段,再将多个数据字段组成数据记录,并存储至数据记录集合中。

任务事务触发单元,将数据记录集合中未使用过的数据记录作任务事务的输入信息,启动任务事务,任务事务更新或者添加测试数据至测试数据表。优选地,依次将数据记录集合中的数据记录作为任务事务的输入信息,启动任务事务。本实施例中优选地启动交易执行事务,交易执行事务需要输入包括客户信息的数据记录,通过执行交易执行事务,能够向customer(客户信息表)中添加或更新客户信息数据。同时,交易执行事务还能触发别的交易事务以像其他测试数据表中添加或更新其他测试数据。

判断单元,判断测试数据表是否满足预设要求。该预设要求为测试数据库创建系统被配置的系统参数,可以为测试数据库的大小,也可以为测试数据库中某一张测试数据表中的测试数据的数量大小。如表3为该测试数据库创建系统的配置参数列表,该参数列表中指定了测试数据库中customer(客户信息表)中的客户信息数据的数量大小为5000条:

例如,表4为根据sqlite数据库的数据库特性,设定tpc-e测试数据库的客户量为5000时,33张表的记录数如下表所示,此时,测试数据库的大小为2.8g。

当判断单元判断测试数据库的大小大于或者等于预设值时,表明测试数据库的创建结束。将数据保存在data文件的txt文件中,利用tpc提供的gen程序包里的egenloader完成数据装载操作。当判断单元判断测试数据库的大小小于预设值时,表明测试数据库还未达到预设的要求,交易执行单元需要继续执行任务事务对测试数据库进行扩展,直至测试数据库的大小达到预设值为止。或者当判断单元判断测试数据库中某个测试数据表中的测试数据的数量大于或者等于预设值时,表明测试数据库的创建结束。将数据保存在data文件的txt文件中,利用tpc提供的gen程序包里的egenloader完成数据装载操作。当判断单元判断测试数据库中某个测试数据表中的测试数据的数量小于预设值时,表明测试数据库还未达到预设的要求,交易执行单元需要继续执行任务事务对测试数据库进行扩展,直至测试数据库中该测试数据表的测试数据的数量达到预设值为止。

下面以company表为例,以python实现执行模块的核心程序如表5:

如图3,基于上述测试数据库创建系统的测试数据库创建方法包括:

步骤s1,获取真实数据源,真实数据源包括非数字类型的数据。其中,真实数据源包括数据元素。

步骤s2,根据真实数据源建立源数据词频库,源数据词频库包括数据元素以及数据元素对应的词频。具体包括:

步骤s2-1,分析数据元素的词频,词频反映数据元素在真实数据源中出现的次数的多少。

步骤s2-2,建立源数据词频库。

步骤s3,建立测试数据库,测试数据库包括测试数据表。测试数据包括客户信息数据,测试数据表包括存储客户信息数据的客户信息表。

步骤s4,触发任务事务,任务事务根据由源数据词频库生成的数据记录更新或者添加测试数据至测试数据表。具体包括:

步骤s4-1,生成数据记录集合,数据记录中的数据元素的词频与数据元素在源数据词频库中的词频一致。数据记录是由多个数据字段组成的,数据字段又包括多个数据元素组成。步骤s4-1进一步包括:

步骤s4-1-1,从源数据词频库中选择数据元素;

步骤s4-1-2,将数据元素组成数据字段;

步骤s4-1-3,将数据字段组成数据记录;

步骤s4-1-4,将数据记录添加至数据记录集合。

步骤s4-2,将数据记录集合中未使用过的数据记录作任务事务的输入信息,启动任务事务,任务事务更新或者添加测试数据至测试数据表。本实施例中最好启动交易执行事务。交易执行事务能够更新或者添加客户信息数据至客户信息表;同时,交易执行事务能够触发其他类型任务事务以更新或者添加测试数据至测试数据表。

步骤s4-3,判断测试数据表是否满足预设要求,如果满足,测试数据库创建结束,如果不满足,则回到步骤s4-2。判断测试数据表是否满足预设要求的方法可以为:判断测试数据表的大小是否满足预设要求;或者也可以为:步骤s4-3中判断测试数据表是否满足要求的方法包括:判断客户信息表中的客户信息数据是否满足预设要求。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1