一种测试数据添加的方法及装置与流程

文档序号:13736153阅读:214来源:国知局
本发明涉及测试领域,更具体地说,涉及一种测试数据添加的方法及装置。
背景技术
::测试团队在对跑批类的业务进行测试前,需要准备大量的数据以便测试。准备大量数据是个复杂的过程。目前,可以手工去写sql,但是十分耗时。同时将数据插入到数据库,需要进行业务逻辑处理,以保证数据的一致性。通常,千万级的测试数据在短时间内不能通过业务脚本进行模拟,业务逻辑模拟的过程耗时长、效率低,然而,如果不进行业务逻辑处理,也就是绕过业务逻辑,直接向目标库中插入数据,又不能保证数据的一致性问题。因此,如何保证数据一致性同时提高数据准备的效率,是本领域技术人员需要解决的问题。技术实现要素:本发明的目的在于提供一种测试数据添加的方法,以保证数据一致性同时提高数据准备的效率。为实现上述目的,本发明实施例提供了如下技术方案:一种测试数据添加的方法,包括:利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息;为所述待入库数据创建添加语句,并利用所述库表信息对库表中所述待入库数据对应的字段进行参数化得到参数化字段;利用所述参数化字段与所述添加语句得到存储过程函数;调用jmeter并利用所述存储过程函数将待入库数据添加至所述预设数据需求指定的第二数据库。其中,所述调用jmeter并利用所述存储过程函数将待入库数据添加至所述预设数据需求指定的第二数据库之后,还包括:利用查询语句查询所述第二数据库是否包括所有待入库数据;若否,则继续执行所述利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息的步骤。其中,所述利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息,包括:抓取第一数据库的日志,在所述数据库日志中利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息。其中,所述调用jmeter并利用所述存储过程函数将待入库数据添加至所述预设数据需求指定的第二数据库,包括:利用jmeter建立jdbc请求;利用所述jdbc请求调用所述存储过程函数,以将所述待入库数据添加至所述预设数据需求指定的第二数据库。一种测试数据添加的装置,包括:获取模块,用于利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息;准备模块,用于为所述待入库数据创建添加语句,并利用所述库表信息对库表中所述待入库数据对应的字段进行参数化得到参数化字段;存储过程函数确定模块,用于利用所述参数化字段与所述添加语句得到存储过程函数;添加模块,用于调用jmeter并利用所述存储过程函数将待入库数据添加至所述预设数据需求指定的第二数据库。其中,还包括:查询模块,用于调用jmeter并利用所述存储过程函数将待入库数据添加至所述预设数据需求指定的第二数据库之后,利用查询语句查询所述第二数据库是否包括所有待入库数据;若否,则继续调用所述获取模块。其中,所述获取模块,具体用于抓取第一数据库的日志,在所述数据库日志中利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息。其中,所述添加模块,包括:jdbc请求建立单元,用于利用jmeter建立jdbc请求;添加单元,用于利用所述jdbc请求调用所述存储过程函数,以将所述待入库数据添加至所述预设数据需求指定的第二数据库。一种测试数据添加的装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现任一项所述的一种测试数据添加的方法的步骤。一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现任一项所述的一种测试数据添加的方法的步骤。通过以上方案可知,本发明实施例提供的一种数据添加的方法,利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息;为所述待入库数据创建添加语句,并利用所述库表信息对库表中所述待入库数据对应的字段进行参数化得到参数化字段;利用所述参数化字段与所述添加语句得到存储过程函数;调用jmeter并利用所述存储过程函数将待入库数据添加至所述预设数据需求指定的第二数据库。由此可见,本发明实施例提供的一种数据添加的方法,首先根据需求确定待入库的数据以及待入库数据要添加到哪个数据库中,同时确定待入库数据的库表信息,然后为待入库数据创建添加语句以及确定其参数化字段,利用添加语句和参数化字段确定存储过程函数,最终利用jmeter调用存储过程函数即可将待入库数据存储到目标的第二数据库中。在存储过程函数中以通过参数化字段保证了数据的一致性,同时使用jmeter工具实现了数据的快速存储,有效地提高数据插入的效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例公开的一种测试数据添加的方法流程图;图2为本发明实施例公开的一种具体的测试数据添加的方法流程图;图3为本发明实施例公开的一种测试数据添加的装置结构示意图;图4为本发明实施例公开的一种测试数据添加的装置结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例公开了一种测试数据添加的方法,以保证数据一致性同时提高数据准备的效率。参见图1,本发明实施例提供的一种测试数据添加的方法,具体包括:s101,利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息;具体地,首先确定数据准备的需求,如,根据跑批业务确定需要在哪一个库中预置多少数据以及数据类型等信息。根据数据需求确定待入库数据,以及待入库数据在数据库中涉及的库表信息。s102,为所述待入库数据创建添加语句,并利用所述库表信息对库表中所述待入库数据对应的字段进行参数化得到参数化字段;具体地,首先将待入库的数据复制为添加语句,即insert语句。库表信息是为了确定待入库数据所在的表与表之间的关联关系,关联关系可以参考数据库表的设计文档。例如a表中存在acc_no字段,b表中也存在acc_no字段,那可以为这两个表的字段定义变量para,在确定添加语句时,则可以用变量para表明acc_no字段即可。需要说明的是,数据的一致性是指数据之间的关联关系,在添加数据之前,首先确定待入库数据的各个字段在表与表之间的关联关系,并进行参数化,在添加这个参数(变量)的数据时,则可以保证数据是一致的,进而保证了数据的一致性。s103,利用所述参数化字段与所述添加语句得到存储过程函数;具体地,利用参数化的字段以及确定的添加语句生成存储过程函数。s104,调用jmeter并利用所述存储过程函数将待入库数据添加至所述预设数据需求指定的第二数据库。具体地,利用jmeter发起请求,利用s103中确定的存储过程函数向第二数据库中添加待入库数据。需要说明的是,根据预设数据需求确定的需要为哪个数据库预置数据,则这个数据库就是第二数据库。需要说明的是,在这一步骤中,可以设置添加多少数据。通过以上方案可知,本发明实施例提供的一种数据添加的方法,首先根据需求确定待入库的数据以及待入库数据要添加到哪个数据库中,同时确定待入库数据的库表信息,然后为待入库数据创建添加语句以及确定其参数化字段,利用添加语句和参数化字段确定存储过程函数,最终利用jmeter调用存储过程函数即可将待入库数据存储到目标的第二数据库中。在存储过程函数中以通过参数化字段保证了数据的一致性,同时使用jmeter工具实现了数据的快速存储,有效地提高数据插入的效率。为确定待入库数据是否已全部添加至第二数据库,本发明实施例提供一种具体的测试数据添加的方法,具体地,在调用jmeter并利用所述存储过程函数将待入库数据添加至所述预设数据需求指定的第二数据库之后,还包括:利用查询语句查询所述第二数据库是否包括所有待入库数据;若否,则继续执行所述利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息的步骤。具体的,数据准备完成后,也就是将待入库数据添加到目标的第二数据库中后,可以使用查询语句查看入库的数据量,查询语句可以是selectcount(1)fromtable。当数据量未满足数据准备的需求中的待入库数据的数据量时,则可以继续执行s101继续添加数据。本发明实施例提供一种具体的测试数据添加的方法,区别于上述实施例,本发明实施例对上述实施例中s101做了具体的限定和说明,其他步骤内容与上述实施例大致相同,具体可以参考上述实施例的相应内容,此处不再赘述。具体地,s101包括:抓取第一数据库的日志,在所述数据库日志中利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息。具体地,首先抓取数据库的日志,在日志中根据需求获取待入库数据以及待入库数据涉及的库表信息。本发明实施例提供一种具体的测试数据添加的方法,区别于上述实施例,本发明实施例对上述实施例中s104做了具体的限定和说明,其他步骤内容与上述实施例大致相同,具体可以参考上述实施例的相应内容,此处不再赘述。具体地,参考图2,s104包括:s201,利用jmeter建立jdbc请求;s202,利用所述jdbc请求调用所述存储过程函数,以将所述待入库数据添加至所述预设数据需求指定的第二数据库。具体地,jmeter建立jdbc请求后,调用存储过程函数,由于待入库数据的添加语句以及参数化的字段已处理为存储过程函数,因此执行存储过程函数后就可以将待入库数据添加到指定的数据库(第二数据库)中。需要说明的是,上述方案提供的方法可以选用64g、32核的机器上运行,jmeter的脚本可以设置为200线程,jdbc连接300个。如果进一步提高速度,可以加大线程数以及jdbc的连接数。下面对本发明实施例提供的一种测试数据添加的装置进行介绍,下文描述的一种测试数据添加的装置与上文描述的一种测试数据添加的方法可以相互参照。参考图3,本发明实施例提供的一种测试数据添加的装置,具体包括:获取模块301,用于利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息;具体地,获取模块301首先确定数据准备的需求,如,根据跑批业务确定需要在哪一个库中预置多少数据以及数据类型等信息。根据数据需求确定待入库数据,以及待入库数据在数据库中涉及的库表信息。准备模块302,用于为所述待入库数据创建添加语句,并利用所述库表信息对库表中所述待入库数据对应的字段进行参数化得到参数化字段;具体地,准备模块302首先将待入库的数据复制为添加语句,即insert语句。库表信息是为了确定待入库数据所在的表与表之间的关联关系,关联关系可以参考数据库表的设计文档。例如a表中存在acc_no字段,b表中也存在acc_no字段,那可以为这两个表的字段定义变量para,在确定添加语句时,则可以用变量para表明acc_no字段即可。需要说明的是,数据的一致性是指数据之间的关联关系,在添加数据之前,首先确定待入库数据的各个字段在表与表之间的关联关系,并进行参数化,在添加这个参数(变量)的数据时,则可以保证数据是一致的,进而保证了数据的一致性。存储过程函数确定模块303,用于利用所述参数化字段与所述添加语句得到存储过程函数;具体地,存储过程函数确定模块303利用参数化的字段以及确定的添加语句生成存储过程函数。添加模块304,用于调用jmeter并利用所述存储过程函数将待入库数据添加至所述预设数据需求指定的第二数据库。具体地,添加模块304利用jmeter发起请求,利用s103中确定的存储过程函数向第二数据库中添加待入库数据。需要说明的是,根据预设数据需求确定的需要为哪个数据库预置数据,则这个数据库就是第二数据库。需要说明的是,在这一步骤中,可以设置添加多少数据。通过以上方案可知,本发明实施例提供的一种数据添加的装置,获取模块301首先根据需求确定待入库的数据以及待入库数据要添加到哪个数据库中,同时确定待入库数据的库表信息,然后准备模块302为待入库数据创建添加语句以及确定其参数化字段,存储过程函数确定模块303利用添加语句和参数化字段确定存储过程函数,最终添加模块304利用jmeter调用存储过程函数即可将待入库数据存储到目标的第二数据库中。在存储过程函数中以通过参数化字段保证了数据的一致性,同时使用jmeter工具实现了数据的快速存储,有效地提高数据插入的效率。为确定待入库数据是否已全部添加至第二数据库,本发明实施例提供一种具体的测试数据添加的装置,具体地本发明实施例在上述实施例的基础上,还包括:查询模块,用于调用jmeter并利用所述存储过程函数将待入库数据添加至所述预设数据需求指定的第二数据库之后,利用查询语句查询所述第二数据库是否包括所有待入库数据;若否,则继续调用所述获取模块。具体的,数据准备完成后,也就是将待入库数据添加到目标的第二数据库中后,查询模块可以使用查询语句查看入库的数据量,查询语句可以是selectcount(1)fromtable。当数据量未满足数据准备的需求中的待入库数据的数据量时,则可以继续继续调用所述获取模块301。本发明实施例提供一种具体的测试数据添加的装置,区别于上述实施例,本发明实施例对上述实施例中获取模块301做了具体的限定和说明,其他模块内容与上述实施例大致相同,具体可以参考上述实施例的相应内容,此处不再赘述。具体地,获取模块301具体用于,抓取第一数据库的日志,在所述数据库日志中利用预设数据需求获取待入库数据以及所述待入库数据在第一数据库中对应的库表信息。具体地,获取模块301首先抓取数据库的日志,在日志中根据需求获取待入库数据以及待入库数据涉及的库表信息。本发明实施例提供一种具体的测试数据添加的装置,区别于上述实施例,本发明实施例对上述实施例中添加模块304做了具体的限定和说明,其他模块内容与上述实施例大致相同,具体可以参考上述实施例的相应内容,此处不再赘述。具体地,添加模块304包括:jdbc请求建立单元,用于利用jmeter建立jdbc请求;添加单元,用于利用所述jdbc请求调用所述存储过程函数,以将所述待入库数据添加至所述预设数据需求指定的第二数据库。具体地,jdbc请求建立单元利用jmeter建立jdbc请求后,添加单元调用存储过程函数,由于待入库数据的添加语句以及参数化的字段已处理为存储过程函数,因此执行存储过程函数后就可以将待入库数据添加到指定的数据库(第二数据库)中。需要说明的是,上述方案提供的装置可以建立于64g、32核的机器上运行,jmeter的脚本可以设置为200线程,jdbc连接300个。如果进一步提高速度,可以加大线程数以及jdbc的连接数。下面对本发明实施例提供的一种测试数据添加的装置进行介绍,下文描述的一种测试数据添加的装置与上文描述的一种测试数据添加的方法、装置可以相互参照。参考图4,本发明实施例提供的一种测数据添加的装置,具体包括:存储器401,用于存储计算机程序;处理器402,用于执行所述计算机程序时实现如上述实施例所述一种测试数据添加的方法的步骤。下面对本发明实施例提供的一种计算机可读存储介质进行介绍,下文描述的一种计算机可读存储介质与上文描述的一种测试数据添加的方法、装置可以相互参照。具体地,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述实施例所述一种测试数据添加的方法的步骤。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1