CN112685288A - 一种关联表的测试数据的生成方法、装置、设备和介质 - Google Patents
一种关联表的测试数据的生成方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN112685288A CN112685288A CN202011395037.0A CN202011395037A CN112685288A CN 112685288 A CN112685288 A CN 112685288A CN 202011395037 A CN202011395037 A CN 202011395037A CN 112685288 A CN112685288 A CN 112685288A
- Authority
- CN
- China
- Prior art keywords
- data
- configuration
- generated
- field
- parent
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种关联表的测试数据的方法、装置、设备和介质,方法包括:接受用户对数据源的配置;将该数据源下的所有数据表做一次性导入,接受各数据表之间关联关系的配置和各数据表的表字段的属性配置;当所有的配置都完成后,根据数据表之间关联关系,以每一个数据表为一节点,从根节点开始逐级往下一级节点生成各数据表的数据,直至最末级节点的数据表的数据生成;生成的数据将通过Java中的反射技术调用对应的Java对象类中的对应的表字段的属性以及该属性的get/set方法,将生成的数据写入各数据表对应的表字段中。本发明是从根节点开始逐级往下一级节点线性生成各数据表的数据,子表中的数据能够继承父表中的部分数据,保证了数据的准确性和系统性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种关联表的测试数据的生成方法、装置、设备和介质。
背景技术
当开发人员项目编写完成后,往往需要进行项目测试或者性能压测,但是我们系统设计完成的时候,数据库中并没有可以使用的数据,没有可用的数据时,就不能进行良好的测试,如不同的数据在页面上展示的效果如何,如数据量大的时候项目性能如何,这些都需要数据的支持。那没有数据又怎么办呢,这个时候就会想到能不能生成一下数据提供给我们自己使用,于是就有了数据生成的功能。
公开号为CN110188030A,公开日为20190830的中国发明揭示了一种测试数据生成方法、装置及计算机设备、存储介质,所述方法包括:接收测试数据生成请求;根据所述测试数据生成请求确认生成的测试数据的输出格式类别和测试数据的生成量;根据所述输出格式类别获取用于生成测试数据的各字段的配置信息和自定义字段配置信息,基于所述配置信息、所述自定义字段配置信息和所述测试数据的生成量生成测试数据文件,所述测试数据文件的格式与所述输出格式类别相对应。该发明提供的方案可自动生成大量的测试数据,能有效提高测试效率,可针对不同测试场景或不同软件系统生成不同类型的测试数据,输出不同格式的测试数据文件,可满足不同测试场景或不同软件系统的测试需求。
公开号为CN109815252A,公开日为20190528的中国发明公开了一种测试数据生成方法,包括:显示规则配置界面,其中包括数据库中的各数据表的表信息、各数据表包含的字段信息、用于设置字段值生成规则的第一操作选项、用于设置需要生成数据量的第二操作选项;接收用户在规则配置界面对目标数据表的设置、对目标数据表所包含的目标字段的设置、通过第一操作选项对目标字段值的生成规则的设置、通过第二操作选项对需要生成的数据量的设置;根据配置结果生成存储过程脚本;将存储过程脚本发送至数据库,以便在数据库中执行以生成测试数据。其相当于间接提供一个操作简单的测试数据生成工具,以解决现有技术中针对准备测试数据效率较低的问题,可提高测试数据的生成效率,进而提高系统测试效率。
上述发明基本是通过配置各种基本信息来生成相应的测试数据,基本信息如各数据表的表信息、字段信息、输出格式、生成规则以及生成数据量等,但对于各表之间的关联关系却鲜有描述。
公开号为CN105512042A,公开日为20160420的中国发明提供了一种数据库的测试数据的自动生成方法、装置及测试系统,所述方法包括:选择需要生成测试数据的数据库表;查询所述数据库表的参数;根据所述数据库表的所述参数选择所述测试数据的生成规则,生成测试数据;选择所述测试数据的插入规则,基于所述插入规则将生成的所述测试数据插入到数据库表中。虽然其解决了字段关联外键识别的技术难题,提供了多种灵活的测试数据生成规则,提出智能化插入规则,使数据插入速度大幅提供,提供了用户界面,易于操作,但没有提出一种存在多个有关联的表之间的测试数据生成顺序的方法。
发明内容
本发明要解决的技术问题,在于提供一种关联表的测试数据的生成方法、装置、设备和介质,通过配置的方式,实现了关联表的测试数据的自动生成,从根节点开始逐级往下一级节点线性生成各数据表的数据,子表中的数据能够继承父表中的部分数据,保证了数据的准确性和系统性。
第一方面,本发明提供了一种关联表的测试数据的生成方法,包括下述步骤:
S1、接受用户对数据源的配置;
S2、根据用户选择所配置的数据源,将该数据源下的所有数据表做一次性导入,每个数据表均有相应的Java对象类;
S3、接受各数据表之间关联关系的配置,配置内容包括:选择数据表的一个字段作为外键,选择该数据表关联的父表,并根据父表加载出父表中的字段以供选择,选择父表的一个字段作为关联的字段;
S4、接受各数据表的表字段的属性配置,属性配置内容包括:选择表字段,给选择的字段配置取值类型和取值方式;
S5、当所有的配置都完成后,根据数据表之间关联关系,以每一个数据表为一节点,从根节点开始逐级往下一级节点生成各数据表的数据,即先生成父表数据,再生成子表数据,直至最末级节点的数据表的数据生成;生成的数据将通过Java中的反射技术调用对应的Java对象类中的对应的表字段的属性以及该属性的get/set方法,将生成的数据写入各数据表对应的表字段中。
第二方面,本发明提供了一种关联表的测试数据的生成装置,包括:
数据源配置模块,用于接受用户对数据源的配置;
数据表导入模块,用于接受用户选择所配置的数据源,并将该数据源下的所有数据表做一次性导入,每个数据表均有相应的Java对象类;
表关联配置模块,用于接受各数据表之间关联关系的配置,配置内容包括:选择数据表的一个字段作为外键,选择该数据表关联的父表,并根据父表加载出父表中的字段以供选择,选择父表的一个字段作为关联的字段;
表字段属性配置模块,用于接受各数据表的表字段的属性配置,属性配置内容包括:选择表字段,给选择的字段配置取值类型和取值方式;
数据生成模块,当所有的配置都完成后,根据数据表之间关联关系,以每一个数据表为一节点,从根节点开始逐级往下一级节点生成各数据表的数据,即先生成父表数据,再生成子表数据,直至最末级节点的数据表的数据生成;生成的数据将通过Java中的反射技术调用对应的Java对象类中的对应的表字段的属性以及该属性的get/set方法,将生成的数据写入各数据表对应的表字段中。
第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:本发明通过设计一套通用的Java接口,通过配置的方式,实现了关联表的测试数据的自动生成,从根节点开始逐级往下一级节点线性生成各数据表的数据,子表中的数据能够继承父表中的部分数据,保证了数据的准确性和系统性;而且生成过程中还可采用Java多线程技术,基于生产者消费者模式,快速、稳定的将需要的测试数据生成落库,满足业务需求。另外在数据生成的过程中,还提供数据生成批次页面供用户观察生成的结果,不能以数据表为报错节点来报告错误,供用户及时修改发生错误的数据表的相关配置,并能由报错节点开始重新生成对应数据表的数据,然后继续完成本批次的数据生成,维护方便快捷。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明实施例一中方法中的流程图;
图2为本发明实施例数据源的配置界面示意图;
图3为本发明实施例数据源管理的配置界面示意图;
图4为本发明实施例导入配置表的配置界面示意图;
图5为本发明实施例数据表的数据生成条数及执行类的配置界面示意图;
图6为本发明实施例表间关联关系列表的配置界面示意图;
图7为本发明实施例表间关联关系添加的配置界面示意图;
图8为本发明实施例表间关联关系的配置结果示意图;
图9为本发明实施例表字段取值配置列表的配置界面示意图;
图10为本发明实施例表字段配置的配置界面示意图;
图11为本发明实施例表字段取值类型为字符串时的配置界面示意图;
图12为本发明实施例表字段取值类型为整数或小数时的配置界面示意图;
图13为本发明实施例表字段取值类型为字典类的配置界面示意图;
图14为本发明实施例表字段取值类型为名称取值时的配置界面示意图;
图15为本发明实施例的自己造的字典库的格式示意图;
图16为本发明实施例的表字段取值类型为取随机值的配置界面示意图;
图17为本发明实施例的表字段取值类型为取父表时的配置界面示意图;
图18为本发明实施例的生成数据前表配置列表的界面示意图;
图19为本发明实施例的各数据节点的线性关系示意图;
图20为本发明实施例的数据生成批次页面的示意图;
图21为本发明实施例二中装置的结构示意图;
图22为本发明实施例三中电子设备的结构示意图;
图23为本发明实施例四中介质的结构示意图。
具体实施方式
本申请实施例通过提供一种关联表的测试数据的生成方法、装置、设备和介质,通过配置的方式,实现了关联表的测试数据的自动生成,从根节点开始逐级往下一级节点线性生成各数据表的数据,子表中的数据能够继承父表中的部分数据,保证了数据的准确性和系统性。
本申请实施例中的技术方案,总体思路如下:通过设计一套通用的Java 接口,通过配置的方式,实现了关联表的测试数据的自动生成,从根节点开始逐级往下一级节点线性生成各数据表的数据,子表中的数据能够继承父表中的部分数据,保证了数据的准确性和系统性;而且生成过程中还可采用 Java多线程技术,基于生产者消费者模式,快速、稳定的将需要的测试数据生成落库,满足业务需求。另外在数据生成的过程中,还提供数据生成批次页面供用户观察生成的结果,不能以数据表为报错节点来报告错误,供用户及时修改发生错误的数据表的相关配置,并能由报错节点开始重新生成对应数据表的数据,然后继续完成本批次的数据生成,维护方便快捷。
实施例一
如图1所示,本实施例提供一种关联表的测试数据的生成方法,包括下述步骤:
S1、接受用户对数据源的配置;
通过配置数据源,拿到这个数据源下面的所有表以及表字段,如图2所示,点击图2中的“数据源管理添加”或者操作列中的修改,可进入到如图 3的页面,进行数据源的配置。
S2、根据用户选择所配置的数据源,将该数据源下的所有数据表做一次性导入,每个数据表均有相应的Java对象类;
数据源的配置完成后,即可进入如图4所示的表配置页面,选择配置的数据源,点击页面中的导入所有表按钮,会将选择的数据源下的所有数据表做一次性导入到配置表的操作,之后页面会展示出所导入的数据表。这些导入的数据表在我们的系统中应有对应的Java对象类,生成数据将通过Java 中的反射技术找到对应的Java对象类。
S3、接受各数据表之间关联关系的配置,配置内容包括:选择数据表的一个字段作为外键,选择该数据表关联的父表,并根据父表加载出父表中的字段以供选择,选择父表的一个字段作为关联的字段;
从图4中找到将要进行配置的表记录,点击操作列中的“表间关联”,将弹出如图6所示的该表的表间关联关系列表,在弹出的页面中可以tab页切换进行添加关联关系,如图7所示,即可配置表名、外外键、父表名称和父表字段。
以医院系统为例,配置关联关系如图8所示,门(急)诊费用记录是医疗费用表的子表,那么医疗费用记录表就是门(急)诊费用记录的父表,配置的时候就选择门(急)诊费用记录进行表间关联关系添加,外键为门(急) 诊费用记录的主索引id字段,父表则选择为医疗费用记录表,父表字段就选择医疗费用记录表的主索引标识字段。这样就完成了门(急)诊费用记录和医疗费用记录表的关联。之后同理继续配置医疗费用记录表的父表为患者信息表。完成后。就建立了一条线性关系:患者信息表→医疗费用记录→门 (急)诊费用记录。之后在生成数据时,会按该线性关系,先生成患者基本信息表,再生成医疗费用记录,最后生成门(急)诊费用记录。
S4、接受各数据表的表字段的属性配置,属性配置内容包括:选择表字段,给选择的字段配置取值类型和取值方式;
仍回到图4中,点击操作列中的“表字段配置”,则弹窗展示表字段取值配置列表,如图9所示,列表中展示该表中各个字段的取值类型以及取值方式。点击切换tab页的表字段配置取值配置添加,展示出表字段配置页面 (如图10),在该页面中,选择表字段,给选择的字段配置取值类型。现在的取值类型有:字符串、整数、小数、姓名、身份证、电话号码、主数据字典、员工字典、科室字典、名称取值、主键、取父表、取随机值、检查项目字典、检验项目字典、医嘱项目字典、收费项目字典,药品项目字典。这些取值类型需要看具体需要生成什么样的数据进行制定,可拓展。生成数据时,一边读取配置一边进行字段数据的生成,生成的数据将通过Java中的反射技术找到对应的Java对象类中的对应的字段属性以及属性的get/set方法,通过反射调用get/set方法,实现将生成的数据写入对应的类属性,也就是对应表的对应字段中。
如图10所示,选择不同的取值类型,需要配置的项将不一样,下面我将一一说明:生成数据中主要使用到了Java随机数的技术,再加上我们内置一些基础的字典库,两者配合使用,就能随机生成数据。
(1)字符串
如图11所示,取值类型为字符串时,可配置默认值,有配置默认值就使用默认值,没有默认值时将从文字编码库中随机生成4个长度的字符串。
(2)整数、小数
如图12所示,取值类型为字符串时,可配置生成范围或者默认值,有默认值使用默认值,没有默认值时将从配置的范围中生成整数或者小数,小数将四舍五入保留1位小数。
(3)字典取值
如图13所示,员工字典、科室字典、检查项目字典、检验项目字典、医嘱项目字典、收费项目字典,药品项目字典、主数据字典这些均为字典取值,可配置其是否取字典名称。由于字典中有编码以及名称,配置取字典名称,将从字典中随机取一个字典项,每条记录中的相同字典的数据,将会是同一个字典值。这边的主数据字典比较特殊,因为已经有了字段和字典的映射,这边的主数据字典相当于直接拿过来用,如果字段配置了取主数据字典,会从已经配置好的字段和字典映射中取字典值,这个是展示的这个项目所特有的,若此生成数据功能放在其他项目中使用,则忽略或去除取主数据字典即可。
(4)姓名、身份证、电话号码、主键
姓名、身份证、电话号码、主键无需进行配置,将随机生成。
(5)名称取值
如图14所示,名称取值从自己造的字典库中随机取内容,若内容配置项有选择,则取配置内容的值,若内容配置项没有选择,则随机从改名称下随机取内容值。上述中提到的自己造的字典库其实就是一张表,如图15所示,表中存放着一些需要的常见值。
(6)取随机值
如图16所示,取随机数需要配置名称,如随机数10,则将随机生成10 位的随机数。
(7)取父表
如图17所示,取父表需要配置父表的名称以及父表字段。
S5、当所有的配置都完成后,根据数据表之间关联关系,以每一个数据表为一节点,从根节点开始逐级往下一级节点生成各数据表的数据,即先生成父表数据,再生成子表数据,直至最末级节点的数据表的数据生成;生成的数据将通过Java中的反射技术调用对应的Java对象类中的对应的表字段的属性以及该属性的get/set方法,将生成的数据写入各数据表对应的表字段中。
如:点击图18中的“生成”按钮,会从表配置的根节点开始往下生成数据,即为先生成父表数据,再生成子表数据。
本发明实施例的上述配置均为生成逻辑的配置,生成逻辑就是用来在生成数据时进行的逻辑判断,包括通用的生成逻辑和特殊生成逻辑,通用的生成逻辑是预先设计好的,用于数据生成前,数据生成中,数据生成后的逻辑判断,可以不用人工配置,而是自动填写在图5中的“执行类”的框中,这里的执行类为逻辑处理的代码执行类,是设计好的Java接口。而特殊生成逻辑是为了特殊的数据生成逻辑而单独制定的代码执行类,要单独设计Java 接口来实现特殊逻辑,配置时需人工填写在图5的“执行类”的框中。
如图19所示,当用户将所有的表关联关系建立之后,就如同建立了一棵树,这些表都通过关联关系进行,表A有子表为表B和表C,表B有子表表D和表E,表C有子表F,表E有子表G。在这棵树中,每张表都可看成为一个节点,当一个节点生成完成后,才会进行其子节点的生成,即表 A生成数据,表A所有数据生成完成后,才开始表B和表C数据的生成,一是涉及子表中字段需要取父表中的数据,二是可以控制其生成过程中出错不往下执行,假设我现在生成表A→表C→表F,表A→表B→表D/表E,我在生成表C的时候出错了,那我表F就不进行生成,表B生成正常,那表D/表F继续生成。如此一来,就是数据的线性生成过程,直至生成完成最末级,完成生成数据。
其中,作为本实施例的一种更优或更为具体的实现方式:
所述步骤S3中还接受各数据表生成的数据条数的配置;所述数据条数的配置是指本数据表相对于父表数据条数的倍数配置;若父表数据条数为m,所述倍数配置为n,则本数据表实际生成的数据条数的计算公式为:m×n。数据条数的计算是在生成数据前进行的,比如父表有10条数据,倍数配置为12条,那么这张数据表就会生成10×12=120条数据。如果该数据表没有父表,那么配置多少条就生成多少条。
点击图4操作列中的“修改”,就可以对数据表进行生成条数进行修改,修改页面如图5所示。
再如图20所示,在数据生成的过程中,还提供数据生成批次页面供用户观察生成的结果,若在生成某个数据表的过程中发生错误,则以该数据表为一报错节点来报告错误,并提供相应的配置修改入口,在用户修改该数据表的相关配置后,由报错节点开始重新生成对应数据表的数据,然后继续完成本批次的数据生成。所述批次就是每点一次“生成”即为一批次,而节点就是每个数据表即为一个节点。
所述生成数据时基于生产者消费者模式,采用Java多线程技术同步生成数据。利用Java多线程技术,可以快速且同步的生成数据,例如一张表要生成10000条数据,生产者按500条数据划分,就可以分为10000/500=20 个生产者线程去同步生成数据,每生成完1000条数据我们就消费入库一次,就有10个消费者线程。如此一来,便可以高效的生成与写入数据。
基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。
实施例二
如图21所示,在本实施例中提供了一种关联表的测试数据的生成装置,包括:
数据源配置模块,用于接受用户对数据源的配置;
数据表导入模块,用于接受用户选择所配置的数据源,并将该数据源下的所有数据表做一次性导入,每个数据表均有相应的Java对象类;
表关联配置模块,用于接受各数据表之间关联关系的配置,配置内容包括:选择数据表的一个字段作为外键,选择该数据表关联的父表,并根据父表加载出父表中的字段以供选择,选择父表的一个字段作为关联的字段;
表字段属性配置模块,用于接受各数据表的表字段的属性配置,属性配置内容包括:选择表字段,给选择的字段配置取值类型和取值方式;
数据生成模块,当所有的配置都完成后,根据数据表之间关联关系,以每一个数据表为一节点,从根节点开始逐级往下一级节点生成各数据表的数据,即先生成父表数据,再生成子表数据,直至最末级节点的数据表的数据生成;生成的数据将通过Java中的反射技术调用对应的Java对象类中的对应的表字段的属性以及该属性的get/set方法,将生成的数据写入各数据表对应的表字段中。
其中,作为本实施例的一种更优或更为具体的实现方式:
所述表关联配置模块还接受各数据表生成的数据条数的配置;所述数据条数的配置是指本数据表相对于父表数据条数的倍数配置;
若父表数据条数为m,所述倍数配置为n,则本数据表实际生成的数据条数的计算公式为:m×n。
所述数据生成模块在数据生成的过程中,还提供数据生成批次页面供用户观察生成的结果,若在生成某个数据表的过程中发生错误,则以该数据表为一报错节点来报告错误,并提供相应的配置修改入口,在用户修改该数据表的相关配置后,由报错节点开始重新生成对应数据表的数据,然后继续完成本批次的数据生成。
所述数据生成模块在生成数据时是基于生产者消费者模式,采用Java 多线程技术同步生成数据。
由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法同样适用于本发明实施例二所介绍的装置,且本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。
实施例三
如图22所示,本实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
如图23所示,本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
本申请实施例提供的方法、装置、系统、设备及介质,至少具有如下技术效果或优点:本发明通过设计一套通用的Java接口,通过配置的方式,实现了关联表的测试数据的自动生成,从根节点开始逐级往下一级节点线性生成各数据表的数据,子表中的数据能够继承父表中的部分数据,保证了数据的准确性和系统性;而且生成过程中还可采用Java多线程技术,基于生产者消费者模式,快速、稳定的将需要的测试数据生成落库,满足业务需求。另外在数据生成的过程中,还提供数据生成批次页面供用户观察生成的结果,不能以数据表为报错节点来报告错误,供用户及时修改发生错误的数据表的相关配置,并能由报错节点开始重新生成对应数据表的数据,然后继续完成本批次的数据生成,维护方便快捷。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置或系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (10)
1.一种关联表的测试数据的生成方法,其特征在于:包括下述步骤:
S1、接受用户对数据源的配置;
S2、根据用户选择所配置的数据源,将该数据源下的所有数据表做一次性导入,每个数据表均有相应的Java对象类;
S3、接受各数据表之间关联关系的配置,配置内容包括:选择数据表的一个字段作为外键,选择该数据表关联的父表,并根据父表加载出父表中的字段以供选择,选择父表的一个字段作为关联的字段;
S4、接受各数据表的表字段的属性配置,属性配置内容包括:选择表字段,给选择的字段配置取值类型和取值方式;
S5、当所有的配置都完成后,根据数据表之间关联关系,以每一个数据表为一节点,从根节点开始逐级往下一级节点生成各数据表的数据,即先生成父表数据,再生成子表数据,直至最末级节点的数据表的数据生成;生成的数据将通过Java中的反射技术调用对应的Java对象类中的对应的表字段的属性以及该属性的get/set方法,将生成的数据写入各数据表对应的表字段中。
2.根据权利要求1所述的一种关联表的测试数据的生成方法,其特征在于:所述步骤S3中还接受各数据表生成的数据条数的配置;所述数据条数的配置是指本数据表相对于父表数据条数的倍数配置;
若父表数据条数为m,所述倍数配置为n,则本数据表实际生成的数据条数的计算公式为:m×n。
3.根据权利要求1所述的一种关联表的测试数据的生成方法,其特征在于:在数据生成的过程中,还提供数据生成批次页面供用户观察生成的结果,若在生成某个数据表的过程中发生错误,则以该数据表为一报错节点来报告错误,并提供相应的配置修改入口,在用户修改该数据表的相关配置后,由报错节点开始重新生成对应数据表的数据,然后继续完成本批次的数据生成。
4.根据权利要求1所述的一种关联表的测试数据的生成方法,其特征在于:所述生成数据时基于生产者消费者模式,采用Java多线程技术同步生成数据。
5.一种关联表的测试数据的生成装置,其特征在于:包括:
数据源配置模块,用于接受用户对数据源的配置;
数据表导入模块,用于接受用户选择所配置的数据源,并将该数据源下的所有数据表做一次性导入,每个数据表均有相应的Java对象类;
表关联配置模块,用于接受各数据表之间关联关系的配置,配置内容包括:选择数据表的一个字段作为外键,选择该数据表关联的父表,并根据父表加载出父表中的字段以供选择,选择父表的一个字段作为关联的字段;
表字段属性配置模块,用于接受各数据表的表字段的属性配置,属性配置内容包括:选择表字段,给选择的字段配置取值类型和取值方式;
数据生成模块,当所有的配置都完成后,根据数据表之间关联关系,以每一个数据表为一节点,从根节点开始逐级往下一级节点生成各数据表的数据,即先生成父表数据,再生成子表数据,直至最末级节点的数据表的数据生成;生成的数据将通过Java中的反射技术调用对应的Java对象类中的对应的表字段的属性以及该属性的get/set方法,将生成的数据写入各数据表对应的表字段中。
6.根据权利要求5所述的一种关联表的测试数据的生成装置,其特征在于:所述表关联配置模块还接受各数据表生成的数据条数的配置;所述数据条数的配置是指本数据表相对于父表数据条数的倍数配置;
若父表数据条数为m,所述倍数配置为n,则本数据表实际生成的数据条数的计算公式为:m×n。
7.根据权利要求5所述的一种关联表的测试数据的生成装置,其特征在于:所述数据生成模块在数据生成的过程中,还提供数据生成批次页面供用户观察生成的结果,若在生成某个数据表的过程中发生错误,则以该数据表为一报错节点来报告错误,并提供相应的配置修改入口,在用户修改该数据表的相关配置后,由报错节点开始重新生成对应数据表的数据,然后继续完成本批次的数据生成。
8.根据权利要求5所述的一种关联表的测试数据的生成装置,其特征在于:所述数据生成模块在生成数据时是基于生产者消费者模式,采用Java多线程技术同步生成数据。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011395037.0A CN112685288A (zh) | 2020-12-03 | 2020-12-03 | 一种关联表的测试数据的生成方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011395037.0A CN112685288A (zh) | 2020-12-03 | 2020-12-03 | 一种关联表的测试数据的生成方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112685288A true CN112685288A (zh) | 2021-04-20 |
Family
ID=75447205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011395037.0A Pending CN112685288A (zh) | 2020-12-03 | 2020-12-03 | 一种关联表的测试数据的生成方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685288A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010443A (zh) * | 2021-05-07 | 2021-06-22 | 中国工商银行股份有限公司 | 基于金融核心交易场景的数据库测试数据生成方法及装置 |
CN113094279A (zh) * | 2021-04-25 | 2021-07-09 | 深圳前海微众银行股份有限公司 | 测试数据的构造方法、装置、系统及计算机可读存储介质 |
CN113468186A (zh) * | 2021-09-02 | 2021-10-01 | 四川大学华西医院 | 数据表主键关联方法、装置、计算机设备及可读存储介质 |
CN113485911A (zh) * | 2021-06-07 | 2021-10-08 | 广发银行股份有限公司 | 一种基于银行业务的测试数据生成平台 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3301580A1 (en) * | 2016-09-30 | 2018-04-04 | Wipro Limited | System for automatically generating test data for testing applications |
CN109299332A (zh) * | 2018-11-02 | 2019-02-01 | 芜湖智久机器人有限公司 | 一种将类和数据库映射的方法、装置及存储介质 |
CN109815252A (zh) * | 2018-12-14 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 测试数据生成方法、装置、计算机设备及可读存储介质 |
CN110188037A (zh) * | 2019-05-13 | 2019-08-30 | 北京一览群智数据科技有限责任公司 | 一种数据模拟方法及装置 |
CN111651363A (zh) * | 2020-06-29 | 2020-09-11 | 平安银行股份有限公司 | 测试数据获取方法、装置、电子设备及介质 |
-
2020
- 2020-12-03 CN CN202011395037.0A patent/CN112685288A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3301580A1 (en) * | 2016-09-30 | 2018-04-04 | Wipro Limited | System for automatically generating test data for testing applications |
CN109299332A (zh) * | 2018-11-02 | 2019-02-01 | 芜湖智久机器人有限公司 | 一种将类和数据库映射的方法、装置及存储介质 |
CN109815252A (zh) * | 2018-12-14 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 测试数据生成方法、装置、计算机设备及可读存储介质 |
CN110188037A (zh) * | 2019-05-13 | 2019-08-30 | 北京一览群智数据科技有限责任公司 | 一种数据模拟方法及装置 |
CN111651363A (zh) * | 2020-06-29 | 2020-09-11 | 平安银行股份有限公司 | 测试数据获取方法、装置、电子设备及介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094279A (zh) * | 2021-04-25 | 2021-07-09 | 深圳前海微众银行股份有限公司 | 测试数据的构造方法、装置、系统及计算机可读存储介质 |
CN113010443A (zh) * | 2021-05-07 | 2021-06-22 | 中国工商银行股份有限公司 | 基于金融核心交易场景的数据库测试数据生成方法及装置 |
CN113010443B (zh) * | 2021-05-07 | 2024-02-20 | 中国工商银行股份有限公司 | 基于金融核心交易场景的数据库测试数据生成方法及装置 |
CN113485911A (zh) * | 2021-06-07 | 2021-10-08 | 广发银行股份有限公司 | 一种基于银行业务的测试数据生成平台 |
CN113468186A (zh) * | 2021-09-02 | 2021-10-01 | 四川大学华西医院 | 数据表主键关联方法、装置、计算机设备及可读存储介质 |
CN113468186B (zh) * | 2021-09-02 | 2021-12-21 | 四川大学华西医院 | 数据表主键关联方法、装置、计算机设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112685288A (zh) | 一种关联表的测试数据的生成方法、装置、设备和介质 | |
JP6916403B2 (ja) | データへの論理的妥当性検査規則の指定および適用 | |
US8615526B2 (en) | Markup language based query and file generation | |
US10120654B2 (en) | Domain specific language design | |
CN110188135B (zh) | 文件生成方法及设备 | |
AU2014201573A1 (en) | Improved data integration tool | |
US9043757B2 (en) | Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files | |
US9147040B2 (en) | Point-in-time query system | |
CN113268500B (zh) | 业务处理方法、装置及电子设备 | |
US20110264703A1 (en) | Importing Tree Structure | |
CN110083617B (zh) | 一种ddl语句的处理方法、装置、电子设备和介质 | |
WO2020117655A1 (en) | System and method for ingesting data | |
CN114860699A (zh) | 数据质量检测方法、装置、设备和存储介质 | |
CN109977104B (zh) | 数据管理方法及装置 | |
CN114385155A (zh) | vue项目可视化工具生成方法、装置、设备及存储介质 | |
CN114281845A (zh) | 索引生成方法、装置、电子设备及可读存储介质 | |
CN113761040A (zh) | 数据库与应用程序双向映射方法、设备、介质及程序产品 | |
CN113687827A (zh) | 基于微件的数据列表生成方法、装置、设备及存储介质 | |
CN113609128A (zh) | 生成数据库实体类的方法、装置、终端设备及存储介质 | |
Långbacka | A HOL formalisation of the temporal logic of actions | |
CN109491604B (zh) | 一种硬盘盘符重复问题的处理方法、装置及系统 | |
CN112764742A (zh) | 一种数据处理的方法和装置 | |
CN116795725B (zh) | 一种临床电子数据采集系统的自动验库方法和系统 | |
CN112506506B (zh) | 一种电子病历浏览器页面的配置方法、装置、设备和介质 | |
US7882487B2 (en) | Method of generating C code on the basis of UML specifications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |