一种基础数据生成方法、测试用数据生成方法及其装置的制造方法
【技术领域】
[0001] 本发明涉及数据处理技术领域,尤其涉及一种基础数据生成方法、测试用数据生 成方法及其装置。
【背景技术】
[0002] 数据仓库(DataWarehouse,DW)是为企业所有级别的决策提供支持的所有类型 数据的战略集合。数据仓库中的数据是通过数据仓库技术(Extract-Transform-Load, ETL)加工得到的,即在对原有分散的数据库数据进行抽取、清理的基础上,再经过系统加 工、汇总和整理得到。数据仓库技术用来描述将数据从来源端经过萃取(extract)、转置 (transform)、加载(load)至目的端的过程。
[0003] 商务智能(BusinessIntelligence,!?〗),用来将企业中现有的数据进行有效的整 合,快速准确的提供报表并提出决策依据。BI系统建设通过ETL程序加工进行大量的数据 抽取、清洗、转换等操作,对数据处理能力要求较高,因此需要测试数据对数据库和ETL处 理程序的性能进行压力测试;同时BI系统建设对数据的业务含义和业务数据关系依赖性 较高,因此也需要测试数据对BI系统的ETL加工正确性进行验证。
[0004] 目前,测试数据的录入主要有两种方法,一种方法是通过软件界面或是直接编写 SQL(StructuredQueryLanguage,结构化查询语句)语句逐条录入,S卩手动录入测试数据; 另外一种方法是通过简单程序脚本批量造随机数,按照脚本随机生成数据。
[0005] 采用上述第一种方法录入测试数据时,测试数据的生成效率较低;采用上述第二 种方法随机生成数据时,由于脚本指定的规则有限,会使得录入的测试数据无法体现数据 间的依赖关系。
【发明内容】
[0006] 本发明实施例提供一种基础数据生成方法、测试用数据生成方法及其装置,用以 实现根据数据间的依赖关系生成测试用数据的基础数据,为测试用数据的装配提供数据来 源。
[0007] 为此,本发明一方面提供一种基础数据生成方法,包括:
[0008] 获取业务数据库中数据表的配置信息;
[0009] 根据所述业务数据库中数据表的配置信息配置数据字典,所述数据字典中包含测 试用数据字段的定义信息;
[0010] 针对测试用数据字段,配置数据生成策略;其中,所述数据字典中和/或所述数据 生成策略中,定义有测试用数据字段之间的依赖约束条件;
[0011] 根据所述数据字典以及所述数据生成策略生成测试用数据,并将生成的测试用数 据存储于N个基础数据池,N>1 ;其中,所述基础数据池中存储的测试用数据满足唯一性要 求,不同的基础数据池存储的测试用数据的类型互不相同。
[0012] 根据上述基础数据生成方法,在基础数据生成过程中,所述数据字典中包含测试 用数据字段的定义信息,所述测试用数据字段的定义信息包括所述测试用数据字段的基本 信息,并包括以下信息中的一种或组合:
[0013] 所述测试用数据字段的字段默认值,所述字段默认值为根据所述测试用数据字段 生成测试用数据时,所生成的测试用数据的默认取值;
[0014] 所述测试用数据字段所对应的数据生成策略的指示信息,用于指示根据所述测试 用数据字段生成测试用数据时,所使用的数据生成策略;
[0015] 所述测试用数据字段的依赖约束条件,用于指示根据所述测试用数据字段生成测 试用数据时所依赖的字段。
[0016] 并且所述数据生成策略进一步包括:
[0017] 第一测试用数据字段为任意一个测试用数据字段,所述第一测试用数据字段的数 据生成策略包括:
[0018] 第一测试用数据字段的指示信息,所述第一字段为需要使用依赖约束条件的测试 用字段;
[0019] 第二测试用数据字段的指示信息,所述第二字段为所述第一字段依赖的字段;
[0020] 所述第一测试用数据字段的数据取值规则,所述数据取值规则用于定义所述第一 测试用数据字段的取值范围,且规定所述第一测试用数据字段的取值依赖于所述第二测试 用数据字段。
[0021] 进一步地,所述第一测试用数据字段的数据生成策略中还包括:第一测试用数据 字段的数据类型,用于定义第一字段的数据类型。
[0022] 进一步,根据所述数据字典以及所述数据生成策略生成测试用数据,包括:
[0023] 若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均 定义了所述当前需要生成的测试用数据字段的数据类型,则将前者中的数据类型设置为高 优先级,将后者中的数据类型设置为低优先级;
[0024] 根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所 述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的数据类型的优先级, 生成测试用数据。
[0025] 同理,根据所述数据字典以及所述数据生成策略生成测试用数据,包括:
[0026] 若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均 包含所述当前需要生成的测试用数据字段的依赖约束条件,则将前者中的依赖约束条件设 置为高优先级,将后者中的依赖约束条件设置为低优先级;
[0027] 根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所 述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的依赖约束条件的优先 级,生成测试用数据。
[0028] 进而,基于上述基础数据生成方法,本发明提供一种测试用数据生成方法,包括:
[0029] 获取目标测试用数据的生成要求,根据所述目标测试用数据的生成要求确定所述 目标测试用数据需要包含的字段;
[0030] 根据所述目标测试用数据需要包含的字段,确定所需的基础数据池;
[0031] 从确定出的每个基础数据池中获取相应字段的测试用数据;
[0032] 将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为 目标测试用数据。
[0033] 进一步地,根据所述目标测试用数据需要包含的字段,确定该字段的依赖约束条 件;
[0034] 对于每个确定出的基础数据池,从当前基础数据池中获取相应测试用数据字段的 测试用数据,包括:
[0035] 获取当前基础数据池中的第二测试用数据字段的依赖约束条件;其中,所述第二 测试用数据字段为当前基础数据池中任意一个测试用数据字段,且该测试用数据字段为所 述目标测试用数据的需要包含的字段;
[0036] 若根据所述第二测试用数据字段的依赖约束条件,确定所述第二测试用数据字段 的取值依赖于第三测试用数据字段,则先从包含所述第三测试用数据字段的基础数据池中 获取所述第三测试用数据字段的数据,再根据已经获取到的第三测试用数据字段的数据的 取值以及所述第二测试用数据字段的依赖条件,从当前基础数据池中获取所述第二测试用 数据字段的数据。
[0037] 根据上述实施方式,所述将从所述每个基础数据池中获取到的相应测试用数据字 段的测试用数据装配为目标测试用数据之前,包括:需要加密的字段,对从所述每个基础数 据池中获取到的相应测试用数据字段的测试用数据进行加密。
[0038] 基于上述所述基础数据生成方法,本发明提供一种基础数据生成装置,包括:
[0039] 配置信息获取模块,用于获取业务数据库中数据表的配置信息;
[0040] 数据字典配置模块,用于根据所述业务数据库中数据表的配置信息配置数据字 典,所述数据字典中包含测试用数据字段的定义信息;
[0041] 数据生成策略配置模块,用于针对测试用数据字段,配置数据生成策略;其中,所 述数据字典中和/或所述数据生成策略中,定义有测试用数据字段之间的依赖约