一种ETL软件测试方法和装置制造方法及图纸

技术编号:20865807 阅读:33 留言:0更新日期:2019-04-17 09:13
本发明专利技术涉及软件测试技术领域,提供了一种ETL软件测试方法和装置,其中方法包括:将源数据导入预设的测试流程进行处理,测试流程包括数据读取、数据交互转换与数据加载;获取处理后的测试结果,将测试结果与预期结果进行匹配,并将匹配结果记录;将记录的匹配结果反馈给测试人员;匹配过程具体为:先将测试结果与预期结果的数据结构匹配;数据结构匹配成功后,再将测试结果与预期结果的行数匹配;行数匹配成功后,继续对测试结果中每一行数据进行匹配。本发明专利技术通过自动化的方式完成数据源的获取、数据转换转换设计以及结果匹配校验,实现ETL软件的自动化测试,在匹配校验时采用由简到难的分步匹配,大大节约了测试运行时间,提高匹配效率。

【技术实现步骤摘要】
一种ETL软件测试方法和装置
本专利技术涉及软件测试
,具体涉及一种ETL软件测试方法和装置。
技术介绍
ETL(Extract-Transform-Load,数据抽取、转换和加载)是一个完整的从联机事务数据库中提取数据、进行转换处理、然后载入至数据仓库的过程,负责完成数据从数据源向目标数据仓库的转化,是实施数据仓库的重要步骤。在ETL的测试过程中,需将完成测试后的数据与预期结果匹配,以进行结果验证,只有数据完全匹配,才能认定ETL的测试过程是成功的;当出现匹配失败时,证明测试过程存在问题,需要对测试过程进行调整改进。然而,ETL测试数据量通常十分庞大,如果对整体的数据进行逐一匹配,将使得测试过程非常复杂,任务量繁重,匹配效率低,测试过程运行时间长;而且,在进行调整改进时,未将匹配失败时对应的差异化数据进行有效利用,使得对测试过程的调整缺乏针对性和目的性,比较费时。鉴于此,克服上述现有技术所存在的缺陷是本
亟待解决的问题。
技术实现思路
本专利技术需要解决的技术问题是:在ETL测试过程中,数据量通常十分庞大,如果对整体数据进行逐一匹配将使任务量繁重,匹配效率低,测试过程运行时间长;而且,在进行调整改进时,对测试过程的调整缺乏针对性和目的性,比较费时。本专利技术通过如下技术方案达到上述目的:第一方面,本专利技术提供了一种ETL软件测试方法,对于源数据,预先生成预期结果,所述方法包括:将源数据导入预设的测试流程进行处理;其中,所述测试流程包括数据读取、数据交互转换与数据加载;获取处理后的测试结果,将测试结果与预期结果进行分步匹配,并将匹配结果进行记录;将记录的所述匹配结果反馈给测试人员;其中,所述测试结果与所述预期结果均由二维表组成,所述将测试结果与预期结果进行分步匹配具体为:将所述测试结果的数据结构与所述预期结果的数据结构进行匹配;数据结构匹配成功后,将所述测试结果的行数与所述预期结果的行数进行匹配,行数匹配成功后,继续将所述测试结果中的每一行数据与所述预期结果中的对应行数据进行逐行匹配。优选的,所述将所述测试结果的数据结构与所述预期结果的数据结构进行匹配具体为:将所述测试结果的列数与所述预期结果的列数进行匹配;列数匹配成功后,继续将所述测试结果每一列的数据定义与所述预期结果每一列的数据定义进行匹配。优选的,当所述测试结果与所述预期结果之间行数匹配成功后,所述方法还包括:统计所述测试结果的总数据量,将所述测试结果的总数据量大小与所述预期结果的总数据量大小进行匹配,总数据量大小匹配成功后,继续将所述测试结果中的每一行数据与所述预期结果中的对应行数据进行匹配。优选的,所述将所述测试结果中的每一行数据与所述预期结果中的对应行数据进行匹配具体为:统计所述测试结果中每一行的数据量大小;逐行匹配所述测试结果中每行的数据量大小与所述预期结果中对应行的数据量大小;当各行的数据量大小均匹配成功后,继续逐行匹配所述测试结果中每行的具体数据与所述预期结果中对应行的具体数据。优选的,所述将所述测试结果中的每一行数据与所述预期结果中的对应行数据进行匹配具体为:统计所述测试结果中每一行的数据量大小,并将所述测试结果按照数据量从小到大的顺序在二维表中排列各行;逐行匹配所述测试结果中每行的数据量大小与所述预期结果中对应行的数据量大小;当各行的数据量大小均匹配成功后,按照行的排列顺序,依次逐行匹配所述测试结果中每行的具体数据与所述预期结果中对应行的具体数据。优选的,当所述测试结果与所述预期结果之间数据结构不匹配,或者行数不匹配,或者所述测试结果与所述预期结果之间存在任一行的数据不匹配时,所述方法还包括:根据数据匹配结果,将所述测试结果与所述预期结果之间的差异化数据输出;重新将源数据导入预设的测试流程进行处理,并对处理过程中各环节产生的中间数据进行记录;将所述差异化数据分别与各环节产生的中间数据进行匹配,进而确定所述差异化数据在所述测试流程中的出现环节,并生成测试报告反馈给测试人员。优选的,在所述将所述测试结果中的每一行数据与所述预期结果中的对应行数据进行匹配的过程中,当首次出现所述测试结果中的任一行数据与所述预期结果中对应行的数据不匹配时,停止数据匹配;或者,当所述测试结果与所述预期结果之间的差异化数据的占比达到预设阈值时,停止数据匹配。优选的,所述源数据的获取方法具体为:连接待检测软件的数据源,通过读取所述数据源的系统表获取数据源表的相关信息,并将所述相关信息写入到ETL的系统表中;其中,所述相关信息包括数据结构、字段类型以及主键信息中的一项或多项。优选的,所述将源数据导入预设的测试流程进行处理具体包括:创建数据同步的测试流程,在所述测试流程中添加数据读取组件、数据清洗转换组件与数据加载组件,并设置需要同步的源表;其中,所述源表用于存储需要同步的源数据;根据测试功能对测试流程进行不同的转换设计,所述转换设计包括增量数据同步设计、数据过滤设计和数据清洗转换设计中的一项或多项;通过添加的各数据组件,使源数据按照设计的测试流程进行数据同步的处理。优选的,在所述将记录的所述匹配结果反馈给测试人员之后,所述方法还包括ant脚本的编写和执行;所述ant脚本的编写具体为:编写所述测试流程的预置条件的脚本;调用将源数据导入测试流程和获取测试结果作匹配时编写的代码,用于完成所述测试流程以及数据匹配;调用反馈匹配结果时编写的代码,用于完成匹配结果的反馈;编写恢复脚本,用于将测试用的源数据和预期结果恢复到初始状态;所述ant脚本的执行具体为:按照预设的周期执行所述ant脚本,进而完成周期性的ETL软件测试。第二方面,本专利技术还提供了一种ETL软件测试装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成上述第一方面所述的ETL软件测试方法。与现有技术相比,本专利技术的有益效果是:本专利技术提供的ETL软件测试方法可实现ETL软件的自动化测试,通过自动化的方式完成数据源的获取、数据交互转换以及结果匹配检验等过程,在结果匹配校验时,可进行由简到难的分步匹配,大大节约测试运行时间,提高匹配效率。同时,对于不匹配的差异化数据也有效利用起来,通过将差异化数据与中间数据匹配可确定导致匹配失败的环节,有利于测试人员迅速、准确地锁定测试中的问题所在,进而有针对性地作出调整,提高调试效率。【附图说明】为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种ETL软件测试方法的流程图;图2为本专利技术实施例提供的测试结果与预期结果的二维表示意图;图3为本专利技术实施例提供的一种分步匹配测试结果与预期结果的流程图;图4为图3中第二步数据匹配的一种实施方法流程图;图5为图3中第二步数据匹配的另一种实施方法流程图;图6为图1中步骤10的具体实施流程图;图7为本专利技术实施例提供的一种ETL软件测试装置的架构图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚本文档来自技高网...

【技术保护点】
1.一种ETL软件测试方法,其特征在于,对于源数据,预先生成预期结果,所述方法包括:将源数据导入预设的测试流程进行处理;其中,所述测试流程包括数据读取、数据交互转换与数据加载;获取处理后的测试结果,将测试结果与预期结果进行分步匹配,并将匹配结果进行记录;将记录的所述匹配结果反馈给测试人员;其中,所述测试结果与所述预期结果均由二维表组成,所述将测试结果与预期结果进行分步匹配具体为:将所述测试结果的数据结构与所述预期结果的数据结构进行匹配;数据结构匹配成功后,将所述测试结果的行数与所述预期结果的行数进行匹配;行数匹配成功后,继续将所述测试结果中的每一行数据与所述预期结果中的对应行数据进行逐行匹配。

【技术特征摘要】
1.一种ETL软件测试方法,其特征在于,对于源数据,预先生成预期结果,所述方法包括:将源数据导入预设的测试流程进行处理;其中,所述测试流程包括数据读取、数据交互转换与数据加载;获取处理后的测试结果,将测试结果与预期结果进行分步匹配,并将匹配结果进行记录;将记录的所述匹配结果反馈给测试人员;其中,所述测试结果与所述预期结果均由二维表组成,所述将测试结果与预期结果进行分步匹配具体为:将所述测试结果的数据结构与所述预期结果的数据结构进行匹配;数据结构匹配成功后,将所述测试结果的行数与所述预期结果的行数进行匹配;行数匹配成功后,继续将所述测试结果中的每一行数据与所述预期结果中的对应行数据进行逐行匹配。2.根据权利要求1所述的ETL软件测试方法,其特征在于,所述将所述测试结果的数据结构与所述预期结果的数据结构进行匹配具体为:将所述测试结果的列数与所述预期结果的列数进行匹配;列数匹配成功后,继续将所述测试结果每一列的数据定义与所述预期结果每一列的数据定义进行匹配。3.根据权利要求1所述的ETL软件测试方法,其特征在于,当所述测试结果与所述预期结果之间行数匹配成功后,所述方法还包括:统计所述测试结果的总数据量,将所述测试结果的总数据量大小与所述预期结果的总数据量大小进行匹配,总数据量大小匹配成功后,继续将所述测试结果中的每一行数据与所述预期结果中的对应行数据进行匹配。4.根据权利要求1或3所述的ETL软件测试方法,其特征在于,所述将所述测试结果中的每一行数据与所述预期结果中的对应行数据进行匹配具体为:统计所述测试结果中每一行的数据量大小;逐行匹配所述测试结果中每行的数据量大小与所述预期结果中对应行的数据量大小;当各行的数据量大小均匹配成功后,继续逐行匹配所述测试结果中每行的具体数据与所述预期结果中对应行的具体数据。5.根据权利要求1或3所述的ETL软件测试方法,其特征在于,所述将所述测试结果中的每一行数据与所述预期结果中的对应行数据进行匹配具体为:统计所述测试结果中每一行的数据量大小,并将所述测试结果按照数据量从小到大的顺序在二维表中排列各行;逐行匹配所述测试结果中每行的数据量大小与所述预期结果中对应行的数据量大小;当各行的数据量大小均匹配成功后,按照行的排列顺序,依次逐行匹配所述测试结果中每行的具体数据与所述预期结果中对应行的具体数据。6.根据权利要...

【专利技术属性】
技术研发人员:付博文余院兰冯源付铨
申请(专利权)人:武汉达梦数据库有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1