CN103810171A - 生成限定范围的随机测试数据的方法及系统 - Google Patents

生成限定范围的随机测试数据的方法及系统 Download PDF

Info

Publication number
CN103810171A
CN103810171A CN201210438493.8A CN201210438493A CN103810171A CN 103810171 A CN103810171 A CN 103810171A CN 201210438493 A CN201210438493 A CN 201210438493A CN 103810171 A CN103810171 A CN 103810171A
Authority
CN
China
Prior art keywords
data
test data
random test
row
limited range
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.)
Granted
Application number
CN201210438493.8A
Other languages
English (en)
Other versions
CN103810171B (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.)
Shenzhen Kingdee Tianyanyun Computing Co Ltd
Original Assignee
Shenzhen Kingdee Middleware 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 Shenzhen Kingdee Middleware Co ltd filed Critical Shenzhen Kingdee Middleware Co ltd
Priority to CN201210438493.8A priority Critical patent/CN103810171B/zh
Publication of CN103810171A publication Critical patent/CN103810171A/zh
Application granted granted Critical
Publication of CN103810171B publication Critical patent/CN103810171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种生成限定范围的随机测试数据的方法及系统,所述方法包括以下步骤:根据预先定义的列类型放入测试数据,形成数据字典;其中,所述预先定义的列类型中规定了数据范围;根据用户需求建立列的映射关系和列顺序;根据所述列顺序和列类型从所述数据字典中随机抽取数据,生成随机测试数据。本发明的方法及系统,通过数据字典固化数据的生成方式,只需要简单的配置即可动态生成所有数据均属于特定数据集合、但出现位置和顺序没有规律的测试数据。采用本发明的方案极大的减少了人工参与时间,从而生成限定范围的随机测试数据的速度更快,大量的节约了生成数据的时间,并且能够更好的保证数据的随机性以及绝对保证所生成数据的范围。

Description

生成限定范围的随机测试数据的方法及系统
技术领域
本发明涉及数据库性能测试领域,特别是涉及一种生成限定范围的随机测试数据的方法以及一种生成限定范围的随机测试数据的系统。
背景技术
在数据库性能测试中,需要生成包含一定数据量并且所有数据均属于特定数据集合、但出现位置和顺序没有规律的数据。例如:我们希望生成带有id、name、sex、address列的测试数据,且期望生成的数据符合如下规则:
1、主键id值只能在1000到2000之间;
2、name由三个字的人名构成;
3、sex为‘男’或‘女’;
4、address只包含“深圳南山”和“深圳福田“两种地址。
这种将值范围限定在一定范围内的数据称之为限定范围的数据。如下表:
  主键id   Name   Sex   Address
  1003   张XX   男   深圳南山
  1034   李XX   女   深圳福田
  1902   何XX   男   深圳南山
  1034   李XX   男   深圳福田
  1167   张XX   女   深圳福田
另外,每次生成的数据必须带有随机性,相邻两次生成的数据不应相同,且列数据中不能存有某种明显顺序,如主键ID列内容不能为:1000、1001、1002、…、2000这样的顺序值。
目前,传统的生成限定范围的随机测试数据的方法中,是由测试人员采用手工的方式生成SQL(Structured Query Language,结构化查询语言)语句,然后将SQL语句循环插入到数据库中,以此生成所需数据。然而,上述采用手工方式生成随机测试数据,一方面将耗费大量时间;另一方面,由于受到人为因素(如人员的习惯和工作方法等)的影响,因此无法真正保证数据出现的顺序是随机的,且有些期望加入的数据可能并没有包含在当前数据中。
发明内容
基于此,有必要针对上述由于采用手工方式生成数据所带来的耗费大量时间、无法保证数据的随机性以及无法保证数据范围的问题,提供一种生成限定范围的随机测试数据的方法及系统。
一种生成限定范围的随机测试数据的方法,包括以下步骤:
根据预先定义的列类型放入测试数据,形成数据字典;其中,所述预先定义的列类型中规定了数据范围;
根据用户需求建立列的映射关系和列顺序;
根据所述列顺序和列类型从所述数据字典中随机抽取数据,生成随机测试数据。
一种生成限定范围的随机测试数据的系统,其特征在于,包括:
数据字典生成模块,用于根据预先定义的列类型放入测试数据,形成数据字典;其中,所述预先定义的列类型中规定了数据范围;
映射关系及列顺序建立模块,用于根据用户需求建立列的映射关系和列顺序;
随机测试数据生成模块,用于根据所述列顺序和列类型从所述数据字典中随机抽取数据,生成随机测试数据。
由以上方案可以看出,本发明的一种生成限定范围的随机测试数据的方法及系统,通过预先建立自定义的列类型的方法,把所有限定范围的数据先缓存到一个数据字典中来,然后从这个数据字典中随机抽取数据生成用户所需要的测试数据。本发明的这种通过数据字典固化数据的生成方式,只需要简单的配置即可动态生成所有数据均属于特定数据集合、但出现位置和顺序没有规律的测试数据。本发明的方法及系统与传统采用人工生成SQL语句的方式相比,极大的减少了人工参与时间,从而生成限定范围的随机测试数据的速度更快,大量的节约了生成数据的时间,并且能够更好的保证数据的随机性以及绝对保证所生成数据的范围。
附图说明
图1为一个实施例中一种生成限定范围的随机测试数据的方法流程示意图;
图2为一个实施例中一种生成限定范围的随机测试数据的系统结构示意图。
具体实施方式
以下结合其中的较佳实施方式对本发明方案进行详细阐述。
参见图1所示,一种生成限定范围的随机测试数据的方法,包括以下步骤:
步骤S101,根据预先定义的列类型放入测试数据,形成数据字典,然后进入步骤S102。
本发明实施例中首先根据通用数据类型来建立自定义列类型,即在已有通用数据类型的基础上,定义新的列类型,以便在后续过程中对列内容进行控制。本发明实施例中所形成的数据字典是一种限定的数据集合,其内部数据结构可以参见下表:
Figure BDA00002364426700031
在结构化查询语言中有五种数据类型:字符型、文本型、数值型(包括整数型)、逻辑型和日期型,上表中仅以文本类型和数值型中的整数类型为例进行描述。从上表可知,本发明实施例区别于传统对数据结构的定义方式,在通用数据类型的基础上,创造性的在列类型中规定了数据范围,如上表中:“varchar(5,20)”除了表示数据类型为文本型之外,还表示该列内容长度必须为“>=5,<=20”,只有同时满足上面这两个条件的数据才能被放进数据字典中。
步骤S102,根据用户需求建立列的映射关系和列顺序,然后进入步骤S103。
例如,若用户需要生成id、name两个列组成的测试数据时,则可以到数据字典中检索到相应的自定义列类型,并对其进行匹配和映射,如下表所示:
  用户实际需要的列和类型   对应自定义列
  Id(int类型)   Int(1000)
  Name(varchar文本类型)   varchar(3,3)
步骤S103,根据所述列顺序和列类型,从所述数据字典中随机抽取数据,生成最终的随机测试数据。
根据步骤S102中配置的映射关系,可以抽取到自定义列类型;再根据自定义列类型到数据字典中随机抽取值,即可组合成最终的随机测试数据。如下表所示,在一个实施例中,生成的随机测试数据Id列包含的值只能是int(1000)中提供的值,Name列包含的值只能是varchar(3,3)中提供的值,并且每一列下的值出现顺序是随机分布的,具体参见下表:
  Id   Name
  456   张XX
  345   张XX
  789   王XX
另外,为了保证数据字典中所存放数据的准确性,作为一个较好的实施例,在所述步骤S101形成数据字典之后、步骤S102建立列的映射关系和列顺序之前,还可以包括如下步骤:校验在所述数据字典中所放入的测试数据是否符合所述列类型的规则。校验是否符合规则,首先要看数据类型是否符合,并且在数据类型符合的条件下,还要求数据范围也要符合,这样才算满足条件(即符合所述列类型的规则)。
需要说明的是,在上一步骤中,如果校验的结果是放入的测试数据符合列类型的规则,则说明数据的存入没有错误,因此可以直接进入步骤S 102;但若校验的结果是不符合,则说明之前在放数据存放的时候出错了,因为一般来说不符合规则的测试数据是无法放入的,但在本来不符合规则的数据已经放到数据字典中的情况下,此时需要把放错的数据在数据字典中进行删除。如下表所示是已经经过了校验的数据字典中的测试数据:
  列类型   varchar(3,3)
  用户希望在后续使用的数据   张XX
..   李XX
..   王XX
  列类型  Int(1000)
  用户希望在后续使用的数据   789
  ..   456
  ..   456
  ..   345
作为一个较好的实施例,在所述步骤S103生成随机测试数据之后,还可以包括如下步骤:
将所生成的随机测试数据转换为SQL语句并执行到数据库中;或者是:
将所生成的随机测试数据通过接口的方式提供给用户;其中,所述接口的方式可以包括(但不限于):图形界面、表格、文本文件、Excel等。
另外,与上述一种生成限定范围的随机测试数据的方法相对应的,本发明还提供一种生成限定范围的随机测试数据的系统,如图2所示,包括:
数据字典生成模块101,用于根据预先定义的列类型放入测试数据,形成数据字典;其中,所述预先定义的列类型中规定了数据范围;
映射关系及列顺序建立模块102,用于根据用户需求建立列的映射关系和列顺序;
随机测试数据生成模块103,用于根据所述列顺序和列类型从所述数据字典中随机抽取数据,生成随机测试数据。
作为一个较好的实施例,所述系统还可以包括校验模块,用于在所述形成数据字典之后、建立列的映射关系和列顺序之前,校验在所述数据字典中所放入的测试数据是否符合所述列类型的规则。通过校验模块的执行,可以保证数据字典中所存放数据的准确性。
作为一个较好的实施例,所述系统还可以包括如下两个模块中的任意一个:
转换及执行模块,用于在所述生成随机测试数据之后,将所生成的随机测试数据转换为SQL语句并执行到数据库中;或
接口模块,用于在所述生成随机测试数据之后,将所生成的随机测试数据通过接口的方式提供给用户;其中,所述接口的方式可以包括(但不限于):图形界面、表格、文本文件、Excel等。
本发明的一种生成限定范围的随机测试数据的系统的其它技术特征与上述一种生成限定范围的随机测试数据的方法相同,此处不予赘述。
通过以上方案可以看出,本发明的一种生成限定范围的随机测试数据的方法及系统,通过预先建立自定义的列类型的方法,把所有限定范围的数据先缓存到一个数据字典中来,然后从这个数据字典中随机抽取数据生成用户所需要的测试数据。本发明的这种通过数据字典固化数据的生成方式,只需要简单的配置即可动态生成所有数据均属于特定数据集合、但出现位置和顺序没有规律的测试数据。本发明的方法及系统与传统采用人工生成SQL语句的方式相比,极大的减少了人工参与时间,从而生成限定范围的随机测试数据的速度更快,大量的节约了生成数据的时间,并且能够更好的保证数据的随机性以及绝对保证所生成数据的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种生成限定范围的随机测试数据的方法,其特征在于,包括以下步骤:
根据预先定义的列类型放入测试数据,形成数据字典;其中,所述预先定义的列类型中规定了数据范围;
根据用户需求建立列的映射关系和列顺序;
根据所述列顺序和列类型从所述数据字典中随机抽取数据,生成随机测试数据。
2.根据权利要求1所述的生成限定范围的随机测试数据的方法,其特征在于,在所述形成数据字典之后、建立列的映射关系和列顺序之前,还包括步骤:校验在所述数据字典中所放入的测试数据是否符合所述列类型的规则。
3.根据权利要求1或2所述的生成限定范围的随机测试数据的方法,其特征在于,所述生成随机测试数据之后,还包括步骤:将所生成的随机测试数据转换为SQL语句并执行到数据库中。
4.根据权利要求1或2所述的生成限定范围的随机测试数据的方法,其特征在于,所述生成随机测试数据之后,还包括步骤:将所生成的随机测试数据通过接口的方式提供给用户;所述接口的方式包括:图形界面、表格、文本文件、Excel。
5.一种生成限定范围的随机测试数据的系统,其特征在于,包括:
数据字典生成模块,用于根据预先定义的列类型放入测试数据,形成数据字典;其中,所述预先定义的列类型中规定了数据范围;
映射关系及列顺序建立模块,用于根据用户需求建立列的映射关系和列顺序;
随机测试数据生成模块,用于根据所述列顺序和列类型从所述数据字典中随机抽取数据,生成随机测试数据。
6.根据权利要求5所述的生成限定范围的随机测试数据的系统,其特征在于,所述系统还包括校验模块,用于在所述形成数据字典之后、建立列的映射关系和列顺序之前,校验在所述数据字典中所放入的测试数据是否符合所述列类型的规则。
7.根据权利要求5或6所述的生成限定范围的随机测试数据的系统,其特征在于,所述系统还包括转换及执行模块,用于在所述生成随机测试数据之后,将所生成的随机测试数据转换为SQL语句并执行到数据库中。
8.根据权利要求5或6所述的生成限定范围的随机测试数据的系统,其特征在于,所述系统还包括接口模块,用于在所述生成随机测试数据之后,将所生成的随机测试数据通过接口的方式提供给用户;所述接口的方式包括:图形界面、表格、文本文件、Excel。
CN201210438493.8A 2012-11-06 2012-11-06 生成限定范围的随机测试数据的方法及系统 Active CN103810171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210438493.8A CN103810171B (zh) 2012-11-06 2012-11-06 生成限定范围的随机测试数据的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210438493.8A CN103810171B (zh) 2012-11-06 2012-11-06 生成限定范围的随机测试数据的方法及系统

Publications (2)

Publication Number Publication Date
CN103810171A true CN103810171A (zh) 2014-05-21
CN103810171B CN103810171B (zh) 2017-02-08

Family

ID=50706956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210438493.8A Active CN103810171B (zh) 2012-11-06 2012-11-06 生成限定范围的随机测试数据的方法及系统

Country Status (1)

Country Link
CN (1) CN103810171B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615667A (zh) * 2015-01-13 2015-05-13 联动优势电子商务有限公司 一种基础数据生成方法、测试用数据生成方法及其装置
WO2015176431A1 (zh) * 2014-05-23 2015-11-26 中兴通讯股份有限公司 一种测试数据的生成方法及装置
CN106294102A (zh) * 2015-05-20 2017-01-04 腾讯科技(深圳)有限公司 应用程序的测试方法、客户端、服务器及系统
CN110990208A (zh) * 2019-12-12 2020-04-10 深圳市网心科技有限公司 集群测试文件部署及性能测试方法、计算机设备及介质
CN111984522A (zh) * 2019-05-23 2020-11-24 杭州海康威视系统技术有限公司 一种自动化测试的方法及装置
WO2023030461A1 (zh) * 2021-09-02 2023-03-09 中兴通讯股份有限公司 一种分布式数据库检测方法及装置
US11775878B2 (en) 2020-12-22 2023-10-03 Sas Institute Inc. Automated machine learning test system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004107162A1 (en) * 2003-05-19 2004-12-09 Thought, Inc. Dynamic object-driven database manipulation and mapping system
CN1776643A (zh) * 2004-11-15 2006-05-24 华为技术有限公司 一种软件产品健壮性的测试方法及装置
CN101008952A (zh) * 2007-01-30 2007-08-01 华为技术有限公司 一种持久层生成方法及装置
CN101145162A (zh) * 2007-10-31 2008-03-19 金蝶软件(中国)有限公司 一种数据库动态查询的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004107162A1 (en) * 2003-05-19 2004-12-09 Thought, Inc. Dynamic object-driven database manipulation and mapping system
CN1776643A (zh) * 2004-11-15 2006-05-24 华为技术有限公司 一种软件产品健壮性的测试方法及装置
CN101008952A (zh) * 2007-01-30 2007-08-01 华为技术有限公司 一种持久层生成方法及装置
CN101145162A (zh) * 2007-10-31 2008-03-19 金蝶软件(中国)有限公司 一种数据库动态查询的方法和系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015176431A1 (zh) * 2014-05-23 2015-11-26 中兴通讯股份有限公司 一种测试数据的生成方法及装置
CN104615667A (zh) * 2015-01-13 2015-05-13 联动优势电子商务有限公司 一种基础数据生成方法、测试用数据生成方法及其装置
CN104615667B (zh) * 2015-01-13 2018-01-19 联动优势电子商务有限公司 一种基础数据生成方法、测试用数据生成方法及其装置
CN106294102A (zh) * 2015-05-20 2017-01-04 腾讯科技(深圳)有限公司 应用程序的测试方法、客户端、服务器及系统
CN111984522A (zh) * 2019-05-23 2020-11-24 杭州海康威视系统技术有限公司 一种自动化测试的方法及装置
CN111984522B (zh) * 2019-05-23 2024-02-27 杭州海康威视系统技术有限公司 一种自动化测试的方法及装置
CN110990208A (zh) * 2019-12-12 2020-04-10 深圳市网心科技有限公司 集群测试文件部署及性能测试方法、计算机设备及介质
US11775878B2 (en) 2020-12-22 2023-10-03 Sas Institute Inc. Automated machine learning test system
WO2023030461A1 (zh) * 2021-09-02 2023-03-09 中兴通讯股份有限公司 一种分布式数据库检测方法及装置

Also Published As

Publication number Publication date
CN103810171B (zh) 2017-02-08

Similar Documents

Publication Publication Date Title
CN103810171A (zh) 生成限定范围的随机测试数据的方法及系统
CN104182502B (zh) 一种数据抽取方法及装置
WO2019052209A1 (zh) 数据存储方法、装置及存储介质
CN105069109B (zh) 一种分布式数据库扩容的方法和系统
CN104750727B (zh) 一种列式内存存储查询装置及列式内存存储查询方法
CN106844380A (zh) 一种数据库操作方法、信息处理方法和相应装置
CN103425653A (zh) 实现dicom影像二次检索的方法及系统
CN104750784A (zh) 一种基于Merkle树结构的空间查询完整性验证方法
CN102594798A (zh) 一种连接数据库的代理方法及系统
CN106802958B (zh) Cad数据到gis数据的转换方法及系统
CN103984728B (zh) 用于外包空间数据库的范围查询完整性验证方法
CN103399844B (zh) 报表的生成方法和生成装置
CN105912723A (zh) 一种自定义字段的存储方法
CN103995886A (zh) 一种多维度产品设计知识推送框架与构建方法
CN103617265A (zh) 一种基于本体语义信息的本体查询引擎优化系统
Jiang et al. A Fuzzy Comprehensive Assessment System of Dam Failure Risk Based on Cloud Model.
CN104268238A (zh) 基于开源技术的可配置的成本分摊计算方法
CN103176796A (zh) 一种在autosar中实现复杂数据到信号组的映射方法
CN202395813U (zh) 一种连接数据库的代理系统
CN104699747A (zh) 一种基于高维数据过滤器的近似成员查询方法
CN105808715B (zh) 一种位置一张图的构建方法
CN101516086A (zh) 移动通讯的业务匹配方法
CN104376054B (zh) 一种持久化实例对象的处理方法及装置
CN101866297B (zh) 管理平台生成方法和装置
CN101256487A (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
CB02 Change of applicant information

Address after: South South technology twelve road 518000 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Applicant after: Shenzhen Kingdee middleware Limited by Share Ltd.

Address before: 518057 Guangdong City, Nanshan District province high tech Zone in the middle of the industrial zone of the sparrow tower M-6 building, floor 1, area 3, second, 4

Applicant before: Shenzhen Kingdee Middleware Co., Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: South South technology twelve road 518000 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: Shenzhen Kingdee tianyanyun computing Co., Ltd.

Address before: South South technology twelve road 518000 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee before: Shenzhen Kingdee middleware Limited by Share Ltd.

CP01 Change in the name or title of a patent holder