一种测试数据处理方法、装置、计算机设备和可读存储介质与流程
未命名
07-27
阅读:85
评论:0
1.本发明总体上涉及电数字数据处理领域,具体来说,涉及一种测试数据处理方法、装置、计算机设备和可读存储介质。
背景技术:
2.软件测试是软件开发过程中的一个不可或缺的环节,是保障软件质量的有效手段。从测试内容上看,软件测试包括功能测试和压力测试等。功能测试通常是测试软件产品的所有特性和功能都符合规范和用户需求。压力测试通常是模拟软件实际应用的软硬件环境及用户使用过程的系统负荷,超大负荷地运行测试软件,以测试软件系统的可靠性和稳定性等。测试数据是软件测试的一个重要的方面。生成完备的测试数据是成功进行高质量软件功能测试和压力测试的关键。
3.随着计算机软硬件技术的发展和应用,涉及金融、保险、电子商务和社交网络等的业务应用系统也越来越庞大和复杂。一方面,这些业务应用系统通常需要几十个甚至几百个数据库表,而每一个数据库表会包括许多字段。根据业务逻辑的需要,几乎所有数据库表的若干字段都会有相应的规范或校验规则,这使校验规则的数量很庞大。在进行软件功能测试时,需要针对每一个校验规则设计和生成相应的测试数据。数量庞大的校验规则使得设计和生成测试数据的成为很大的负担。另一方面,在这些系统的实际应用中,每一个数据库表中的记录数量也可能会到达几千万条甚至更多,在进行软件压力测试时,也需要生成如此庞大数量的测试数据。
4.现有的测试数据的处理方法主要是通过人工每次生成单个测试数据或通过软件批量地生成测试数据。在人工方式中,测试人员每次输入期望的一个测试数据,然后利用命令或程序其插入数据库表中。这种人工的方式存在效率低,费时长,并且容易遗漏需要测试的校验规则的技术问题。在软件方式中,测试人员首先设置好测试数据的生成规则和生成数量,然后利用软件重复地进行测试数据的生成和数据库表的插入过程,进而获得所需数量的测试数据。这种软件的方式虽然可以生成大批量的测试数据,但仍至少如下问题:第一、这种方式通常仅针对单个数据库表生成测试数据,难以同时针对具有关联关系的多个数据库表同时生成测试数据;第二、由于针对每一个测试数据都需要执行数据表的插入过程,故当测试数据的数量达到一定级数时,会给系统带来很大的负担,容易造成内存溢出或其它系统异常。
技术实现要素:
5.有鉴于此,本发明的实施例旨在提供一种测试数据处理方法、装置、计算机设备和计算机可读的存储介质,其能够解决现有技术中存在的上述部分或全部技术问题。
6.根据本发明的一个实施例,提供一种测试数据处理方法,包括步骤:
7.s10:获取测试数据配置文件;
8.s20:根据所述测试数据配置文件中的信息,为至少一个数据库表中的每一个所述
数据库表生成一个测试数据单元文件;
9.s30:重复执行所述步骤s20,以为每一个所述数据库表生成多个测试数据单元文件,合并多个所述测试数据单元文件,以形成所述数据库表的测试数据聚合文件。
10.根据本发明的又一个实施例,所述测试数据配置文件包含业务逻辑模型所需的至少一个所述数据库表的表名信息、表结构信息和校验规则信息,所述步骤s20包括;
11.针对每一个所述数据库表,根据所述表结构信息和至少一个校验规则信息中的每一个所述校验规则信息,生成与每一个所述校验规则信息一对一对应的至少一个测试数据,将生成的至少一个所述测试数据存储为所述数据库表的一个测试数据单元文件。
12.根据本发明的又一个实施例,所述测试数据配置文件包含测试数据单元文件数量信息,所述步骤s30包括:
13.根据所述测试数据单元文件数量信息,重复执行所述步骤s20,以为每一个所述数据库表生成多个测试数据单元文件,合并多个所述测试数据单元文件,以形成所述数据库表的测试数据聚合文件。
14.可选择地,所述表名信息、所述表结构信息、所述校验规则信息和所述测试数据单元文件数量信息包含在同一个配置文件中。
15.可选择地,所述配置文件包括xls格式文件。
16.可选择地,所述表名信息、所述表结构信息、所述校验规则信息和所述测试数据单元文件数量信息包含在同一个xls格式的配置文件的不同的工作表中。
17.根据本发明的又一个实施例,所述数据库表的所述表结构信息包括所述数据库表的字段信息,所述字段信息包括字段名称、字段数据类型、字段长度,字段是否允许为空以及字段是否为关联外键等。
18.根据本发明的又一个实施例,至少一个所述数据库表中的每一个所述数据库表的所述测试数据单元文件数量信息为同一个值。
19.根据本发明的又一个实施例,至少一个所述数据库表中的每一个所述数据库表的所述测试数据单元文件数量信息具有各自的值。
20.根据本发明的又一个实施例,根据测试数据的需求数量和至少一个所述数据库表的校验规则的数量获取所述测试数据单元文件数量信息。
21.根据本发明的又一个实施例,根据测试数据的需求数量和至少一个所述数据库表的测试数据单元文件中的测试数据的数量获取所述测试数据单元文件数量信息。
22.根据本发明的又一个实施例,测试数据的需求数量表示所述业务逻辑模型所需的测试数据的总量,换句话说,所述测试数据的需求数量表示至少一个所述数据库表中的各个数据库表所需的测试数据的数量的总和。可选择地,至少一个所述数据库表的校验规则的数量表示至少一个所述数据库表中的各个所述数据库表的校验规则的数量的总和。可选择地,至少一个所述数据库表的测试数据单元文件中的测试数据的数量表示至少一个所述数据库表中的各个所述数据库表的单元测试文件中测试数据的数量的总和。
23.根据本发明的又一个实施例,所述测试数据的需求数量表示至少一个所述数据库中某一个所述数据库表所需的测试数据的数量。可选择地,至少一个所述数据库表的校验规则的数量表示至少一个所述数据库表中的某一个对应的所述数据库表的校验规则的数量。可选择地,至少一个所述数据库表的测试数据单元文件中的测试数据的数量表示至少
一个所述数据库表中的某一个对应的所述数据库表的单元测试文件中测试数据的数量的总和。
24.根据本发明的又一个实施例,所述测试数据的需求数量表示至少一个所述数据库中一部分所述数据库表所需的测试数据的数量的总和。可选择地,至少一个所述数据库表的校验规则的数量表示至少一个所述数据库表中的一部分对应的所述数据库表的校验规则的数量。可选择地,至少一个所述数据库表的测试数据单元文件中的测试数据的数量表示至少一个所述数据库表中的一部分对应的所述数据库表的单元测试文件中测试数据的数量的总和。
25.根据本发明的又一个实施例,所述校验规则信息包含相应的示例数据信息,所述示例数据信息包括字段的预设值、用于生成字段值的函数,用于生成字段值的数据源等中的至少一项。
26.可选择地,其中根据所述数据库表的所述表结构信息和每一个所述校验规则信息,生成与每一个所述校验规则信息一对一对应的至少一个测试数据,包括,针对所述数据库表的每一个所述校验规则信息,根据所述数据库表的字段信息生成所述数据库表的所有字段的临时性数据,把所述校验规则信息所对应的字段的临时性数据替换为利用所述校验规则信息所对应的示例性数据信息所生成的数据,从而得到所述数据库表的一个测试数据。
27.根据本发明的又一个实施例,所述测试数据单元文件的文件格式包括txt、csv、xls、dbf等中的一种。
28.根据本发明的又一个实施例,所述测试数据聚合文件的文件格式包括txt、csv、xls、xml、dbf等中的一种。
29.可选择地,所述测试数据单元文件和所述测试数据聚合文件具有相同的文件格式。
30.根据本发明的又一个实施例,所述校验规则信息仅包括用于生成反向的测试数据的校验规则信息,并且,步骤s20还包括步骤:
31.s21:根据所述数据库表的所述表结构信息,生成至少一个所述数据库表的正向的测试数据,将生成的至少一个正向的测试数据存储到所述数据库表的所述测试数据单元文件中。
32.根据本发明的又一个实施例,所述测试数据配置文件包含每一个所述数据库表在至少一个所述数据库表中的排序信息,并根据所述排序信息的先后顺序,针对每一个所述数据库表执行所述步骤20。
33.根据本发明的又一个实施例,每一个所述数据库表的所述测试数据单元文件还包括标志字段,当所述测试数据为反向的测试数据时,所述标志字段指示生成所述测试数据所依据的校验规则信息的标识;当所述测试数据为正向的测试数据时,所述标志字段指示所述测试数据为正向的测试数据的标识。
34.根据本发明的又一个实施例,还包括步骤s40:针对每一个所述数据库表,将所述数据库表的测试数据聚合文件中的测试数据导入所述数据库表。
35.根据本发明又一个实施例,所述测试数据处理方法还包括步骤:
36.s100:客户端接收用户选择的所述测试数据配置文件,并将所述测试数据配置文
件发送至服务器;
37.s200:响应接收到的所述测试数据配置文件,所述服务器执行上述步骤s10至步骤s40,生成有关每一个所述数据库表的测试数据聚合文件的报表,并将所述报表发送给所述客户端。
38.s300:响应接收到所述报表,所述客户端呈现有关上述报表的信息。
39.根据本发明的又一个实施例,提供一种测试数据处理装置,其特征在于,包括:
40.测试数据配置文件获取模块,其用于获取测试数据配置文件;
41.测试数据单元文件生成模块,其用于根据所述测试数据配置文件中的信息,为至少一个数据库表中的每一个所述数据库表生成一个测试数据单元文件;
42.测试数据聚合文件生成模块,其用于根据测试数据需求数量信息,重复执行所述步骤s20,以为每一个所述数据库表生成多个测试数据单元文件,合并多个所述测试数据单元文件,以形成所述数据库表的测试数据聚合文件。
43.根据本发明的又一个实施例,所述测试数据配置文件包含业务逻辑模型所需的至少一个所述数据库表的表名信息、表结构信息和校验规则信息,所述测试数据单元文件生成模块执行如下步骤:
44.针对每一个所述数据库表,根据所述表结构信息和至少一个校验规则信息中的每一个所述校验规则信息,生成与每一个所述校验规则信息一对一对应的至少一个测试数据,将生成的至少一个所述测试数据存储为所述数据库表的一个测试数据单元文件。
45.根据本发明的又一个实施例,所述校验规则信息仅包括用于生成反向的测试数据的校验规则信息,并且,所述测试数据单元文件生成模块还包括执行步骤:
46.s21:根据所述数据库表的所述表结构信息,生成至少一个所述数据库表的正向的测试数据,将生成的至少一个正向的测试数据存储到所述数据库表的所述测试数据单元文件中。
47.根据本发明的又一个实施例,所述测试数据配置文件包含每一个所述数据库表在至少一个所述数据库表中的排序信息,并且,所述测试数据单元文件生成模块根据所述排序信息的先后顺序,为每一个所述数据库表生成所述测试数据单元文件。
48.根据本发明的又一个实施例,所述测试数据处理装置还包括:
49.测试数据导入模块,其用于针对每一个所述数据库表,将所述数据库表的测试数据聚合文件中的测试数据导入所述数据库表。
50.根据本发明的另一个实施例,提供一种测试数据生成装置,其能够执行上述测试数据处理方法。
51.根据本发明的另一个实施例,提供一种计算机设备,所述计算机设备包括:
52.至少一个处理器;以及
53.与所述至少一个处理器通信连接的存储器;其中,
54.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述测试数据处理方法。
55.根据本发明的另一个实施例,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现上述的测试数据处理方法。
56.根据本发明的测试数据处理方法具有至少如下有益的技术效果:第一、根据配置文件自动生成测试数据,极大地提高了测试数据的生成效率;第二、将需要测试的每一个校验规则包含在配置文件中,自动针对每一个校验规则生成相应的测试数据,从而不会遗漏需要测试的校验规则;第三、通过先生成测试数据单元文件,再聚合测试数据单元文件,从而避免在生成海量测试数据时引起内存溢出或其它系统异常;第四、能够灵活配置生成的正向的测试数据和反向的测试数据的数量比例,使得生成的测试数据更接近业务实际情况;第五、能够灵活配置生成的每一个数据库表所需的测试数据的数量;第六、可以方便针对关联的数据库表生成相应的测试数据。
附图说明
57.后面的附图是根据本发明的示例性的具体实施方式,应当理解,附图中的各个部分并未按比例绘制,其中:
58.图1示出根据本发明的一个实施例的测试数据处理方法的示意性流程图;
59.图2示出根据本发明的一个实施例的测试数据处理装置的示意性结构图;
60.图3示出根据本发明一个实施例的计算机设备的示意性结构图。
具体实施方式
61.为了使本技术领域的人员更好地理解本发明的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都应当属于本发明的保护范围。
62.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
63.现在参照附图详细地描述本发明优选的具体实施方式。
64.图1示出根据本发明一个实施例的所述测试数据处理方法的流程图。如图1所示,在步骤s10:获取测试数据配置文件。在步骤s20,根据所述测试数据配置文件中的信息,为至少一个数据库表中的每一个所述数据库表生成测试数据单元文件。
65.根据本发明的又一个实施例,所述测试数据配置文件包含业务逻辑模型所需的至少一个所述数据库表的表名信息、表结构信息和校验规则信息,所述步骤s20包括;针对每一个所述数据库表,根据所述表结构信息和至少一个校验规则信息中的每一个所述校验规则信息,生成与每一个所述校验规则信息一对一对应的至少一个测试数据,将生成的至少一个所述测试数据存储为所述数据库表的一个测试数据单元文件。
66.数据库应用管理系统通常是根据业务逻辑模型进行设计和开发的。不同的业务逻
辑模型需要设计不同的数据库表集合。数据库表集合中通常包括多个数据库表。业务逻辑关系决定了其所需的多个数据库表之间通常也具有一定逻辑或约束关系。例如,银行信息管理系统可能至少包括银行机构信息表(hyf_bk_inst_info)、个人客户信息表(hyf_cl_pers_info)、个人存款账户交易明细表(hyf_ln_pers_entry)等。在逻辑或约束关系上,个人存款账户交易明细表中的银行标识和个人客户标识必须分别是银行机构信息表存在的银行标识和个人客户信息表中存在个人客户标识。
67.可选择地,配置文件中包含业务逻辑模型所需的数据库表的表名列表,通过读取该表名列表可以获取相应的表名信息。获取业务逻辑模型所需的至少一个数据库表的表名信息,可以是获取业务逻辑模型所需的全部数据库表的表名信息,也可以是获取业务逻辑模型所需的部分数据库表的表名信息。
68.根据本发明的一个实施例,所述数据库表的所述表结构信息包括所述数据库表的字段信息,所述字段信息包括字段名称、字段数据类型、字段长度,字段是否为主键、字段是否允许为空以及字段是否为关联外键等。
69.根据本发明的一个实施例,所述配置文件中包含所述表结构信息,通过读取所述配置文件中的信息可以获取所述表结构信息。可选择地,所述配置文件中包含如下表1所示的示意性的字段列表,通过所述字段列表中的数据库表名(例如hyf_bk_info),可以获取所述数据库表的表结构信息。
70.表名字段名数据类型长度是否主键是否为空是否外键hyf_bk_inst_infobranch_no字符型16ynnhyf_bk_inst_inforegdate日期型8nynhyf_cl_pers_infocustomer-no字符型13ynnhyf_cl_pers_infoid_no字符型18ynnhyf_cl_pers_infosex_typ字符型2nynhyf_ln_pers_entrydata_dt日期型8nynhyf_ln_pers_entrybranch_no字符型16nnyhyf_ln_pers_entrycustomer_no字符型18nnyhyf_ln_pers_entrytrade_typ字符型2nynhyf_ln_pers_entrytrade_amt浮点型1622yn
71.表1
72.根据本发明的一个实施例,所述配置文件中包含如下表2所示的示意性的检验规则信息列表,通过所述检验规则信息列表中的数据库表名(例如hyf_bk_info),可以获取所述数据库表的校验规则信息。可选择地,所述校验规则信息包含相应的示例数据信息,所述示例数据信息包括字段的预设值、用于生成字段值的函数,用于生成字段值的数据源等中的至少一项。例如,示例性数据信息包括从某个数据集合中选择的一个数值,并且所述选择可以是随机选择。
[0073][0074]
表2
[0075]
所述表结构信息通常是对所述数据库表的全部字段的数值类型和数值范围定义的一般规则,而所述校验规则信息通常是对所述数据库表的某一个特定字段的数值定义的特别规则。对于所述特定字段,按照校验规则信息中的特别规则对其进行赋值,而对于该特定字段之外的其它字段,按照表结构信息的一般规则对其进行赋值,从而可以为所述数据库表生成一个记录,该条记录即为一个测试数据。可选择地,可以先用一般规则对多数字段进行赋值,再用特定规则对该特定字段进行赋值;或者,可以先用特定规则对该特定字段进行赋值,再用一般规则对多数字段进行赋值。
[0076]
根据本发明一个实施例,其中根据所述数据库表的所述表结构信息和每一个所述校验规则信息,生成与每一个所述校验规则信息一对一对应的至少一个测试数据,包括,针对所述数据库表的每一个所述校验规则信息,根据所述数据库表的字段信息生成所述数据库表的所有字段的临时性数据,把所述校验规则信息所对应的字段的临时性数据替换为利用所述校验规则信息所对应的示例性数据信息所生成的数据,从而得到所述数据库表的一个测试数据。
[0077]
针对每一个校验规则信息,为所述数据库表生成一个测试数据。当所述数据库表具有n(其中n≥1)个校验规则信息时,将为所述数据库表生成n个测试数据,从而将n个测试数据存储为所述数据库表的一个测试数据单元文件。
[0078]
根据本发明的又一个实施例,所述测试数据单元文件的文件格式包括txt、csv、xls、dbf等中的一种。
[0079]
在步骤s30,重复执行所述步骤s20,以为每一个所述数据库表生成多个测试数据单元文件,合并多个所述测试数据单元文件,以形成所述数据库表的测试数据聚合文件。
[0080]
根据本发明的又一个实施例,所述测试数据配置文件包含测试数据单元文件数量信息,所述步骤s30包括:根据所述测试数据单元文件数量信息,重复执行所述步骤s20,以为每一个所述数据库表生成多个测试数据单元文件,合并多个所述测试数据单元文件,以形成所述数据库表的测试数据聚合文件。
[0081]
可选择地,获取所述数据库表的表结构信息、获取所述数据库表的至少一个校验规则信息和获取所述数据库表的测试数据单元文件数量信息可以同步地进行,也可以分别地进行。可选择地,可以在需要时才获取所述数据库表的表结构信息、至少一个校验规则信息和测试数据单元文件数量信息。例如,可以在生成所述数据库表的测试数据单元文件之后,再获取所述数据库表的测试数据单元文件数量信息。
[0082]
在一个实施例中,所有所述数据库表的所述测试数据单元文件数量信息为同一个数值。例如所述测试数据单元文件数量信息为数值10000,将为每一个数据库表生成10000个测试数据单元文件。该数值表示可以为每一个所述数据库表生成相同数量的所述测试数据单元文件。
[0083]
在另一个实施例中,每一个数据库表的所述测试数据单元文件数量信息具有不同的数值。例如数据库表hyf_bk_inst_info、hyf_cl_pers_info和hyf_ln_pers_entry的所述测试数据单元文件数量信息分别为10000、12000和15000,则将为它们分别生成10000、12000和15000个测试数据单元文件。在这种情况下,用户可以灵活配置每一个数据库表测试数据的生成数量。
[0084]
根据本发明的又一个实施例,根据测试数据的需求数量和至少一个所述数据库表的校验规则的数量获取所述测试数据单元文件数量信息。在这种情况下,仅需要用户事先确定测试数据的规模或需求总量,而无需了解每一个数据库表的校验规则的具体数量。
[0085]
根据本发明的又一个实施例,根据测试数据的需求数量和至少一个所述数据库表的测试数据单元文件中的测试数据的数量获取所述测试数据单元文件数量信息。在这种情况下,仅需要用户事先确定测试数据的规模或需求总量,而无需了解每一个数据库表的测试数据单元文件中的测试数据的具体数量。
[0086]
根据本发明的又一个实施例,测试数据的需求数量表示所述业务逻辑模型所需的测试数据的总量,换句话说,所述测试数据的需求数量表示至少一个所述数据库表中的各个数据库表所需的测试数据的数量的总和。可选择地,至少一个所述数据库表的校验规则的数量表示至少一个所述数据库表中的各个所述数据库表的校验规则的数量的总和。可选择地,至少一个所述数据库表的测试数据单元文件中的测试数据的数量表示至少一个所述数据库表中的各个所述数据库表的单元测试文件中测试数据的数量的总和。例如,用户事先设定测试数据总数需要达5000万数量级,而全部数据库表的校验规则总数或全部数据库表的测试数据单元文件中的测试数据的总数为5000个,则可以确定将为每一个数据库表生成10000个测试数据单元文件。
[0087]
根据本发明的又一个实施例,所述测试数据的需求数量表示至少一个所述数据库中某一个所述数据库表所需的测试数据的数量。可选择地,至少一个所述数据库表的校验规则的数量表示至少一个所述数据库表中的某一个对应的所述数据库表的校验规则的数量。可选择地,至少一个所述数据库表的测试数据单元文件中的测试数据的数量表示至少一个所述数据库表中的某一个对应的所述数据库表的单元测试文件中测试数据的数量的总和。例如,用户事先设定某个数据库表的测试数据需要达1000万数量级,而该数据库表的校验规则的数量或测试数据单元文件中的测试数据的数量为500个,则可以确定将为每一个数据库表生成20000个测试数据单元文件。
[0088]
根据本发明的又一个实施例,所述测试数据的需求数量表示至少一个所述数据库中一部分所述数据库表所需的测试数据的数量的总和。可选择地,至少一个所述数据库表的校验规则的数量表示至少一个所述数据库表中的一部分对应的所述数据库表的校验规则的数量。可选择地,至少一个所述数据库表的测试数据单元文件中的测试数据的数量表示至少一个所述数据库表中的一部分对应的所述数据库表的单元测试文件中测试数据的数量的总和。例如,用户事先设定某些数据库表的测试数据总数需要达3000万数量级,而这
些数据库表的校验规则的总数或测试数据单元文件中的测试数据的总数为3000个,则可以确定将为每一个数据库表生成10000个测试数据单元文件。
[0089]
可选择地,所述表名信息、所述表结构信息、所述校验规则信息和所述测试数据单元文件数量信息包含在同一个配置文件中。
[0090]
可选择地,所述配置文件包括xls格式文件。
[0091]
可选择地,所述表名信息、所述表结构信息、所述校验规则信息和所述测试数据单元文件数量信息包含在同一个xls格式的配置文件的不同的工作表中。
[0092]
根据本发明的又一个实施例,所述测试数据聚合文件的文件格式包括txt、csv、xls、xml、dbf等中的一种。
[0093]
可选择地,所述测试数据单元文件和所述测试数据聚合文件具有相同的文件格式。
[0094]
可选择地,可以为每一个数据库表设定各自的文件目录,将所生成的测试数据单元文件存储在该测试数据单元文件所属的数据库表的文件目录中。
[0095]
可选择地,可以将测试数据单元文件的文件名称与其所属的数据库表的表名设定一定的关联关系。可选择地,所述测试数据单元文件的文件名称包括所属的数据库表的表名和生成的序列号。
[0096]
下面表3示出为所生成的测试数据单元文件的设定的示例性文件目录结构。如图表3所示,hyf_asset_impam_info、hyf_bk_emp_info和hyf_bk_inst_info分别是为表名为asset_impam_info、bk_emp_info和bk_inst_info的数据库表创建的文件目录,hyf_asset_impam_info_1663894184241.txt和hyf_bk_emp_info_1663894184241.txt分别是为这两个数据库表生成的测试数据单元文件,其中1663894184241表示序列号。
[0097][0098]
表3
[0099]
根据本发明的又一个实施例,所述校验规则信息仅包括用于生成反向的测试数据的校验规则信息,并且,步骤s20还包括步骤:
[0100]
s21:根据所述数据库表的所述表结构信息,生成至少一个所述数据库表的正向的测试数据,将生成的至少一个正向的测试数据存储到所述数据库表的所述测试数据单元文
件中。
[0101]
所谓数据库表的正向的测试数据是指所述数据库表的测试数据中全部字段的数据都符合所述数据库表的对应字段的约束条件。所谓数据库表的反向的测试数据是指所述数据库表的测试数据中至少有一个字段的数据不符所述数据库表的对应字段的约束条件。在这种情况下,用户可以在灵活配置正向的测试数据和反向的测试数据的数量比例,从而使得生成的测试数据更能接近于实际的业务情况。
[0102]
可选择地,首先将为所述数据库表生成m个反向的测试数据存储为测试数据单元文件,其次为所述数据库表生成n个正向的测试数据,最后将所述n个正向的测试数据添加到所述测试数据单元文件中。可选择地,首先将生成的n个正向的测试数据存储为测试数据单元文件,然后将生成的m个反向的测试数据添加到所述测试数据单元文件中。
[0103]
可选择地,首先为所述数据库表生成m个反向的测试数据,其次为所述数据库表生成n个正向的测试数据,最后将所述生成的m个反向的测试数据和n个正向的测试数据存储为测试数据单元文件。可选择地,首先生成n个正向的测试数据,然后生成m个反向的测试数据,最后将生成的m+n个测试数据存储到所述测试数据单元文件中。
[0104]
根据本发明的又一个实施例,所述测试数据配置文件包含每一个所述数据库表在至少一个所述数据库表中的排序信息,并根据所述排序信息的先后顺序,针对每一个所述数据库表执行所述步骤20。
[0105]
在业务逻辑模型所需的至少一个数据库表之间具有关联关系时,可将被关联的数据库表排序在前,将关联的数据库表排序在后,从而可以方便地针对相互关联的数据库表生成测试数据。例如,银行机构信息表(hyf_bk_inst_info)和个人客户信息表(hyf_cl_pers_info)是被关联的数据库表,可以将其排序信息分别设定为1和2,个人存款账户交易明细表(hyf_ln_pers_entry)是关联的数据库表,可以将其排序信息设定为3,从而可以首先针对银行机构信息表执行上述步骤s3、接着针对个人客户信息表执行上述步骤s3,最后针对个人存款账户交易明细表执行上述步骤s3。可以方便生成用于验证个人存款账户交易明细表中的机构编号(branch_no)和客户证件号码(id_no)是否分别为银行机构信息表中的机构编号以及个人客户信息表中的客户证件号码的测试数据。
[0106]
根据本发明的又一个实施例,每一个所述数据库表的所述测试数据单元文件还包括标志字段,当所述测试数据为反向的测试数据时,所述标志字段指示生成所述测试数据所依据的校验规则信息的标识;当所述测试数据为正向的测试数据时,所述标志字段指示所述测试数据为正向的测试数据的标识。例如,当根据上述表2中规则id为“hyf_a_0001”的校验规则信息生成反向的测试数据时,所述测试数据的标志字段的值可以为“hyf_a_0001”;当所述测试数据为正向的测试数据时,所述测试数据的标志字段的值可以为“ok”。
[0107]
在步骤s40,针对每一个所述数据库表,将所述数据库表的测试数据聚合文件中的测试数据导入所述数据库表。
[0108]
生成数据库表的测试数据聚合文件后,根据需要将所述生成的测试数据聚合文件中的测试数据导入到对应的关系型数据库或者大数据平台中。
[0109]
根据本发明又一个实施例,所述的测试数据处理方法还包括步骤:
[0110]
s100:客户端接收用户选择的所述测试数据配置文件,并将所述测试数据配置文件发送至服务器;
[0111]
s200:响应接收到的所述测试数据配置文件,服务器执行上述步骤s10至步骤s40,生成有关每一个所述数据库表的测试数据聚合文件的报表,并将所述报表发送给所述客户端。
[0112]
s300:响应接收到所述报表,客户端呈现有关上述报表的信息。
[0113]
图2示出根据本发明的一个实施例的测试数据生成装置200的示意性结构图。如图2所示,所述测试数据处理装置包括:测试数据配置文件获取模块10,其用于获取测试数据配置文件;测试数据单元文件生成模块20,其用于根据所述测试数据配置文件中的信息,为至少一个数据库表中的每一个所述数据库表生成测试数据单元文件;测试数据聚合文件生成模块30,其用于根据测试数据需求数量信息,重复执行所述步骤s20,以为每一个所述数据库表生成多个测试数据单元文件,合并多个所述测试数据单元文件,以形成所述数据库表的测试数据聚合文件,和测试数据导入模块40,其用于针对每一个所述数据库表,将所述数据库表的测试数据聚合文件中的测试数据导入所述数据库表。
[0114]
根据本发明的又一个实施例,所述测试数据配置文件包含业务逻辑模型所需的至少一个所述数据库表的表名信息、表结构信息和校验规则信息,所述测试数据单元文件生成模块20执行如下步骤:
[0115]
针对每一个所述数据库表,根据所述表结构信息和至少一个校验规则信息中的每一个所述校验规则信息,生成与每一个所述校验规则信息一对一对应的至少一个测试数据,将生成的至少一个所述测试数据存储为所述数据库表的一个测试数据单元文件。
[0116]
根据本发明的又一个实施例,所述校验规则信息仅包括用于生成反向的测试数据的校验规则信息,并且,所述测试数据单元文件生成模块20还包括执行步骤:
[0117]
s21:根据所述数据库表的所述表结构信息,生成至少一个所述数据库表的正向的测试数据,将生成的至少一个正向的测试数据存储到所述数据库表的所述测试数据单元文件中。
[0118]
根据本发明的又一个实施例,所述测试数据配置文件包含每一个所述数据库表在至少一个所述数据库表中的排序信息,并且,所述测试数据单元文件生成模块20根据所述排序信息的先后顺序,为每一个所述数据库表生成测试数据单元文件。
[0119]
根据本发明的另一个实施例,提供一种测试数据生成装置,其能够执行上述测试数据处理方法。
[0120]
图3示出根据本发明一个实施例的计算机设备的示意性结构图。如图3所示,该计算机设备300包括:处理器31以及连接至所述处理器31的存储器32,所述处理器31被配置为基于存储在所述存储器32中的指令,执行根据本发明中任意一个实施例中的测试数据处理方法。
[0121]
根据本发明的另一个实施例,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现上述的测试数据处理方法。
[0122]
根据本发明的测试数据处理方法具有至少如下有益的技术效果:第一、根据配置文件自动生成测试数据,极大地提高了测试数据的生成效率;第二、将需要测试的每一个校验规则包含在配置文件中,自动针对每一个校验规则生成相应的测试数据,从而不会遗漏需要测试的校验规则;第三、通过先生成测试数据单元文件,再聚合测试数据单元文件,从
而避免在生成海量测试数据时引起内存溢出或其它系统异常;第四、能够灵活配置生成的正向的测试数据和反向的测试数据的数量比例,使得生成的测试数据更接近业务实际情况;第五、能够灵活配置生成的每一个数据库表所需的测试数据的数量;第六、可以方便针对关联的数据库表生成相应的测试数据。
[0123]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,所述一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,所述可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至所述存储系统、所述至少一个输入装置和所述至少一个输出装置。
[0124]
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0125]
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0126]
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者触觉输入)来接收来自用户的输入。
[0127]
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端—服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器。
[0128]
应当理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的某些步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
[0129]
尽管已经通过上述具体实施方式描述了本发明,但应当理解,前面的描述并非将本发明的保护范围限于上述具体实施方式,相反,前面的描述旨在表明由权利要求书所确
定的本发明的保护范围包含上述具体实施方式及其等同方式。
技术特征:
1.一种测试数据处理方法,其特征在于,包括步骤:s10:获取测试数据配置文件;s20:根据所述测试数据配置文件中的信息,为至少一个数据库表中的每一个所述数据库表生成一个测试数据单元文件;s30:重复执行所述步骤s20,以为每一个所述数据库表生成多个测试数据单元文件,合并多个所述测试数据单元文件,以形成所述数据库表的测试数据聚合文件。2.如权利要求1所述的测试数据处理方法,其特征在于,所述测试数据配置文件包含业务逻辑模型所需的至少一个所述数据库表的表名信息、表结构信息、至少一个校验规则信息和测试数据单元文件数量信息,所述步骤s20包括;针对每一个所述数据库表,根据所述表结构信息和至少一个校验规则信息中的每一个所述校验规则信息,生成与每一个所述校验规则信息一对一对应的至少一个测试数据,将生成的至少一个所述测试数据存储为所述数据库表的一个测试数据单元文件;和所述步骤s30包括:根据所述测试数据单元文件数量信息重复执行所述步骤s20,以为每一个所述数据库表生成多个测试数据单元文件,合并多个所述测试数据单元文件,以形成所述数据库表的测试数据聚合文件。3.如权利要求2所述的测试数据处理方法,其特征在于,所述校验规则信息仅包括用于生成反向的测试数据的校验规则信息,并且,步骤s20还包括步骤:s21:根据所述数据库表的所述表结构信息,生成至少一个所述数据库表的正向的测试数据,将生成的至少一个正向的测试数据存储到所述数据库表的所述测试数据单元文件中。4.如权利要求1所述的测试数据处理方法,其特征在于,所述测试数据配置文件包含每一个所述数据库表在至少一个所述数据库表中的排序信息,并根据所述排序信息的先后顺序,针对每一个所述数据库表执行所述步骤20。5.如权利要求1所述的测试数据处理方法,其特征在于,还包括:s40:针对每一个所述数据库表,将所述数据库表的测试数据聚合文件中的测试数据导入所述数据库表。6.一种测试数据处理装置,其特征在于,包括:测试数据配置文件获取模块,其用于获取测试数据配置文件;测试数据单元文件生成模块,其用于根据所述测试数据配置文件中的信息,为至少一个数据库表中的每一个所述数据库表生成一个测试数据单元文件;测试数据聚合文件生成模块,其用于重复执行所述步骤s20,以为每一个所述数据库表生成多个测试数据单元文件,合并多个所述测试数据单元文件,以形成所述数据库表的测试数据聚合文件。7.如权利要求6所述的测试数据处理装置,其特征在于,所述测试数据配置文件包含业务逻辑模型所需的至少一个所述数据库表的表名信息、表结构信息和只是一个校验规则信息,所述测试数据单元文件生成模块执行如下步骤:针对每一个所述数据库表,根据所述表结构信息和至少一个校验规则信息中的每一个所述校验规则信息,生成与每一个所述校验规则信息一对一对应的至少一个测试数据,将
生成的至少一个所述测试数据存储为所述数据库表的一个测试数据单元文件。8.如权利要求6所述的测试数据处理装置,其特征在于,所述校验规则信息仅包括用于生成反向的测试数据的校验规则信息,并且,测试数据单元文件生成模块还包括执行步骤:s21:根据所述数据库表的所述表结构信息,生成至少一个所述数据库表的正向的测试数据,将生成的至少一个正向的测试数据存储到所述数据库表的所述测试数据单元文件中。9.如权利要求6所述的测试数据处理装置,其特征在于,所述测试数据配置文件包含每一个所述数据库表在至少一个所述数据库表中的排序信息,并且,测试数据单元文件生成模块根据所述排序信息的先后顺序,为每一个所述数据库表生成测试数据单元文件。10.如权利要求6所述的测试数据处理装置,其特征在于,还包括:测试数据导入模块,其用于针对每一个所述数据库表,将所述数据库表的测试数据聚合文件中的测试数据导入所述数据库表。
技术总结
本发明提供一种测试数据处理方法,包括步骤:S10:获取测试数据配置文件;S20:根据所述测试数据配置文件中的信息,为至少一个数据库表中的每一个所述数据库表生成一个测试数据单元文件;S30:重复执行所述步骤S20,以为每一个所述数据库表生成多个测试数据单元文件,合并多个所述测试数据单元文件,以形成所述数据库表的测试数据聚合文件。本发明的测试数据处理方法具有处理高效、不遗漏校验规则、避免系统异常和配置灵活等有益的技术效果。统异常和配置灵活等有益的技术效果。统异常和配置灵活等有益的技术效果。
技术研发人员:赵孟全
受保护的技术使用者:北京宏远贵德科技有限公司
技术研发日:2023.05.10
技术公布日:2023/7/25
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种建筑施工用垃圾破碎处理装置的制作方法 下一篇:一种擦墨装置及打印机的制作方法
