CN104615667B - 一种基础数据生成方法、测试用数据生成方法及其装置 - Google Patents

一种基础数据生成方法、测试用数据生成方法及其装置 Download PDF

Info

Publication number
CN104615667B
CN104615667B CN201510016599.2A CN201510016599A CN104615667B CN 104615667 B CN104615667 B CN 104615667B CN 201510016599 A CN201510016599 A CN 201510016599A CN 104615667 B CN104615667 B CN 104615667B
Authority
CN
China
Prior art keywords
data
field
test
test data
generation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510016599.2A
Other languages
English (en)
Other versions
CN104615667A (zh
Inventor
赵军
姜名峰
陈飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
UNION MOBILE PAY ELECTRONIC COMMERCE Co Ltd
Original Assignee
UNION MOBILE PAY ELECTRONIC COMMERCE Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by UNION MOBILE PAY ELECTRONIC COMMERCE Co Ltd filed Critical UNION MOBILE PAY ELECTRONIC COMMERCE Co Ltd
Priority to CN201510016599.2A priority Critical patent/CN104615667B/zh
Publication of CN104615667A publication Critical patent/CN104615667A/zh
Application granted granted Critical
Publication of CN104615667B publication Critical patent/CN104615667B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基础数据生成方法、测试用数据生成方法及其装置,获取业务数据库中数据表的配置信息;根据所述业务数据库中数据表的配置信息配置数据字典,所述数据字典中包含测试用数据字段的定义信息;针对测试用数据字段,配置数据生成策略;其中,所述数据字典中和/或所述数据生成策略中,定义有测试用数据字段之间的依赖约束条件;根据所述数据字典以及所述数据生成策略生成测试用数据,并将生成的测试用数据存储于N个基础数据池,N>1;其中,所述基础数据池中存储的测试用数据满足唯一性要求,不同的基础数据池存储的测试用数据的类型互不相同,能够根据数据间的依赖关系生成测试用数据的基础数据,体现测试用数据的依赖关系。

Description

一种基础数据生成方法、测试用数据生成方法及其装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基础数据生成方法、测试用数据生成方法及其装置。
背景技术
数据仓库(Data Warehouse,DW)是为企业所有级别的决策提供支持的所有类型数据的战略集合。数据仓库中的数据是通过数据仓库技术(Extract-Transform-Load,ETL)加工得到的,即在对原有分散的数据库数据进行抽取、清理的基础上,再经过系统加工、汇总和整理得到。数据仓库技术用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。
商务智能(Business Intelligence,BI),用来将企业中现有的数据进行有效的整合,快速准确的提供报表并提出决策依据。BI系统建设通过ETL程序加工进行大量的数据抽取、清洗、转换等操作,对数据处理能力要求较高,因此需要测试数据对数据库和ETL处理程序的性能进行压力测试;同时BI系统建设对数据的业务含义和业务数据关系依赖性较高,因此也需要测试数据对BI系统的ETL加工正确性进行验证。
目前,测试数据的录入主要有两种方法,一种方法是通过软件界面或是直接编写SQL(Structured Query Language,结构化查询语句)语句逐条录入,即手动录入测试数据;另外一种方法是通过简单程序脚本批量造随机数,按照脚本随机生成数据。
采用上述第一种方法录入测试数据时,测试数据的生成效率较低;采用上述第二种方法随机生成数据时,由于脚本指定的规则有限,会使得录入的测试数据无法体现数据间的依赖关系。
发明内容
本发明实施例提供一种基础数据生成方法、测试用数据生成方法及其装置,用以实现根据数据间的依赖关系生成测试用数据的基础数据,为测试用数据的装配提供数据来源。
为此,本发明一方面提供一种基础数据生成方法,包括:
获取业务数据库中数据表的配置信息;
根据所述业务数据库中数据表的配置信息配置数据字典,所述数据字典中包含测试用数据字段的定义信息;
针对测试用数据字段,配置数据生成策略;其中,所述数据字典中和/或所述数据生成策略中,定义有测试用数据字段之间的依赖约束条件;
根据所述数据字典以及所述数据生成策略生成测试用数据,并将生成的测试用数据存储于N个基础数据池,N>1;其中,所述基础数据池中存储的测试用数据满足唯一性要求,不同的基础数据池存储的测试用数据的类型互不相同。
根据上述基础数据生成方法,在基础数据生成过程中,所述数据字典中包含测试用数据字段的定义信息,所述测试用数据字段的定义信息包括所述测试用数据字段的基本信息,并包括以下信息中的一种或组合:
所述测试用数据字段的字段默认值,所述字段默认值为根据所述测试用数据字段生成测试用数据时,所生成的测试用数据的默认取值;
所述测试用数据字段所对应的数据生成策略的指示信息,用于指示根据所述测试用数据字段生成测试用数据时,所使用的数据生成策略;
所述测试用数据字段的依赖约束条件,用于指示根据所述测试用数据字段生成测试用数据时所依赖的字段。
并且所述数据生成策略进一步包括:
第一测试用数据字段为任意一个测试用数据字段,所述第一测试用数据字段的数据生成策略包括:
第一测试用数据字段的指示信息,所述第一字段为需要使用依赖约束条件的测试用字段;
第二测试用数据字段的指示信息,所述第二字段为所述第一字段依赖的字段;
所述第一测试用数据字段的数据取值规则,所述数据取值规则用于定义所述第一测试用数据字段的取值范围,且规定所述第一测试用数据字段的取值依赖于所述第二测试用数据字段。
进一步地,所述第一测试用数据字段的数据生成策略中还包括:第一测试用数据字段的数据类型,用于定义第一字段的数据类型。
进一步,根据所述数据字典以及所述数据生成策略生成测试用数据,包括:
若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均定义了所述当前需要生成的测试用数据字段的数据类型,则将前者中的数据类型设置为高优先级,将后者中的数据类型设置为低优先级;
根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的数据类型的优先级,生成测试用数据。
同理,根据所述数据字典以及所述数据生成策略生成测试用数据,包括:
若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均包含所述当前需要生成的测试用数据字段的依赖约束条件,则将前者中的依赖约束条件设置为高优先级,将后者中的依赖约束条件设置为低优先级;
根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的依赖约束条件的优先级,生成测试用数据。
进而,基于上述基础数据生成方法,本发明提供一种测试用数据生成方法,包括:
获取目标测试用数据的生成要求,根据所述目标测试用数据的生成要求确定所述目标测试用数据需要包含的字段;
根据所述目标测试用数据需要包含的字段,确定所需的基础数据池;
从确定出的每个基础数据池中获取相应字段的测试用数据;
将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据。
进一步地,根据所述目标测试用数据需要包含的字段,确定该字段的依赖约束条件;
对于每个确定出的基础数据池,从当前基础数据池中获取相应测试用数据字段的测试用数据,包括:
获取当前基础数据池中的第二测试用数据字段的依赖约束条件;其中,所述第二测试用数据字段为当前基础数据池中任意一个测试用数据字段,且该测试用数据字段为所述目标测试用数据的需要包含的字段;
若根据所述第二测试用数据字段的依赖约束条件,确定所述第二测试用数据字段的取值依赖于第三测试用数据字段,则先从包含所述第三测试用数据字段的基础数据池中获取所述第三测试用数据字段的数据,再根据已经获取到的第三测试用数据字段的数据的取值以及所述第二测试用数据字段的依赖条件,从当前基础数据池中获取所述第二测试用数据字段的数据。
根据上述实施方式,所述将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据之前,包括:需要加密的字段,对从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据进行加密。
基于上述所述基础数据生成方法,本发明提供一种基础数据生成装置,包括:
配置信息获取模块,用于获取业务数据库中数据表的配置信息;
数据字典配置模块,用于根据所述业务数据库中数据表的配置信息配置数据字典,所述数据字典中包含测试用数据字段的定义信息;
数据生成策略配置模块,用于针对测试用数据字段,配置数据生成策略;其中,所述数据字典中和/或所述数据生成策略中,定义有测试用数据字段之间的依赖约束条件;
基础数据池生成模块,用于根据所述数据字典以及所述数据生成策略生成测试用数据,并将生成的测试用数据存储于N个基础数据池,N>1;其中,所述基础数据池中存储的测试用数据满足唯一性要求,不同的基础数据池存储的测试用数据的类型互不相同。
进一步地,在基础数据生成过程中,所述数据字典中包含测试用数据字段的定义信息,所述测试用数据字段的定义信息包括所述测试用数据字段的基本信息,并包括以下信息中的一种或组合:
所述测试用数据字段的字段默认值,所述字段默认值为根据所述测试用数据字段生成测试用数据时,所生成的测试用数据的默认取值;
所述测试用数据字段所对应的数据生成策略的指示信息,用于指示根据所述测试用数据字段生成测试用数据时,所使用的数据生成策略;
所述测试用数据字段的依赖约束条件,用于指示根据所述测试用数据字段生成测试用数据时所依赖的字段。
进一步地,在基础数据生成过程中,所述数据生成策略包括:
第一测试用数据字段为任意一个测试用数据字段,所述第一测试用数据字段的数据生成策略包括:
第一测试用数据字段的指示信息,所述第一字段为需要使用依赖约束条件的测试用字段;
第二测试用数据字段的指示信息,所述第二字段为所述第一字段依赖的字段;
所述第一测试用数据字段的数据取值规则,所述数据取值规则用于定义所述第一测试用数据字段的取值范围,且规定所述第一测试用数据字段的取值依赖于所述第二测试用数据字段。
进一步地,所述第一测试用数据字段的数据生成策略中还包括:第一测试用数据字段的数据类型,用于定义第一字段的数据类型。
其中,基础数据池生成模块,具体用于:
根据所述数据字典以及所述数据生成策略生成测试用数据时,若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均定义了所述当前需要生成的测试用数据字段的数据类型,则将前者中的数据类型设置为高优先级,将后者中的数据类型设置为低优先级;
根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的数据类型的优先级,生成测试用数据。
另一方面,所述基础数据池生成模块,具体用于:
根据所述数据字典以及所述数据生成策略生成测试用数据时,若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均包含所述当前需要生成的测试用数据字段的依赖约束条件,则将前者中的依赖约束条件设置为高优先级,将后者中的依赖约束条件设置为低优先级;
根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的依赖约束条件的优先级,生成测试用数据。
基于所述基础数据生成装置,本发明提供一种测试用数据生成装置,包括:
需求分析模块,获取目标测试用数据的生成要求,根据所述目标测试用数据的生成要求确定所述目标测试用数据需要包含的字段;
基础数据池确定模块,用于根据所述目标测试用数据需要包含的字段,确定所需的基础数据池;
测试用数据获取模块,用于从确定出的每个基础数据池中获取相应字段的测试用数据;
测试用数据装配模块,用于将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据。
进一步地,所述需求分析模块还用于:根据所述目标测试用数据需要包含的字段,确定该字段的依赖约束条件;
所述测试用数据获取模块具体用于:
对于每个确定出的基础数据池,在从当前基础数据池中获取相应测试用数据字段的测试用数据时:
获取当前基础数据池中的第二测试用数据字段的依赖约束条件;其中,所述第二测试用数据字段为当前基础数据池中任意一个测试用数据字段,且该测试用数据字段为所述目标测试用数据的需要包含的字段;
若根据所述第二测试用数据字段的依赖约束条件,确定所述第二测试用数据字段的取值依赖于第三测试用数据字段,则先从包含所述第三测试用数据字段的基础数据池中获取所述第三测试用数据字段的数据,再根据已经获取到的第三测试用数据字段的数据的取值以及所述第二测试用数据字段的依赖条件,从当前基础数据池中获取所述第二测试用数据字段的数据。
进一步地,加密模块,用于在所述数据装配模块将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据之前,根据需要加密的字段,对从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据进行加密。
本发明的上述实施例中,一方面,由于根据业务数据库中数据表的配置信息配置数据字典,数据字典中包含测定时用数据字段的定义信息,用来作为生成测试用数据的依据之一,与现有技术中通过手动录入测试数据的方式相比,可以提高测试数据的生成效率;另一方面,数据字典中和/或数据生成策略中,定义有测试用数据字段之间的依赖约束条件,从而根据所述数据字典以及所述数据生成策略生成测试用数据时,可体现出数据字段之间的依赖关系,解决了现有技术中通过脚本生成测试数据的方式无法体现数据间的依赖关系的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基础数据生成方法流程示意图;
图2为本发明实施例提供的基础数据生成装置结构示意图;
图3为本发明实施例提供的测试用数据生成方法流程示意图;
图4为本发明实施例提供的测试用数据生成装置结构示意图;
图5为本发明实施例提供的基础数据生成装置的软件系统示意图;
图6为本发明实施例提供的测试用数据生成装置的软件系统示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了基础数据生成方法,如图1所示,所述方法包括:
步骤101、获取业务数据库中数据表的配置信息。
步骤102、根据所述业务数据库中数据表的配置信息配置数据字典,所述数据字典中包含测试用数据字段的定义信息。
步骤103、针对测试用数据字段,配置数据生成策略;其中,所述数据字典中和/或所述数据生成策略中,定义有测试用数据字段之间的依赖约束条件。
步骤104、根据所述数据字典以及所述数据生成策略生成测试用数据,并将生成的测试用数据存储于N个基础数据池,N>1;其中,所述基础数据池中存储的测试用数据满足唯一性要求,不同的基础数据池存储的测试用数据的类型互不相同。
上述流程的步骤执行顺序仅为一种示例,本发明实施例并不限于上述执行顺序,比如,步骤102和步骤103可以交换顺序或者并行执行。
上述流程可由基础数据生成装置实现。图2示例性地示出了所述基础数据生成装置的结构示意图。需要说明的是,图2仅为基础数据生成装置的一种示例,本发明实施例并不限于图2所示的结构,只要包含所述基础数据生成装置所完成的功能的其他装置,都应包含在本发明的保护范围内。
如图2所示,所述基础数据生成装置可包括:配置信息获取模块21、数据字典配置模块22、数据生成策略配置模块23以及基础数据池生成模块24,其中:
配置信息获取模块21,用于获取业务数据库中数据表的配置信息;
数据字典配置模块22,用于根据所述业务数据库中数据表的配置信息配置数据字典,所述数据字典中包含测试用数据字段的定义信息;
数据生成策略配置模块23,用于针对测试用数据字段,配置数据生成策略;其中,所述数据字典中和/或所述数据生成策略中,定义有测试用数据字段之间的依赖约束条件;
基础数据池生成模块24,用于根据所述数据字典以及所述数据生成策略生成测试用数据,并将生成的测试用数据存储于N个基础数据池,N>1;其中,所述基础数据池中存储的测试用数据满足唯一性要求,不同的基础数据池存储的测试用数据的类型互不相同。
基于上述基础数据生成装置,图1所示流程中的步骤101可由配置信息获取模块21执行,步骤102可由数据字典配置模块22执行,步骤103可由数据生成策略配置模块23执行,步骤104可由基础数据池生成模块24执行。
上述基础数据生成装置可由软件方式实现。进一步地,上述基础数据生成装置中的各模块可分布于计算机集群。比如,可在多个计算机设备上配置基础数据池生成模块24,不同的计算机设备上配置的基础数据池生成模块24负责不同的基础数据池的生成过程,这样可实现并行处理,提高处理效率。
下面以图2所示的基础数据生成装置为例,对图1所示的流程的具体实现过程进行详细描述。
在步骤101中,配置信息获取模块21可首先通过连接业务数据库或者预先导入的数据表模板获取到配置信息。所述配置信息可以包括数据表中各字段的基本信息,还可以进一步包括数据表的表名。
所述字段的基本信息可包括:字段的名称、字段名描述、字段类型、字段宽度、是否是主键,是否为空等。
所述数据表模板可包含数据表字段的基本信息,数据表模板可包含多页,每页中包含一个数据表的表结构信息,其中,一个数据表的表结构信息中至少包含该数据表的各字段的基本信息。数据表模板中还可包含数据表名称,比如,模板中的每页中可保存数据表名称,例如user.table1,其中,user代表用户名,table1代表数据表名称,user.table1表示用户user的数据表table1。数据表模板配置完成后将其导入,配置信息获取模块21根据导入的数据表模板可获取到数据表中各字段的基本信息。
在步骤102中,数据字典配置模块22所配置的数据字典可包括:测试用数据字段的定义信息,所述测试用数据字段的定义信息包括所述测试用数据字段的基本信息,并包括以下信息中的一种或组合:
所述测试用数据字段的字段默认值,所述字段默认值为根据所述测试用数据字段生成测试用数据时,所生成的测试用数据的默认取值;
所述测试用数据字段所对应的数据生成策略的指示信息,用于指示根据所述测试用数据字段生成测试用数据时,所使用的数据生成策略;
所述测试用数据字段的依赖约束条件,用于指示根据所述测试用数据字段生成测试用数据时所依赖的字段。
如前所述,所述测试用数据字段的基本信息具体包括:字段的名称、字段名描述、字段类型、字段宽度、是否是主键,是否为空等。
优选地,数据字典可存储为配置文件,配置文件的格式可采用json格式,json格式可读性强,易于解析和编辑,体积小,且信息存储不依赖数据库。
下面以员工信息表的结构为例进一步解释所述数据字典包含的测试用数据字段的定义信息。
员工信息表中的字段定义信息使用json文件格式存储,该json文件的内容举例如下:
以下对上述例子中所定义的测试用数据字段定义信息的含义作出解释:
"TabColumnId":字段的编号或序号;
"TabColumn":字段名称;
"ColumnCommon":字段名称描述;
"ColumnType":字段的类型;
"ColumnLen":字段的长度;
"IsPrimkey":当前字段是否是主键,如果是则为“true”,否则为“false”;
"IsNull":当前字段是否允许为空,如果是则为“true”,否则为“false”;
"Default":默认值;
"Strategy":当前字段对应的数据生成策略名称;
"Ref":当前字段所依赖的字段,例如:身份证号码中的生日部分,需要依赖生日字段的信息,此项填写的是生日字段的字段名。
其中,"Default"和/或"Strategy"允许为空。如果"Strategy"一项为空,即,没有为当前字段配置数据生成策略,则在根据该字段生成测试用数据时按"Default"一项设置的默认值确定测试用数据的取值;如果"Strategy"一项不为空,即,为当前字段配置了数据生成策略,则在根据该字段生成测试用数据时使用"Strategy"一项所指示出的数据生成策略生成测试用数据。
每个字段的"Strategy"项只能指定一个数据生成策略名称,多个字段的"Strategy"项可指定相同的数据生成策略名称。
在步骤103中,数据生成策略配置模块23为测试用数据字段配置数据生成策略。以为第一测试用数据字段配置数据生成策略为例,第一测试用数据字段为任意一个测试用数据字段,数据生成策略配置模块23为所述第一测试用数据字段配置的数据生成策略可包括:
第一测试用数据字段的指示信息,所述第一字段为需要使用依赖约束条件的测试用字段;
第二测试用数据字段的指示信息,所述第二字段为所述第一字段依赖的字段;
所述第一测试用数据字段的数据取值规则,所述数据取值规则用于定义所述第一测试用数据字段的取值范围,且规定所述第一测试用数据字段的取值依赖于所述第二测试用数据字段。
进一步地,所述第一测试用数据字段的数据生成策略还可包括:第一测试用数据字段的数据类型,用于定义第一字段的数据类型。
优选地,测试用数据的生成策略可存储为配置文件,一个配置文件中可包含一个或多个测试用数据字段的生成策略。配置文件的格式可采用json格式,json格式可读性强,易于解析和编辑,体积小,且信息存储不依赖数据库。
下面以员工信息测试用数据的生成策略为例,说明生成策略的配置方法,详见如下:
员工信息测试用数据的生成策略使用json文件格式存储,该json文件的内容举例如下:
上述代码描述的数据生成策略名称为“StrategyTempEmployees”。该数据生成策略中定义了员工工号、员工姓名、员工性别、出生年月日和证件号码几个数据项的生成策略。
下面对上述代码中数据生成策略的内容作出解释:
1、策略名称(Strategy_name):字母开头加数字和下划线组成为一个能够描述生成策略的名称,例如:"Strategy_Employees_id"员工工号。在同一个数据工程内,生成策略名称不可以重复。
2、测试用数据字段的数据类型(type):用于定义字段的数据类型,数据类型一般包括数值型、字符型、枚举类型、布尔型、日期型、日期+时间,空值。该项内容可选。
3、数据取值范围(Scope):用于定义测试用数据字段的取值范围。取值范围可使用表达式进行定义,表达式可以使用生成方式定义的关键字。例如:生成字段是员工学历字段,可选值为小学、初中、高中、大专、本科、研究生、博士。表达式为:“Scope”:”choose(‘小学,初中,高中,大专,本科,研究生,博士’,random)”,用于表示从上述范围内随机挑选一个值。
4、生成格式(Format):描述生成数据的格式。例如:日期型“Format”:”YYYY/MM/DD”,表示4位数字表示年份、2位表示月份、2位表示日期,不够位数前方补零,分隔符是斜杠。数字整数“Format”:”########”,表示8位整数,“Format”:”#########.##”表示10位长有小数点的浮点数,小数点后保留2位。
5、指示信息“X”:该项可填写字段名称或字段ID,以表明该字段名称或字段ID所对应的字段为需要使用依赖约束条件的测试用字段。
6、指示信息“Strategy_refer”:该项可填写字段名或字段ID,以表明该字段名或字段ID所对应的字段为“X”项所指示的字段的依赖字段。例如:在上述"Strategy_Employees_identification"即证件号码的生成策略信息中,"X"项指示出的字段为"identification"字段,"Strategy_refer"项指示出的字段为"birthday",表明identification(身份证)字段的取值依赖于birthday(生日)字段的取值。
上述各项信息中的数据取值范围(Scope)、指示信息(Strategy_refer)以及指示信息“X”可配合使用,用来定义数据取值规则。例如,在上述"Strategy_Employees_identification"即证件号码的生成策略信息中,"X"项指示出的字段为"identification"字段,"Strategy_refer"项指示出的字段为"birthday",数据取值范围"Scope"项的内容为"tochar(rand(100000,900000),'######')+Ref+tochar(rand(1000,9000),'####')",表示证件号码的前6位从(100000,900000)范围内随机生成,中间8位取值依赖于"Strategy_refer"项所指示出的生日字段的取值,最后4位从(1000,9000)范围内随机生成,证件号码被转换为字符串形式。
当然,上述仅为数据取值范围"Scope"项的内容的一种示例,该项内容还可以包含各种内容或规则的组合,比如,使用随机数、按一定范围数值、固定数值、固定数+随机数组合、固定日期、日期范围,各种字符的枚举、字符串的截取、类型转换类等等。
下面针对其中生日和身份证号码进一步进行解释:
例1:生成员工的出生日期为1960至1990年内范围,定义语法:
“X”:“birthday”,表示X对应的是“birthday”字段;
“Ref”:“null”,生成数据依赖字段如果为null表示不依赖其他字段;
“Scope”:“19600101<=X<=19901231”,表示生成范围从1960年1月1日至1990年12月31日
“Type”:”date”,目标生成类型为日期型,默认格式为“YYYY-MM-DD”
“Format”:“YYYY/MM/DD”,设定生成格式,如果未指定使用默认格式;
例2:员工身份证号生成,使用birthday生成结果转换成身份证号码中间的年月日,定义语法:
“X”:“identification”,表示X对应的是“identification”字段;
“Ref”:“birthday”,指定X生成时依赖“birthday”字段的生成结果;
“Scope”:“tochar(rand(100000,900000),'######')+Ref+tochar(rand(1000,9000),'####')”,指前六后四采用随机数生成,rand是随机函数,圆括号中的数字范围是随机数的生成范围,生成的随机数直接转换为字符,转换过程中前面不够位数补零,中间采用参考字段拼装生成;
“Type”:“char”,目标生成类型为字符型;
“Format”:“null”,设定生成格式,如果未指定使用默认格式,字符串格式默认为null;
生成策略配置文件可以事先定义好,也可以根据数据字典配置信息进行定义。生成策略配置文件在一个或者多个数据工程中可以重复使用,也可以采用json格式描述。每个配置文件中可以配置多个数据生成策略模板,每个数据生成策略模板中也可以有多个生成策略,但是在同一个数据工程下测试用数据的生成策略模板名称和生成策略名称不可以重复,例如上面给出的例子,模板名称StrategyTempEmployees和生成策略名称Strategy_name不相同。
在步骤104中,基础数据池生成模块24根据数据字典以及数据生成策略生成测试用数据,并将生成的测试用数据存储于N个基础数据池。
进一步地,根据数据字典以及数据生成策略生成测试用数据时,若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均定义了所述当前需要生成的测试用数据字段的数据类型,则将前者中的数据类型设置为高优先级,将后者中的数据类型设置为低优先级;根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的数据类型的优先级,生成测试用数据。
进一步地,根据数据字典以及数据生成策略生成测试用数据时,若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均包含所述当前需要生成的测试用数据字段的依赖约束条件,则将前者中的依赖约束条件设置为高优先级,将后者中的依赖约束条件设置为低优先级;根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的依赖约束条件的优先级,生成测试用数据。比如,如果数据字典中第一数据字段的字段定义信息中的"Ref"项指定了第二数据字段的名称,第一数据字段的数据生成策略中的"Strategy_refer"项指定了第三数据字段的名称,则在生成第一数据字段的测试用数据时,以数据字典中第一数据字段的"Ref"项所指定了第二数据字段的取值作为依据来生成该第一数据字段的测试用数据。
所述基础数据池中存储的测试用数据满足唯一性要求,不同的基础数据池存储的测试用数据的类型互不相同。基础数据池的分类的原则是依据关系型数据库三范式设计原则即数据表中每列是不可分割数据项并且和主关键字直接相关原则,把数据表中的数据项按照数据含义和数据之间的依赖关系划分,相似含义的会放置到同一个基础数据池中生成,因此基础数据池中存储的测试用数据满足唯一性要求,不同的基础数据池存储的测试用数据的类型互不相同。
例如:一个客户下订单购买产品的简单模型,涉及到客户、订单、交易明细、产品和地址五类信息。其中客户有500000,每日订单交易有2000000笔,交易明细每日4000000笔,产品有10000种,每个客户最少有一个生成地址,最多可以有5个地址。生成信息项的需求如下:
客户的基本信息:客户编号、客户名称、客户身份证、客户卡号、客户手机号、客户地址等信息。
客户的地址信息:地址编号、国家、省、地市、街道、门牌号等信息。
订单信息:订单编号、客户编号、客户地址、产品编号、交易单价、交易数量、总金额、交易时间等信息。
产品信息:产品编号、产品名称等信息。
这些信息模型的数据依赖关系如下:
客户身份证号是唯一的识别标识;
一个客户可以有多个地址信息,一个地址也可以多个客户使用;
一个客户可以有多个订单,每个订单只有一个客户,对应一个地址;
一个客户可以购买多个相同或不同产品,一个订单对应多个产品,一个产品也可以被多个客户,多次购买;
一个客户可以有多个手机号和银行卡号,银行卡号和手机号只能属于一个人。
根据数据生成需求,依据关系型数据库三范式设计原则,将信息抽象为七个基础数据池:
1、客户信息基础数据池;
客户信息基础数据池包括:客户编号、客户名称、客户身份证号。基础数据池内客户编号是唯一标识,身份证号码不可以重复。
2、手机号基础数据池;
手机号基础数据池内包括:手机号码,基础数据池内手机号码是唯一的。
3、银行卡号基础数据池;
银行卡号基础数据池包括:银行卡号,基础数据池内银行卡号是唯一的。
4、地址信息基础数据池;
地址信息基础数据池包括:地址编号、国家、省、地市、街道和门牌号,其中地址编号在基础数据池内是唯一的不可重复。
5、订单信息基础数据池
订单信息基础数据池包括:订单编号、订单总金额和订单时间,其中订单号在基础数据池内是唯一的。
6、交易明细信息基础数据池
交易明细信息基础数据池内包括:交易流水号、交易单价、交易数量、交易金额和交易时间。
7、产品信息基础数据池
产品信息基础数据池包括:产品编号、产品名称,其中产品编号在基础数据池内是唯一的。
基础数据池生成模块24根据基础数据池的生成规则,启动7个数据生成实例进程,分别控制对应基础数据池的数据生成。这样在基础数据池会生成客户基本信息、手机号、银行卡号、地址信息、订单基本信息、交易明细和产品基本信息7类基础数据,每个数据池之间相互独立,都有自身的主键保证数据池内数据唯一性。这样解决了数据间的依赖关系问题。
图3示例性地描述了基础数据生成装置的软件系统架构。首先,启动生成数据的工程,以启动配置信息获取模块21、数据字典配置模块22、数据生成策略配置模块23以及基础数据池生成模块24。配置信息获取模块21启动后,获取业务数据库中数据表的配置信息;数据字典配置模块22启动后,根据所述业务数据库中数据表的配置信息配置数据字典;数据生成策略配置模块23启动后,针对测试用数据字段配置数据生成策略。数据字典配置模块22所配置的数据字典,与数据生成策略配置模块23所生成的数据生成策略,一起构成了测试用数据生成规则。基础数据池生成模块24启动后,加载数据字典以及数据生成策略文件,并启动多个“基础数据池生成模块实例进程”,所述多个实例进程并行地执行以下操作:根据所述数据字典以及所述数据生成策略生成测试用数据,并将生成的测试用数据存储于基础数据池。
基于基础数据生成方法,本发明实施例提供了测试用数据生成方法,如图4所示,所述方法包括:
步骤201、获取目标测试用数据的生成要求,根据所述目标测试用数据的生成要求确定所述目标测试用数据需要包含的字段。
步骤202、根据所述目标测试用数据需要包含的字段,确定所需的基础数据池。
步骤203、从确定出的每个基础数据池中获取相应字段的测试用数据。
步骤204、将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据。
进一步地,在步骤204中,在将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据之前,可先根据需要加密的字段,对从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据进行加密,然后再执行测试用数据装配操作,从而实现对加密数据生成性能的测试。
上述流程可通过测试用数据生成装置实现。图5示例性地示出了所述测试用数据生成装置的结构示意图。需要说明的是,图5仅为测试用数据生成装置的一种示例,本发明实施例并不限于图5所示的结构,只要包含所述测试用数据装置所完成的功能的其他装置,都应包含在本发明的保护范围内。
如图5所示,所述测试用数据生成装置可包括:需求分析模块31、基础数据池确定模块32、测试用数据获取模块33以及测试用数据装配模块34,其中:
需求分析模块31,获取目标测试用数据的生成要求,根据所述目标测试用数据的生成要求确定所述目标测试用数据需要包含的字段;
基础数据池确定模块32,用于根据所述目标测试用数据需要包含的字段,确定所需的基础数据池;
测试用数据获取模块33,用于从确定出的每个基础数据池中获取相应字段的测试用数据;
测试用数据装配模块34,用于将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据。
进一步地,上述装置还可进一步包括数据加密模块35,该数据加密模块35用于:在测试用数据装配模块34将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据之前,根据需要加密的字段,对从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据进行加密,进而实现对加密数据生成性能的测试。
基于上述测试用数据生成装置,图4所示流程中的步骤201可由需求分析模块31执行,步骤202可由基础数据池确定模块32执行,步骤203可由测试用数据获取模块33执行,步骤204可由测试用数据装配模块34执行。
上述测试用数据生成装置可由软件方式实现。进一步地,上述测试用数据生成装置中的各模块可分布于计算机集群。比如,可在多个计算机设备上配置测试用数据装配模块34,不同的计算机设备上配置的测试用数据装配模块34负责不同的测试用数据的生成过程,这样可实现并行处理,提高处理效率。
下面以图5所示的测试用数据生成装置为例,对图4所示的流程的具体实现过程进行详细描述。
在步骤201中,需求分析模块31除了获取目标测试用数据的生成要求,根据所述目标测试用数据的生成要求确定所述目标测试用数据需要包含的字段以外,还可根据所述目标测试用数据需要包含的字段,确定该字段的依赖约束条件。
相应地,在步骤203中,对于每个确定出的基础数据池,测试用数据获取模块33在从确定出的每个基础数据池中获取相应字段的测试用数据时,可获取当前基础数据池中的第二测试用数据字段的依赖约束条件,其中,所述第二测试用数据字段为当前基础数据池中任意一个测试用数据字段,且该测试用数据字段为所述目标测试用数据的需要包含的字段;若根据所述第二测试用数据字段的依赖约束条件,确定所述第二测试用数据字段的取值依赖于第三测试用数据字段,则先从包含所述第三测试用数据字段的基础数据池中获取所述第三测试用数据字段的数据,再根据已经获取到的第三测试用数据字段的数据的取值以及所述第二测试用数据字段的依赖条件,从当前基础数据池中获取所述第二测试用数据字段的数据。
下面以客户信息测试用数据的生成为例,对上述流程进行详细说明。
客户信息测试用数据中需要包括客户编号、客户名称、客户身份证号、客户卡号、客户手机号等数据字段。这些字段的定义以及数据生成策略等信息可参见前述实施例。
在步骤202中,基础数据池确定模块32可以确定所用到的基础数据池包括客户信息基础数据池、手机号基础数据池、银行卡号基础数据池、客户生日基础数据池。客户信息基础数据池中的身份证字段的依赖约束条件为客户的生日日期,因此,基础数据池确定模块32可先从生日基础数据池中取得数据,再根据身份证字段的取值范围表达式:
"Scope":"tochar(rand(100000,900000),'######')+Ref+tochar(rand(1000,9000),'####')";利用生日基础数据池数据生成身份证号这个数据字段的数据。
在步骤204中,测试用数据装配模块34可按照目标测试用数据的结构和顺序将数据从基础数据池中依次取出,依据最后输出的格式和路径生成指定格式的测试用数据。输出格式支持excel文件、文本文件、关系型数据库表、SQL等。
图6示例性地描述了测试用数据生成装置的软件系统架构。
首先启动生成测试用数据的工程,以启动需求分析模块31、基础数据池确定模块32、测试用数据获取模块33、测试用数据装配模块34、数据加密模块35。需求分析模块31启动后,获取目标测试用数据的生成要求,根据所述目标测试用数据的生成要求确定所述目标测试用数据需要包含的字段;如果需要包含的字段中有需要加密的字段,启动数据加密模块35对字段进行加密;基础数据池确定模块32启动后,根据所述目标测试用数据需要包含的字段,确定所需的基础数据池;测试用数据获取模块33启动后,从确定出的每个基础数据池中获取相应字段的测试用数据;测试用数据装配模块34启动后,根据需要加载加密算法,并启动多个“测试用数据实例装配进程”,所述多个实例进程并行地执行以下操作:将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据,所述目标测试用数据的输出格式支持excel文件、文本文件、数据库表、SQL等。
在多个基础数据池生成完成的基础上,测试用数据装配模块34根据数据加密模块35判断是否有信息项加密,有需要加密的信息项就调用数据加密模块35,测试用数据生成工程通过需求分析模块31、基础数据池确定模块32、测试用数据获取模块33的加载,确定相应测试用数据字段的测试用数据,测试用数据装配模块34启动多个数据装配实例进程生成目标格式的测试用数据。
例如:接续本文示例,目标测试用数据中包括:客户编号、客户名称、客户身份证、客户卡号、客户手机号、客户地址编号信息。
单独生成客户信息的应用场景,测试用数据装配模块34需要从下述几个基础数据池取相应的信息:
客户信息基础数据池:客户编号、客户名称、客户身份证号;
地址信息基础数据池:地址编号;
手机号基础数据池:客户手机号;
银行卡号基础数据池:客户卡号;
生成数据工程根据从目标测试用数据字段获取的字段信息分别从对应的基础数据池中取一条数据,按目标测试用数据的顺序,拼装成一条客户信息数据,写入到客户信息的目标格式中。例如:客户信息需要生成500000条,客户信息基础数据池会生成500000条客户信息,银行卡号基础数据池同样生成500000个银行卡号。因为手机号和地址可以存在重复,基础数据池生成的手机号和地址信息可以为100000条。这样客户信息中手机号和地址信息拼装过程,可以选择随机从手机号和地址基础数据池读取,或者按顺序读取手机号和地址信息进行组合,一个手机号和地址存在有多个客户使用的情况,这也能够符合业务场景对业务数据逻辑的需要。最终数据生成的总量按主体原则,客户信息的主体就是客户基础数据池的信息为主体,生成的数据量也以客户基础数据池的信息为主,测试用数据装配模块34最终输出到客户信息结果容器的数据量有500000条。
生成客户信息、订单信息、交易明细的场景,需要启动多个数据装配实例进程,根据配置映射,分别从对应基础数据池的取数,拼装成一条数据,分别写入到客户信息、订单信息和交易明细的目标格式中。除了上述生成客户信息的部分,生成订单信息需要从客户信息基础数据池中获取客户编号,从订单信息中获取订单编号、订单总金额和订单时间,从地址信息基础数据池中获得地址编号;生成交易信息,需要从交易基础数据池中获得交易流水号、交易单价、交易数量、交易金额和交易时间,以及从订单信息基础数据池中获得订单编号,从客户基础数据池中,获得客户编号。测试用数据装配模块34使用基础数据池的数据按最终需求结果,从基础数据池中读取相应的数据项,组装成结果数据的结构,这样不仅可以避免数据不一致,同时也解决了数据间的依赖关系问题。
需要说明的是,现在很多互联网公司系统都是分布式的,开发环境和测试环境也是分布在多台服务器的集成环境中,造数难度很大,采用本发明可以解决多服务器,复杂环境下测试用数据的批量生成需求,而且生成数据工程复用程度高。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (16)

1.一种基础数据生成方法,所述基础数据用来生成测试用数据,其特征在于,该方法包括:
获取业务数据库中数据表的配置信息;
根据所述业务数据库中数据表的配置信息配置数据字典,所述数据字典中包含测试用数据字段的定义信息,所述测试用数据字段的定义信息包括所述测试用数据字段的基本信息,并包括以下信息中的一种或组合:所述测试用数据字段的字段默认值,所述字段默认值为根据所述测试用数据字段生成测试用数据时,所生成的测试用数据的默认取值;所述测试用数据字段所对应的数据生成策略的指示信息,用于指示根据所述测试用数据字段生成测试用数据时,所使用的数据生成策略;所述测试用数据字段的依赖约束条件,用于指示根据所述测试用数据字段生成测试用数据时所依赖的字段;
针对测试用数据字段,配置数据生成策略;其中,所述数据字典中和/或所述数据生成策略中,定义有测试用数据字段之间的依赖约束条件;
根据所述数据字典以及所述数据生成策略生成测试用数据,并将生成的测试用数据存储于N个基础数据池,N>1;其中,所述基础数据池中存储的测试用数据满足唯一性要求,不同的基础数据池存储的测试用数据的类型互不相同。
2.根据权利要求1所述的方法,其特征在于,第一测试用数据字段为任意一个测试用数据字段,所述第一测试用数据字段的数据生成策略包括:
第一测试用数据字段的指示信息,所述第一字段为需要使用依赖约束条件的测试用字段;
第二测试用数据字段的指示信息,所述第二字段为所述第一字段依赖的字段;
所述第一测试用数据字段的数据取值规则,所述数据取值规则用于定义所述第一测试用数据字段的取值范围,且规定所述第一测试用数据字段的取值依赖于所述第二测试用数据字段。
3.根据权利要求2所述的方法,其特征在于,所述第一测试用数据字段的数据生成策略中还包括:
第一测试用数据字段的数据类型,用于定义第一字段的数据类型。
4.根据权利要求3所述的方法,其特征在于,所述根据所述数据字典以及所述数据生成策略生成测试用数据,包括:
若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均定义了所述当前需要生成的测试用数据字段的数据类型,则将前者中的数据类型设置为高优先级,将后者中的数据类型设置为低优先级;
根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的数据类型的优先级,生成测试用数据。
5.根据权利要求1所述的方法,其特征在于,所述根据所述数据字典以及所述数据生成策略生成测试用数据,包括:
若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均包含所述当前需要生成的测试用数据字段的依赖约束条件,则将前者中的依赖约束条件设置为高优先级,将后者中的依赖约束条件设置为低优先级;
根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的依赖约束条件的优先级,生成测试用数据。
6.一种基于如权利要求1至5中任一项所述的方法实现的测试用数据生成方法,其特征在于,该方法包括:
获取目标测试用数据的生成要求,根据所述目标测试用数据的生成要求确定所述目标测试用数据需要包含的字段;
根据所述目标测试用数据需要包含的字段,确定所需的基础数据池;
从确定出的每个基础数据池中获取相应字段的测试用数据;
将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据。
7.根据权利要求6所述的方法,其特征在于,还包括:根据所述目标测试用数据需要包含的字段,确定该字段的依赖约束条件;
对于每个确定出的基础数据池,从当前基础数据池中获取相应测试用数据字段的测试用数据,包括:
获取当前基础数据池中的第二测试用数据字段的依赖约束条件;其中,所述第二测试用数据字段为当前基础数据池中任意一个测试用数据字段,且该测试用数据字段为所述目标测试用数据的需要包含的字段;
若根据所述第二测试用数据字段的依赖约束条件,确定所述第二测试用数据字段的取值依赖于第三测试用数据字段,则先从包含所述第三测试用数据字段的基础数据池中获取所述第三测试用数据字段的数据,再根据已经获取到的第三测试用数据字段的数据的取值以及所述第二测试用数据字段的依赖条件,从当前基础数据池中获取所述第二测试用数据字段的数据。
8.根据权利要求6所述的方法,其特征在于,所述将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据之前,包括:
根据需要加密的字段,对从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据进行加密。
9.一种基础数据生成装置,其特征在于,该装置包括:
配置信息获取模块,用于获取业务数据库中数据表的配置信息;
数据字典配置模块,用于根据所述业务数据库中数据表的配置信息配置数据字典,所述数据字典中包含测试用数据字段的定义信息,所述测试用数据字段的定义信息包括所述测试用数据字段的基本信息,并包括以下信息中的一种或组合:所述测试用数据字段的字段默认值,所述字段默认值为根据所述测试用数据字段生成测试用数据时,所生成的测试用数据的默认取值;所述测试用数据字段所对应的数据生成策略的指示信息,用于指示根据所述测试用数据字段生成测试用数据时,所使用的数据生成策略;所述测试用数据字段的依赖约束条件,用于指示根据所述测试用数据字段生成测试用数据时所依赖的字段;
数据生成策略配置模块,用于针对测试用数据字段,配置数据生成策略;其中,所述数据字典中和/或所述数据生成策略中,定义有测试用数据字段之间的依赖约束条件;
基础数据池生成模块,用于根据所述数据字典以及所述数据生成策略生成测试用数据,并将生成的测试用数据存储于N个基础数据池,N>1;其中,所述基础数据池中存储的测试用数据满足唯一性要求,不同的基础数据池存储的测试用数据的类型互不相同。
10.根据权利要求9所述的装置,其特征在于,第一测试用数据字段为任意一个测试用数据字段,所述第一测试用数据字段的数据生成策略包括:
第一测试用数据字段的指示信息,所述第一字段为需要使用依赖约束条件的测试用字段;
第二测试用数据字段的指示信息,所述第二字段为所述第一字段依赖的字段;
所述第一测试用数据字段的数据取值规则,所述数据取值规则用于定义所述第一测试用数据字段的取值范围,且规定所述第一测试用数据字段的取值依赖于所述第二测试用数据字段。
11.根据权利要求10所述的装置,其特征在于,所述第一测试用数据字段的数据生成策略中还包括:
第一测试用数据字段的数据类型,用于定义第一字段的数据类型。
12.根据权利要求11所述的装置,其特征在于,所述基础数据池生成模块,具体用于:
根据所述数据字典以及所述数据生成策略生成测试用数据时,若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均定义了所述当前需要生成的测试用数据字段的数据类型,则将前者中的数据类型设置为高优先级,将后者中的数据类型设置为低优先级;
根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的数据类型的优先级,生成测试用数据。
13.根据权利要求9所述的装置,其特征在于,所述基础数据池生成模块,具体用于:
根据所述数据字典以及所述数据生成策略生成测试用数据时,若当前需要生成的测试用数据所对应的字段定义信息中以及数据生成策略中,均包含所述当前需要生成的测试用数据字段的依赖约束条件,则将前者中的依赖约束条件设置为高优先级,将后者中的依赖约束条件设置为低优先级;
根据所述数据字典中所述当前需要生成的测试用数据所对应的字段定义信息、所述当前需要生成的测试用数据所对应的数据生成策略,以及所设置的依赖约束条件的优先级,生成测试用数据。
14.一种基于如权利要求9至13中任一项所述的装置实现的测试用数据生成装置,其特征在于,该装置包括:
需求分析模块,获取目标测试用数据的生成要求,根据所述目标测试用数据的生成要求确定所述目标测试用数据需要包含的字段;
基础数据池确定模块,用于根据所述目标测试用数据需要包含的字段,确定所需的基础数据池;
测试用数据获取模块,用于从确定出的每个基础数据池中获取相应字段的测试用数据;
测试用数据装配模块,用于将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据。
15.根据权利要求14所述的装置,其特征在于,所述需求分析模块还用于:根据所述目标测试用数据需要包含的字段,确定该字段的依赖约束条件;
所述测试用数据获取模块具体用于:
对于每个确定出的基础数据池,在从当前基础数据池中获取相应测试用数据字段的测试用数据时:
获取当前基础数据池中的第二测试用数据字段的依赖约束条件;其中,所述第二测试用数据字段为当前基础数据池中任意一个测试用数据字段,且该测试用数据字段为所述目标测试用数据的需要包含的字段;
若根据所述第二测试用数据字段的依赖约束条件,确定所述第二测试用数据字段的取值依赖于第三测试用数据字段,则先从包含所述第三测试用数据字段的基础数据池中获取所述第三测试用数据字段的数据,再根据已经获取到的第三测试用数据字段的数据的取值以及所述第二测试用数据字段的依赖条件,从当前基础数据池中获取所述第二测试用数据字段的数据。
16.根据权利要求14所述的装置,其特征在于,还包括:
加密模块,用于在所述数据装配模块将从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据装配为目标测试用数据之前,根据需要加密的字段,对从所述每个基础数据池中获取到的相应测试用数据字段的测试用数据进行加密。
CN201510016599.2A 2015-01-13 2015-01-13 一种基础数据生成方法、测试用数据生成方法及其装置 Active CN104615667B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510016599.2A CN104615667B (zh) 2015-01-13 2015-01-13 一种基础数据生成方法、测试用数据生成方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510016599.2A CN104615667B (zh) 2015-01-13 2015-01-13 一种基础数据生成方法、测试用数据生成方法及其装置

Publications (2)

Publication Number Publication Date
CN104615667A CN104615667A (zh) 2015-05-13
CN104615667B true CN104615667B (zh) 2018-01-19

Family

ID=53150109

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510016599.2A Active CN104615667B (zh) 2015-01-13 2015-01-13 一种基础数据生成方法、测试用数据生成方法及其装置

Country Status (1)

Country Link
CN (1) CN104615667B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897205B (zh) * 2015-12-18 2021-01-05 创新先进技术有限公司 一种测试数据生成方法及装置
CN106919374B (zh) * 2015-12-28 2021-06-29 北京京东尚科信息技术有限公司 一种脚本生成方法和装置
CN107229617A (zh) * 2016-03-23 2017-10-03 北京京东尚科信息技术有限公司 一种对指定数据字段进行赋值的方法
CN105930267B (zh) * 2016-04-15 2019-03-12 中国工商银行股份有限公司 一种基于数据库字典的存储过程静态检测方法及系统
CN106649108A (zh) * 2016-12-13 2017-05-10 北京锐安科技有限公司 测试数据的生成方法及装置
CN106649117A (zh) * 2016-12-27 2017-05-10 广州唯品会信息科技有限公司 软件压力测试用数据提供方法及系统
CN107678935B (zh) * 2017-05-10 2020-07-14 平安科技(深圳)有限公司 数据生成方法、终端及计算机可读存储介质
CN107357722B (zh) * 2017-06-22 2020-03-31 微梦创科网络科技(中国)有限公司 一种基于大量测试用户的社交网络服务sns测试系统及方法
CN109522204A (zh) * 2017-09-20 2019-03-26 天津数观科技有限公司 一种测试数据的生成方法
CN107894953A (zh) * 2017-11-21 2018-04-10 中国银行股份有限公司 一种银行应用测试数据的生成方法及装置
CN107895034A (zh) * 2017-11-27 2018-04-10 安徽思帕德信息技术有限公司 一种数据单元输入与综合输出方法
CN108399128A (zh) * 2018-02-28 2018-08-14 深圳前海桔子信息技术有限公司 一种用户数据的生成方法、装置、服务器及存储介质
CN108897525A (zh) * 2018-05-30 2018-11-27 平安普惠企业管理有限公司 测试数据生成方法、装置、计算机设备及存储介质
CN109086145B (zh) * 2018-07-05 2023-04-07 平安科技(深圳)有限公司 数据生成方法、装置及计算机存储介质
CN109327348A (zh) * 2018-08-13 2019-02-12 深圳市佰仟金融服务有限公司 一种测试数据生成方法、装置、服务器及存储介质
CN109308301A (zh) * 2018-09-28 2019-02-05 中国银行股份有限公司 测试数据的获得方法及装置
CN109522303B (zh) * 2018-11-13 2021-06-15 深圳市思迪信息技术股份有限公司 基于Excel配置的数据采集方法、装置及计算机设备
CN109460367A (zh) * 2018-11-16 2019-03-12 四川长虹电器股份有限公司 基于Jmeter可持续集成自动化性能测试的方法
CN109241205A (zh) * 2018-11-21 2019-01-18 南京安讯科技有限责任公司 一种可用于大批量生成关系型模拟数据的方法
CN109785115A (zh) * 2018-12-14 2019-05-21 深圳壹账通智能科技有限公司 测试数据的生成方法、装置和计算机设备
CN110188037B (zh) * 2019-05-13 2024-01-09 北京一览群智数据科技有限责任公司 一种数据模拟方法及装置
CN112286783A (zh) * 2019-07-23 2021-01-29 北京中关村科金技术有限公司 生成数据库插入语句以及进行系统测试的方法、装置
CN110750969B (zh) * 2019-09-29 2023-09-01 望海康信(北京)科技股份公司 一种生成报表的方法及装置
CN111176990B (zh) * 2019-12-23 2023-05-30 深圳壹账通智能科技有限公司 基于数据决策的测试数据生成方法、装置、计算机设备
CN111552698B (zh) * 2020-04-21 2023-06-06 重庆富民银行股份有限公司 一种解决环境差异的sql版本控制系统及方法
CN112035197B (zh) * 2020-08-11 2021-07-13 深圳前海微众银行股份有限公司 一种前端页面的配置方法及装置
CN112559324B (zh) * 2020-11-30 2023-07-07 南京航空航天大学 一种基于应用内视觉挖掘的软件测试用例生成方法
CN114461649A (zh) * 2022-04-11 2022-05-10 成方金融科技有限公司 表数据生成方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902685A (zh) * 2011-07-27 2013-01-30 阿里巴巴集团控股有限公司 基于数据库的工具系统的测试方法及装置
CN103348329A (zh) * 2011-02-18 2013-10-09 惠普发展公司,有限责任合伙企业 生成测试数据
CN103810171A (zh) * 2012-11-06 2014-05-21 深圳市金蝶中间件有限公司 生成限定范围的随机测试数据的方法及系统
CN104133772A (zh) * 2014-08-13 2014-11-05 广东电网公司信息中心 一种自动生成测试数据的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161077B2 (en) * 2009-10-21 2012-04-17 Delphix Corp. Datacenter workflow automation scenarios using virtual databases
US9734214B2 (en) * 2012-06-28 2017-08-15 Entit Software Llc Metadata-based test data generation
US9020988B2 (en) * 2012-12-31 2015-04-28 Smartprocure, Inc. Database aggregation of purchase data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103348329A (zh) * 2011-02-18 2013-10-09 惠普发展公司,有限责任合伙企业 生成测试数据
CN102902685A (zh) * 2011-07-27 2013-01-30 阿里巴巴集团控股有限公司 基于数据库的工具系统的测试方法及装置
CN103810171A (zh) * 2012-11-06 2014-05-21 深圳市金蝶中间件有限公司 生成限定范围的随机测试数据的方法及系统
CN104133772A (zh) * 2014-08-13 2014-11-05 广东电网公司信息中心 一种自动生成测试数据的方法

Also Published As

Publication number Publication date
CN104615667A (zh) 2015-05-13

Similar Documents

Publication Publication Date Title
CN104615667B (zh) 一种基础数据生成方法、测试用数据生成方法及其装置
US11816100B2 (en) Dynamically materialized views for sheets based data
Aizaki et al. Stated preference methods using R
US11755606B2 (en) Dynamically updated data sheets using row links
US11080423B1 (en) System for simulating a de-identified healthcare data set and creating simulated personal data while retaining profile of authentic data
US9280569B2 (en) Schema matching for data migration
US20060064428A1 (en) Methods and apparatus for mapping a hierarchical data structure to a flat data structure for use in generating a report
Heaton Applications of deep neural networks
US9977669B2 (en) Online computing system
CN105677346A (zh) 一种web界面的动态扩展方法和服务器
Purnomo et al. A Study of Green Information Technology Using the Bibliometric Analysis
CN113837631A (zh) 员工评价方法、装置、电子设备及可读存储介质
Boehr et al. Preparing for the future: National Library of Medicine's® project to add MeSH® RDF URIs to its bibliographic and authority records
Lambert et al. Data curation standards and social science occupational information resources
US8037109B2 (en) Generation of repeatable synthetic data
CN113239283B (zh) 一种基于多维度的岗位匹配度计算方法及系统
Alshameri et al. Generating metadata to study and teach about African issues
CN103577533B (zh) 开放式网络计算系统
CN113590845A (zh) 基于知识图谱的文献检索方法、装置、电子设备及介质
CN112966013B (zh) 知识展示方法、装置、设备及可读存储介质
CN116263802B (zh) 一种基于金融领域的计算引擎系统
Schnell et al. Microsimulation of an educational attainment register to predict future record linkage quality
Verma et al. Lagrangian based approach to solve a two level capacitated lot sizing problem
US20210042867A1 (en) System, Method and computer program product for evaluating admissions related data and compute comprehensible scores for further determination, evaluation, and conclusion of applicant-fit in a college or university system.
CN117196901A (zh) 课程设置方案分析方法、装置、设备、介质和程序产品

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant