一种基于数据库转换的数据验证程序生成方法与流程

文档序号:35558071发布日期:2023-09-24 01:44阅读:22来源:国知局
一种基于数据库转换的数据验证程序生成方法与流程

本发明属于信息技术,尤其涉及一种基于数据库转换的数据验证程序生成方法。


背景技术:

1、在信息技术领域,由于应用场景的需要,如架构升级,需要对数据库的数据进行转换,这种转换通常面临表结构的变动。在该场景下测试人员往往需要对转化后的数据进行验证。目前,测试人员可采用手工核对数据或编写脚本对转换前后的数据进行验证,保证数据转换符合预期。手工测试具有覆盖度低、成本高等缺点;编写脚本方式虽在一定程度上可提高覆盖度,但存在编写脚本耗费资源大、维护成本高等缺点。


技术实现思路

1、针对现有技术不足,本发明的目的在于提供一种基于数据库转换的数据验证程序生成方法,包括关系型与非关系型、关系型与关系型数据库的数据转化验证,用于解决现有测试方法在测试工作中资源消耗大,在海量数据验证中存在覆盖度低的问题。实现不同数据库转化后数据的快速验证。

2、本发明提供如下技术方案:

3、一种基于数据库转换的数据验证程序生成方法,包括以下步骤:

4、s1,创建工程,在工程中创建各个模块对应package;

5、s2,创建数据库模块,在数据库模块中封装各类数据库连接及查询方法;

6、s3,创建数据校验模块,在数据校验模块中封装数据校验方法;

7、s4,创建数据转换模板,在数据转换模板中封装数据转换的基本规则;

8、s5,创建测试脚本工程,可以基于pytest框架创建测试脚本工程;

9、s6,创建主模块,主模块提供两个配置功能,一个校验脚本生成功能和一个校验程序生成功能。

10、优选的,在步骤s1中,所述模块包括主模块、数据库模块、数据校验模块、转换模块、测试脚本工程、转换目标模块。

11、优选的,在步骤s1中,所述package包括用于存放主模块的主模块package、用于存放数据库模块和数据校验模块的公共方法package、用于存放转换模板的转换模板package、用于存放测试脚本工程的脚本package、用于存放转换目标模块的转换目标模块package。

12、优选的,在步骤s2中,在所述数据库模块中封装各类数据库连接及查询方法,所述数据库包括关系型数据库和非关系型数据库。

13、优选的,在步骤s3中,所述数据校验方法用于校验两个json格式字符串str1和str2是否完全一致,当str1和str2完全一致时,返回true;当str1和str2不一致时,返回有差异的字段名以及str1、st2中该字段值和类型。

14、优选的,在步骤s4中,所述数据转换的基本规则包括直接赋值、字段拼接、数值变换、数据类型转换、映射关系、分支判断。

15、优选的,在步骤s6中,具体实现包括以下步骤:

16、s61,提供用户数据库配置功能,并自动获取源数据库和目标数据库对应的两个字段集合;

17、s62,根据步骤s61中读取的字段集合以及数据转换基本规则,提供用户转换规则配置功能;s63,根据步骤s62生成的转换规则,提供用户校验脚本生产功能;

18、s64,将步骤s63中生成的校验脚本编译、打包生成可执行程序。

19、优选的,在步骤s4中,在封装数据转换基本规则时,对模板中需要替换的关键词进行打标,以便后续根据配置进行关键词替换。界定关键词的原则是,程序能够根据配置,以简单逻辑替换关键词,生成可用的python语句。

20、优选的,在步骤s5中,在实际实施过程中,测试脚本工程的入参可以支持两种形式;第一种形式是单条数据校验,此时入参需要包含校验数据的唯一id,可以是一个字段、也可以是多个字段的组合。

21、优选的,第二种形式是批量数据校验,此时入参需要包含校验数据的文件地址,文件内容需要包含校验数据的唯一id,可以是一个字段,也可以是多个字段的组合;在批量数据校验时,使用pytest测试框架的数据驱动,保证在遇到校验不通过数据时,后续数据可继续执行。

22、优选的,所述的批量数据校验,还可以采用以下方式:

23、s51、获取待校验数据;

24、s52、获取依据结构化查询语言配置表中的结构化查询语言以及正则表达式配置得到的校验规则;

25、s53、依据所述校验规则对所述待校验数据进行校验。

26、优选的,依据所述校验规则对所述待校验数据进行校验之后,还包括:对校验结果进行翻译,将校验结果翻译成预设文本;将翻译后的校验结果发送给显示设备并控制所述显示设备对翻译后的校验结果进行展示。

27、优选的,依据所述校验规则对所述待校验数据进行校验,具体包括以下步骤:

28、将校验规则中的结构化查询语言转换成游标形式运行;

29、执行所述结构化查询语言并依据基于正则表达式设置的预设过滤条件对所述待校验数据进行筛选;

30、将筛选得到的问题数据进行打标,以实现对待校验数据进行行级别校验或列级别校验;对不符合校验规则的记录进行逐行更新,将校验结果写入校验数据表的校验结果代码字段中,以使得翻译模块可以依据结果代码关联校验项字典得到具体描述。

31、优选的,依据所述校验规则对所述待校验数据进行校验,该校验方式为:获取待校验数据的字段配置信息,判断所述字段配置信息的类型是第一字段类型还是第二字段类型,如果所述字段配置信息的类型为第一字段类型时,采用列级别校验方式对所述待校验数据进行校验,如果所述字段配置信息的类型为第二字段类型时,采用行级别校验方式对所述待校验数据进行校验;其中,所述第一字段类型为表名+字段名,所述第二字段类型为表名。

32、与现有技术相比,本发明具有以下有益效果:

33、(1)本发明一种基于数据库转换的数据验证程序生成方法,通过配置规则和规则转化程序生成所需的程序,与测试脚本相比,减少维护脚本成本;由于规则化,可供无代码经验人员使用,增加该发明使用用户群体。

34、(2)本发明一种基于数据库转换的数据验证程序生成方法,通过数据转化验证程序生成,基于此,可实现人工测试无法比拟的海量数据转化验证,与人工测试相比可极大减少人力成本投入,降低人工验证成本;同时提高数据验证效率和数据覆盖范围。

35、(3)本发明一种基于数据库转换的数据验证程序生成方法,可支持多种数据库,也包括关系型与非关系型、非关系型与关系型、关系型与关系型等数据库的数据转化验证,提高数据验证数据库的适应性。



技术特征:

1.一种基于数据库转换的数据验证程序生成方法,其特征在于,包括以下步骤:

2.根据权利要求1所述一种基于数据库转换的数据验证程序生成方法,其特征在于,在步骤s1中,所述模块包括主模块、数据库模块、数据校验模块、转换模块、测试脚本工程、转换目标模块。

3.根据权利要求1和2所述一种基于数据库转换的数据验证程序生成方法,其特征在于,在步骤s1中,所述package包括用于存放主模块的主模块package、用于存放数据库模块和数据校验模块的公共方法package、用于存放转换模板的转换模板package、用于存放测试脚本工程的脚本package、用于存放转换目标模块的转换目标模块package。

4.根据权利要求1所述一种基于数据库转换的数据验证程序生成方法,其特征在于,在步骤s2中,在所述数据库模块中封装各类数据库连接及查询方法,所述数据库包括关系型数据库和非关系型数据库。

5.根据权利要求1所述一种基于数据库转换的数据验证程序生成方法,其特征在于,在步骤s3中,所述数据校验方法用于校验两个json格式字符串str1和str2是否完全一致,当str1和str2完全一致时,返回true;当str1和str2不一致时,返回有差异的字段名以及str1、str2中该字段值和类型。

6.根据权利要求1所述一种基于数据库转换的数据验证程序生成方法,其特征在于,在步骤s4中,所述数据转换的基本规则包括直接赋值、字段拼接、数值变换、数据类型转换、映射关系、分支判断。

7.根据权利要求1所述一种基于数据库转换的数据验证程序生成方法,其特征在于,在步骤s6中,具体实现包括以下步骤:

8.根据权利要求1所述一种基于数据库转换的数据验证程序生成方法,其特征在于,在步骤s4中,在封装数据转换基本规则时,对模板中需要替换的关键词进行打标,以便后续根据配置进行关键词替换。界定关键词的原则是,程序能够根据配置,以简单逻辑替换关键词,生成可用的python语句。

9.根据权利要求1所述一种基于数据库转换的数据验证程序生成方法,其特征在于,在步骤s5中,在实际实施过程中,测试脚本工程的入参可以支持两种形式;其中第一种形式是单条数据校验,此时入参需要包含校验数据的唯一id,可以是一个字段、也可以是多个字段的组合。

10.根据权利要求9所述一种基于数据库转换的数据验证程序生成方法,其特征在于,数据校验还可以采用以下方式:


技术总结
本发明公开了一种基于数据库转换的数据验证程序生成方法,包括以下步骤:S1,创建工程,在工程中创建各个模块对应package;S2,创建数据库模块,在数据库模块中封装各类数据库连接及查询方法;S3,创建数据校验模块,在数据校验模块中封装数据校验方法;S4,创建数据转换模板,在数据转换模板中封装数据转换的基本规则;S5,创建测试脚本工程,可以基于pytest框架创建测试脚本工程;S6,创建主模块,主模块提供两个配置功能,一个校验脚本生成功能和一个校验程序生成功能。本发明基于数据库转换的数据验证程序生成方法,用于解决现有测试方法在测试工作中资源消耗大,在海量数据验证中存在覆盖度低的问题。实现不同数据库转化后数据的快速验证。

技术研发人员:徐辉,吴鹏,秦恒,罗丹,张丽娟,车玉旭
受保护的技术使用者:中电通商数字技术(上海)有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1