数据测试的方法、装置、设备及介质与流程

未命名 08-22 阅读:123 评论:0


1.本技术涉及信息技术领域,尤其涉及一种数据测试的方法、装置、设备及介质。


背景技术:

2.随着企业大数据、移动互联网、多媒体等业务的发展,企业的数据量越来越大,运用数据的业务场景越来越多,数据的结构也越来越多样化,对数据的准确性需求也不断扩大,由此,数据测试应运而生。其中,数据测试指的是检查局部数据结构时,为了保证临时存储在模块内的数据在程序执行过程中完整、正确的过程。
3.由于通过数据测试可以保证数据质量,因此企业对此愈加重视。然而,发明人发现相关技术中至少存在如下技术问题:无法对数据实现自动化测试。
4.具体地,在相关技术中,大多是在接口层面对数据进行自动化监控,进而由人工进行数据测试。比如,在针对可视化报表中的数据和数据仓库中的数据进行数据测试的方案中,一般是对可视化报表的接口层面进行数据监控,然后通过人工手动在企业提供的查询平台手动编写sql查询语句,使用presto或hive等引擎计算出数据仓库中的数据,然后再由人工通过肉眼根据计算出的数据仓库中的数据和监控到的可视化报表中的数据就某些指标进行对比,并由人工根据比对结果来判断对应数据是否正确。在上述方式的实现过程中,不仅需要人工手动切换区服,而且根据业务的不同,需要通过人工基于对应业务编写新的sql查询语句,进而再由人工进行数据的对比、判断。其中,在通过人工手动在企业提供的查询平台手动编写sql查询语句的过程中:若使用presto,则需兼顾编写的sql查询语句的逻辑不能太复杂,数据量也不能太大,否则会出现报错的情况;若使用hive,则虽然逻辑可以很复杂,也支持较大的数据量,但是需要考虑计算速度较慢的问题,因此对人工编写代码的能力要求较高。
5.综上分析可知,相关技术中无法对数据实现自动化测试,非常依赖人工操作,测试效率较低,会消耗大量的人力成本和时间成本,并且需要人工手动进行数据维护。随着企业的数据仓库中的数据越来越多,可视化数据报表业务也越来越多,如果还一味依靠相关技术中的测试方式,必然会极大增加相关人员在数据测试方面的工作负担。


技术实现要素:

6.本技术的一个目的是提供一种数据测试的方法、装置、设备及介质,至少用以解决相关技术中无法对数据实现自动化测试的技术问题。
7.为实现上述目的,本技术的一些实施例提供了一种数据测试的方法,用于对可视化报表中的数据和数据仓库中的数据之间进行测试,所述方法包括:通过预设第一程序,获取所述可视化报表中,目标指标下的第一数据;通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据;将所述第一数据和所述第二数据进行比对,确定比对结果;根据所述比对结果,确定数据测试是否通过。
8.可选地,所述通过预设第一程序,获取所述可视化报表中,目标指标下的第一数据
包括:通过预设第一程序,确定与所述目标指标对应的预设参数;根据所述预设参数进行拼接,得到url;根据所述url,获取所述可视化报表中,目标指标下的第一数据。这里,提供了通过预设第一程序,获取所述可视化报表中,目标指标下的第一数据的一种具体实现方式,有利于本技术实施例获取所述目标指标下的第一数据的方式得以灵活多变的实现。
9.可选地,所述通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据包括:通过预设第二程序,确定获取所述预设参数的优先级;根据所述优先级,从所述数据仓库的hive底表中,获取与所述预设参数对应的第二数据。这里,提供了通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据的一种具体实现方式,有利于本技术实施例获取所述目标指标下的第二数据的方式得以灵活多变的实现。
10.可选地,所述将所述第一数据和所述第二数据进行比对,确定比对结果包括:判断所述第一数据和所述第二数据是否相同;若所述第一数据和所述第二数据相同,则得到表征测试通过的比对结果;若所述第一数据和所述第二数据不同,则得到表征测试未通过的比对结果。通过自动将所述第一数据和所述第二数据进行比对,确定比对结果,无需由人工通过肉眼根据计算出的数据仓库中的数据和监控到的可视化报表中的数据就某些指标进行对比,并无需人工根据比对结果来判断对应数据是否正确,可以进一步降低人力成本和时间成本,同时便于数据维护和数据更新。
11.可选地,在所述若所述第一数据和所述第二数据不同,则得到表征测试未通过的比对结果之后,所述方法还包括:按照预设规则,发送告警信息。这里,若所述第一数据和所述第二数据不同,通过按照预设规则,自动发送告警信息,从而将数据测试异常的结果告知相关工作人员,而无需通过人工告知,可以进一步提升数据测试的效率。
12.可选地,所述方法还包括:将所述第一预设程序和所述第二预设程序,上传至目标集群和/或目标调度平台。通过将所述第一预设程序和所述第二预设程序,上传至目标集群和/或目标调度平台,在对某些目标指标的数据需求发生变化时,相关工作人员可以基于所述目标集群和/或目标调度平台直接修改并更新所述预设第一程序和所述预设第二程序,进而可以将更新后的所述预设第一程序和所述预设第二程序分发至其他需要进行数据测试的计算机设备,由于省去其他了人工手动修改,因此有利于进一步提升数据测试的效率,并且还有利于数据的维护。
13.可选地,在将所述第一预设程序和所述第二预设程序,上传至目标集群和/或目标调度平台之后,所述方法还包括:在接收到配置信息后,根据所述配置信息执行所述数据测试的操作;其中,所述配置信息包括以下任意之一或其任意组合:任务调度的时间信息、任务依赖信息、任务失败重试时间信息、任务失败通知规则信息。这里,通过相关工作人员可以通过上传配置信息直接修改并更新所述预设第一程序和所述预设第二程序,提供了修改并更新所述预设第一程序和所述预设第二程序的一种具体的实现方式。
14.本技术的一些实施例还提供了一种数据测试的装置,所述装置包括:第一数据获取单元,用于通过预设第一程序,获取所述可视化报表中,目标指标下的第一数据;第二数据获取单元,用于通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据;数据对比单元,用于将所述第一数据和所述第二数据进行比对,确定比对结果;结果确定单元,用于根据所述比对结果,确定数据测试是否通过。
15.本技术的一些实施例还提供了一种计算机设备,所述设备包括:一个或多个处理
器;以及存储有计算机程序指令的存储器,所述计算机程序指令在被执行时使所述处理器执行如上所述的方法。
16.本技术的一些实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如上所述的方法。
17.相较于现有技术,本技术实施例提供的数据测试的方法,实现了对数据的自动化测试。具体通过预设第一程序,自动获取所述可视化报表中,目标指标下的第一数据,并通过预设第二程序,自动获取所述数据仓库中,所述目标指标下的第二数据。尤其通过预设第二程序自动获取对应数据,可以支持较大的数据量和较复杂的计算逻辑,而无需通过人工手动在企业提供的查询平台手动编写并执行sql查询语句,因此数据获取的效率显著提高;由于可以自动将所述第一数据和所述第二数据进行比对,确定比对结果,并根据所述比对结果,确定数据测试是否通过,无需再通过人工对数据进行肉眼比对,并由人工根据比对结果来判断对应数据是否正确,因此数据测试的效率显著提高,极大地降低了人力成本和时间成本。值得一提的是,本技术实施例中,创造性地将可视化报表的业务覆盖到数据仓库的层面,而非仅仅停留在接口层面,对于实现数据的自动化测试具有深远意义。
附图说明
18.图1为本技术实施例一提供的一种数据测试的方法的示例性流程图;
19.图2为本技术实施例二提供的一种数据测试的方法的示例性流程图;
20.图3为本技术实施例三提供的一种数据测试的方法的示例性流程图;
21.图4为本技术实施例六提供的一种计算机设备的示例性结构示意图。
具体实施方式
22.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.在本文中使用以下术语。
24.hive:一种数据仓库工具,用来进行数据提取、转化、加载,可以存储、查询和分析存储在hadoop中的大规模数据的机制,支持复杂和海量的数据计算,但数据量越大,逻辑越复杂,速度越慢。
25.presto:一种基于大数据的即时交互式查询引擎,用来提高海量数据查询的速度。当查询数据量不是太大且sql不是太复杂时比hive查询更快。
26.spark:一种分布式的,主要基于内存的,适合迭代计算的大数据计算框架。支持海量数据和复杂的逻辑计算,速度比hive快。
27.pyspark:一种为python开发者提供的用于操作spark的api,使python开发者可以使用python编写spark计算程序提交到spark集群。
28.url:统一资源定位系统,英文全称:uniform resource locator。是因特网的万维网服务程序上用于指定信息位置的表示方法。
29.底表:即数据仓库的底表,是数据开发人员将所需的数据从业务数据库定时/实时
抽取出来,进行清洗、转换、加工、集成后,生成的面向主题的数据模型。
30.数据仓库:是一个集中式存储库,用于存储结构化数据和半结构化数据,以便进行报告和分析。
31.dwd:英文全称data warehouse detail,即明细数据层,是数据仓库的基础数据,用于业务指标计算的源数据。
32.dwb:英文全称data warehouse base,即基础数据层,存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层。
33.实施例一
34.本技术实施例一提供了一种数据测试的方法,所述方法可以包括如下步骤,如图1所示:
35.步骤s101,根据预设第一程序,获取所述可视化报表中,目标指标下的第一数据;
36.步骤s102,通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据;
37.步骤s103,将所述第一数据和所述第二数据进行比对,确定比对结果;
38.步骤s104,根据所述比对结果,确定数据测试是否通过。
39.针对步骤s101,具体地说,在一些例子中,所述预设第一程序,可以是相关人员预先编写好的python程序。
40.在一些例子中,可以先获取所述可视化报表中,目标指标下的接口数据,然后再对所述接口数据进行筛选,从而得到所述目标指标下的第一数据。其中,目标指标下的接口数据一般是josn格式,通过所述预先编写好的python程序可以筛选出josn格式的接口数据,并使用pandas json对接口数据进行解析,从而得到所述目标指标下的第一数据。
41.在一些例子中,所述目标指标的数量为多个,比如所述目标指标可以包括新增用户数、日付费率、付费用户数、活跃用户数等等,从而,对应的第一数据的数量也可以是多个,比如所述活跃人数对应的第一数据,所述支付金额对应的第一数据等等;其中,所述目标指标的具体内容可以根据实际的业务需求进行灵活选定,本技术实施例对此不作具体限定。
42.针对步骤s102,具体地说,在一些例子中,所述预设第二程序,可以是相关人员预先编写好pyspark程序。
43.在一些例子中,可以通过所述pyspark程序,从所述数据仓库的hive底表中获取所述目标指标数据,然后筛选得到通过所述pyspark程序计算后得到所述目标指标下的第二数据。
44.值得一提的是,本技术实施例中的所述步骤s101和步骤s102无先后顺序的限定。也就是说,也可以先执行步骤s102,再执行步骤s101,或者,所述步骤s101和步骤s102同步进行,本技术实施例对此不作具体限定。
45.针对步骤s103,通过将所述第一数据和所述第二数据进行比对,可以得到预设维度的比对结果,从而确定数据测试是否通过。其中,所述预设维度可以是对数据一致性和/或数据完整性的测试。这里,所述数据一致性,是指第一数据和第二数据均不为空的情况下,所述第一数据和所述第二数据的大小是否相同,或者说,所述第一数据和所述第二数据的大小的误差是否在可容许的范围内;所述数据完整性,可以是指所述第二数据不为空的
情况下,所述第一数据为空,则说明所述第一数据存在缺失,数据不完整。
46.在一些例子中,可以将表征所述预设第一程序的python程序和表征所述预设第二程序的pyspark程序进行对比。在对比过程中,由于所述预设第一程序和所述预设第二程序所使用的程序语言不同,则可以以所述python程序为基准进行对比,比如可以使用pandas等应用程序进行对比;还可以以pyspark程序为基准进行对比,比如可以使用sparksql、rdd等应用程序进行对比。其中,关于具体选取哪种应用程序,相关人员可以根据所述第一数据、所述第二数据的数据量和/或数据结构灵活选用,本技术实施例对此不作具体限定。
47.针对步骤s104,具体地说,在一些例子中,如果所述目标指标的数量为多个,则需要将所述第一数据和对应所述目标指标下的所述第二数据进行分别比对,确定多个比对结果。若各个所述对比结果均通过,则才可以确定数据测试通过;若各个所述比对结果中,有至少一个为未通过,则可以确定数据测试未通过。
48.不难发现,与相关技术相比,本技术实施例提供的数据测试的方法,实现了对数据的自动化测试。具体通过预设第一程序,自动获取所述可视化报表中,目标指标下的第一数据,并通过预设第二程序,自动获取所述数据仓库中,所述目标指标下的第二数据。尤其通过预设第二程序自动获取对应数据,可以支持较大的数据量和较复杂的计算逻辑,而无需通过人工手动在企业提供的查询平台手动编写并执行sql查询语句,因此数据获取的效率显著提高;由于可以自动将所述第一数据和所述第二数据进行比对,确定比对结果,并根据所述比对结果,确定数据测试是否通过,无需再通过人工对数据进行肉眼比对,并由人工根据比对结果来判断对应数据是否正确,因此数据测试的效率显著提高,极大地降低了人力成本和时间成本。值得一提的是,本技术实施例中,创造性地将可视化报表的业务覆盖到数据仓库的层面,而非仅仅停留在接口层面,对于实现数据的自动化测试具有深远意义。
49.实施例二
50.本技术实施例二是在实施例一的基础上作出的进一步改进,具体改进之处在于,在本技术实施例二中,所述通过预设第一程序,获取所述可视化报表中,目标指标下的第一数据可以进一步包括如下步骤,如图2所示:
51.步骤s1011,通过预设第一程序,确定与所述目标指标对应的预设参数;
52.步骤s1012,根据所述预设参数进行拼接,得到url;
53.步骤s1013,根据所述url,获取所述可视化报表中,目标指标下的第一数据。
54.具体地说,在一些例子中,针对游戏类的业务,所述预设参数可以包括但不限于:区服、获取数据的时间周期、注册平台/行为发生平台、国家、是否去除小号等等。其中,所述区服可以包括国服、亚服、欧服等等,分别对应中国的区服、亚洲的区服、欧洲的区服;所述获取数据的时间周期可以为当前时间的前一天,当前时间的前十五天等等;所述注册平台/行为发生平台分别对应玩家第一次登录游戏时注册使用的平台,以及注册后实际使用的平台,所述平台可以包括:ios系统的平板电脑、ios系统的手机、安卓系统的手机、psp设备等等。所述国家可以包括中国、美国、韩国等,从而可以基于此获取在某一国家对应业务的相关数据;由于很多玩家同时有大号和小号,因此还可以选择是否去除小号。当然,上述预设参数仅为例举,在一些其他例子中,所述预设参数还可以包括其他内容,比如账号类型、周期维度(按天/按周/按月)等等,本技术实施例对此不作具体限定。值得一提的是,由于所述预设参数可以包括区服,因此根据预设参数获取相关数据,而不需要人工手动切换区服等
操作,从而可以进一步降低人力成本,并且提升数据的获取效率。
55.具体地说,在一些例子中,不同的目标指标可以对应不同的预设参数。比如目标指标1的预设参数可以包括预设参数a、预设参数b、预设参数c;目标指标2的预设参数可以包括预设参数a、预设参数c、预设参数d。
56.具体地说,在一些例子中,所述预设参数可以包括必选参数和可选参数。其中,必选参数和可选参数的具体内容可以主要根据业务类型的不同以及实际需求而确定,本技术实施例对此不作具体限定。比如说,在一些例子中,所述必选参数可以包括:获取数据的时间周期、区服、是否去除小号;所述可选参数可以包括:注册平台/行为发生平台、国家。进一步地,在一些例子中,系统可以事先存储有与不同目标指标对应的必选参数和可选参数的默认菜单,相关工作人员可以基于所述默认菜单进行增、删、改的调整即可。
57.进一步地,在一些例子中,根据所述预设参数进行拼接,得到的url包括协议、主机、端口和路径信息,所述路径信息比如包括获取数据的时间周期、注册平台/行为发生平台、国家等。比如说,所述获取数据的时间周期可以包括一个开始时间和一个结束时间。各个参数之间可以用&符号连接。进而,在得到所述url后,请求所述url,即可获取所述可视化报表中,目标指标下的第一数据。
58.不难发现,与相关技术相比,本技术实施例提供的数据测试的方法,提供了通过预设第一程序,获取所述可视化报表中,目标指标下的第一数据的一种具体实现方式,有利于本技术实施例获取所述目标指标下的第一数据的方式得以灵活多变的实现。
59.实施例三
60.本技术实施例三是在实施例一的基础上作出的进一步改进,具体改进之处在于,在本技术实施例三中,所述通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据可以进一步包括如下步骤,如图3所示:
61.步骤s1021,通过预设第二程序,确定获取所述预设参数的优先级;
62.步骤s1022,根据所述优先级,从所述数据仓库的hive底表中,获取与所述预设参数对应的第二数据。
63.具体地说,在一些例子中,本技术实施例三与实施例二中的应用层的数据不同,无法直接根据对应的预设参数获取到对应的数据,而是需要通过计算得到对应的数据。由于所述预设参数中的各项参数可能存在依赖关系,比如只有当得到数据a的时候,才可以根据数据a确定数据b,由此,通过预设第二程序,需要先确定获取所述预设参数的优先级。或者,在一些其他例子中,通过获取所述预设参数的优先级,可以使得在较高效率的情况下获取与所述预设参数对应的第二数据。
64.进一步地,在一些例子中,可以根据所述优先级,从所述数据仓库的dwd层和dwb层的hive底表中,获取到与所述预设参数相应的数据,并根据所述数据进行分组、聚合、匹配、计算,进而得到与所述预设参数对应的第二数据。其中,所述的计算可以是指小数点保留几位等等。其中,具体是可以根据目标指标,将预设参数作为筛选条件进行筛选,比如可以根据获取数据的时间周期、注册平台/行为发生平台、国家、是否去除小号等进行筛选,来得到与所述预设参数对应的第二数据。
65.进一步地,在一些例子中,比如所述目标指标是表征计算日新增人数的指标,则在确定获取所述预设参数的优先级后,根据所述优先级,从所述数据仓库的dwd层和dwb层的
hive底表中,获取到与所述预设参数相应的数据。所述预设参数可以是某日或者某几日、区服、是否去除小号、注册日期、活跃日期等等,进而统计每天的用户id数,从而得到所述日新增人数。
66.其中,在一些例子中,所述目标指标下的第二数据的数据量可能会比所述目标指标下的第一数据的数据量多,比如所述目标指标下的第一数据的数据量为前一天的数据;而所述目标指标下的第二数据的数据量可以为前15天的数据,因此,可以先对所述目标指标下的第二数据的数据量进行筛选,从而筛选出前一天的数据,这样,有利于对计算资源的充分利用。
67.需要说明的是,本技术实施例也可以是在实施例二的基础上作出的改进。
68.不难发现,与相关技术相比,本技术实施例提供的数据测试的方法,提供了通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据的一种具体实现方式,有利于本技术实施例获取所述目标指标下的第二数据的方式得以灵活多变的实现。
69.实施例四
70.本技术实施例四是在实施例一的基础上作出的进一步改进,具体改进之处在于,在本技术实施例四中,所述将所述第一数据和所述第二数据进行比对,确定比对结果包括:可以进一步包括如下步骤:判断所述第一数据和所述第二数据是否相同;若所述第一数据和所述第二数据相同,则得到表征测试通过的比对结果;若所述第一数据和所述第二数据不同,则得到表征测试未通过的比对结果。
71.进一步地,在本技术一些实施例中,在所述若所述第一数据和所述第二数据不同,则得到表征测试未通过的比对结果之后,所述方法还可以包括:按照预设规则,发送告警信息。这里,若所述第一数据和所述第二数据不同,通过按照预设规则,自动发送告警信息,从而将数据测试异常的结果告知相关工作人员,而无需通过人工告知,可以进一步提升数据测试的效率。
72.具体地说,在一些例子中,如果所述第一数据和所述第二数据不一致,或者存在数据缺失,则说明所述第一数据和所述第二数据不同,进而可以按照预设规则,发送告警信息;否则,如果所述第一数据和所述第二数据相同,则不执行所述按照预设规则,发送告警信息的操作。其中,所述预设规则可以是指事先设置好的目标地址,比如所述目标地址可以对应相关工作人员使用的通讯软件工具的地址,比如微信群、qq群等;所述预设规则还可以指通过邮件通知的方式,如此,需要相关工作人员编写邮件发送的相关代码,并打包成jar包或者封装成接口的形式。其中,所述告警信息的具体内容、数据格式、数据样式等信息,可根据相关工作人员的实际偏好进行自定义设置,本技术实施例对此不作具体限定。
73.进一步地,在本技术一些实施例中,所述方法还可以包括:将所述第一预设程序和所述第二预设程序,上传至目标集群和/或目标调度平台。
74.具体地说,在一些例子中,具体可以将表征所述预设第一程序的python程序和表征所述预设第二程序的pyspark程序上传至目标集群和/或目标调度平台。这样,所述目标集群和/或目标调度平台可以将所述预设第一程序和所述预设第二程序分发至其他需要进行数据测试的计算机设备。在对某些目标指标的数据需求发生变化时,相关工作人员可以基于所述目标集群和/或目标调度平台直接修改并更新所述预设第一程序和所述预设第二程序,然后将更新后的所述预设第一程序和所述预设第二程序分发至其他需要进行数据测
试的计算机设备。
75.进一步地,在本技术一些实施例中,在将所述第一预设程序和所述第二预设程序,上传至目标集群和/或目标调度平台之后,所述方法还可以包括:在接收到配置信息后,根据所述配置信息执行所述数据测试的操作;其中,所述配置信息包括以下任意之一或其任意组合:任务调度的时间信息、任务依赖信息、任务失败重试时间信息、任务失败通知规则信息。值得一提的是,不同的企业的目标集群和/或目标调度平台的名称可能不同,然而这并不影响所述配置信息的接收,以及根据所述配置信息执行所述数据测试的操作。这里,通过将所述第一预设程序和所述第二预设程序,上传至目标集群和/或目标调度平台,相关工作人员即可基于所述目标集群和/或目标调度平台发出配置信息,从而可以灵活地实现一些原本需要人为控制的操作。比如无需人为手动切换区服,无需手动执行预先编写好的sql查询语句、也无需由人工通过肉眼根据计算出的数据仓库中的数据和监控到的可视化报表中的数据就某些指标进行对比,并无需人工根据比对结果来判断对应数据是否正确、由人工去发出告警信息,如此,可以显著提高数据测试的效率,进一步降低人力成本和时间成本,同时便于数据维护和数据更新。
76.需要说明的是,本技术实施例也可以是在实施例二和/或实施例三的基础上作出的改进。
77.不难发现,与相关技术相比,本技术实施例提供的数据测试的方法,通过自动将所述第一数据和所述第二数据进行比对,确定比对结果,无需由人工通过肉眼根据计算出的数据仓库中的数据和监控到的可视化报表中的数据就某些指标进行对比,并无需人工根据比对结果来判断对应数据是否正确,可以进一步降低人力成本和时间成本,同时便于数据维护和数据更新。
78.实施例五
79.本技术实施例五提供了一种数据测试的装置。所述装置包括第一数据获取单元、第二数据获取单元、数据对比单元和结果确定单元。
80.具体地说,第一数据获取单元,用于通过预设第一程序,获取所述可视化报表中,目标指标下的第一数据;第二数据获取单元,用于通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据;数据对比单元,用于将所述第一数据和所述第二数据进行比对,确定比对结果;结果确定单元,用于根据所述比对结果,确定数据测试是否通过。
81.可选地,在一些例子中,所述第一数据获取单元可以进一步包括第一确定模块、拼接模块和第一数据获取模块。所述第一确定模块,用于通过预设第一程序,确定与所述目标指标对应的预设参数;所述拼接模块,用于根据所述预设参数进行拼接,得到url;所述第一数据获取模块,用于根据所述url,获取所述可视化报表中,目标指标下的第一数据。
82.可选地,在一些例子中,所述第二数据获取单元可以进一步包括第二确定模块和第二数据获取模块。所述第二数据获取单元,用于通过预设第二程序,确定获取所述预设参数的优先级;所述第二数据获取模块,用于根据所述优先级,从所述数据仓库的hive底表中,获取与所述预设参数对应的第二数据。
83.可选地,在一些例子中,所述数据对比单元可以进一步包括判断模块和比对结果确定模块。所述判断模块,用于判断所述第一数据和所述第二数据是否相同;所述比对结果确定模块,用于在所述第一数据和所述第二数据相同时,得到表征测试通过的比对结果;在
所述第一数据和所述第二数据不同时,得到表征测试未通过的比对结果。
84.可选地,在一些例子中,所述装置还包括报警单元,所述报警单元,用于在所述对结果确定模块确定所述第一数据和所述第二数据不同,得到表征测试未通过的比对结果后,按照预设规则,发送告警信息。
85.可选地,在一些例子中,所述装置还可以进一步包括上传单元,所述上传单元,用于将所述第一预设程序和所述第二预设程序,上传至目标集群和/或目标调度平台。
86.可选地,在一些例子中,所述装置还可以进一步包括配置信息接收单元,所述配置信息接收单元,用于在所述上传单元将所述第一预设程序和所述第二预设程序,上传至目标集群和/或目标调度平台之后,若目标集群和/或目标调度平台接收到配置信息,则根据所述配置信息执行所述数据测试的操作;其中,所述配置信息可以包括以下任意之一或其任意组合:任务调度的时间信息、任务依赖信息、任务失败重试时间信息、任务失败通知规则信息。
87.本技术实施是与上述实施例一至实施例四中的任意一个或多个方法实施例对应的装置实施例,上述各方法实施例中提供的技术细节均可以适用于此,为避免重复,此处不再赘述。
88.不难发现,与相关技术相比,本技术实施例提供的数据测试的装置,实现了对数据的自动化测试。具体通过预设第一程序,自动获取所述可视化报表中,目标指标下的第一数据,并通过预设第二程序,自动获取所述数据仓库中,所述目标指标下的第二数据。由于通过预设第一程序和预设第二程序自动获取对应数据,可以支持较大的数据量和较复杂的计算逻辑,而无需通过人工手动在企业提供的查询平台手动编写并执行sql查询语句,因此数据获取的效率显著提高;由于可以自动将所述第一数据和所述第二数据进行比对,确定比对结果,并根据所述比对结果,确定数据测试是否通过,无需再通过人工对数据进行肉眼比对,并由人工根据比对结果来判断对应数据是否正确,因此数据测试的效率显著提高,极大地降低了人力成本和时间成本。值得一提的是,本技术实施例中,创造性地将可视化报表的业务覆盖到数据仓库的层面,而非仅仅停留在接口层面,对于实现数据的自动化测试具有深远意义。
89.实施例六
90.本技术实施例六提供了一种计算机设备,该设备的结构如图4所示,所述设备包括用于存储计算机可读指令的存储器11和用于执行计算机可读指令的处理器12,其中,当该计算机可读指令被该处理器执行时,触发所述处理器执行所述的虚拟内容的分发方法。
91.本技术实施例中的方法和/或实施例可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在该计算机程序被处理单元执行时,执行本技术的方法中限定的上述功能。
92.需要说明的是,本技术所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器
(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
93.而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
94.可以以一种或多种程序设计语言或其组合来编写用于执行本技术的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
95.附图中的流程图或框图示出了按照本技术各种实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的针对硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
96.作为另一方面,本技术实施例还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个计算机可读指令,所述计算机可读指令可被处理器执行以实现前述本技术的多个实施例的方法和/或技术方案的步骤。
97.在本技术一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
98.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
99.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器
(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
100.此外,本技术实施例还提供了一种计算机程序,所述计算机程序存储于计算机设备,使得计算机设备执行所述控制代码执行的方法。
101.需要注意的是,本技术可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本技术的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本技术的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本技术的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
102.对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其他的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

技术特征:
1.一种数据测试的方法,其特征在于,用于对可视化报表中的数据和数据仓库中的数据之间进行测试,所述方法包括:通过预设第一程序,获取所述可视化报表中,目标指标下的第一数据;通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据;将所述第一数据和所述第二数据进行比对,确定比对结果;根据所述比对结果,确定数据测试是否通过。2.根据权利要求1所述的方法,其特征在于,所述通过预设第一程序,获取所述可视化报表中,目标指标下的第一数据包括:通过预设第一程序,确定与所述目标指标对应的预设参数;根据所述预设参数进行拼接,得到url;根据所述url,获取所述可视化报表中,目标指标下的第一数据。3.根据权利要求2所述的方法,其特征在于,所述通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据包括:通过预设第二程序,确定获取所述预设参数的优先级;根据所述优先级,从所述数据仓库的hive底表中,获取与所述预设参数对应的第二数据。4.根据权利要求1至3任意一项所述的方法,其特征在于,所述将所述第一数据和所述第二数据进行比对,确定比对结果包括:判断所述第一数据和所述第二数据是否相同;若所述第一数据和所述第二数据相同,则得到表征测试通过的比对结果;若所述第一数据和所述第二数据不同,则得到表征测试未通过的比对结果。5.根据权利要求4所述的方法,其特征在于,在所述若所述第一数据和所述第二数据不同,则得到表征测试未通过的比对结果之后,所述方法还包括:按照预设规则,发送告警信息。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述第一预设程序和所述第二预设程序,上传至目标集群和/或目标调度平台。7.根据权利要求6所述的方法,其特征在于,在将所述第一预设程序和所述第二预设程序,上传至目标集群和/或目标调度平台之后,所述方法还包括:在接收到配置信息后,根据所述配置信息执行所述数据测试的操作;其中,所述配置信息包括以下任意之一或其任意组合:任务调度的时间信息、任务依赖信息、任务失败重试时间信息、任务失败通知规则信息。8.一种数据测试的装置,其特征在于,所述装置包括:第一数据获取单元,用于通过预设第一程序,获取所述可视化报表中,目标指标下的第一数据;第二数据获取单元,用于通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据;数据对比单元,用于将所述第一数据和所述第二数据进行比对,确定比对结果;结果确定单元,用于根据所述比对结果,确定数据测试是否通过。9.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;以及存储有计算机程序指令的存储器,所述计算机程序指令在被执行时使所述处理器执行如权利要求1至7中任意一项所述的方法。10.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如权利要求1至7中任意一项所述的方法。

技术总结
本申请提供了一种数据测试的方法、装置、设备及介质,用于对可视化报表中的数据和数据仓库中的数据之间进行测试,所述方法包括:通过预设第一程序,获取所述可视化报表中,目标指标下的第一数据;通过预设第二程序,获取所述数据仓库中,所述目标指标下的第二数据;将所述第一数据和所述第二数据进行比对,确定比对结果;根据所述比对结果,确定数据测试是否通过,可以至少用以解决相关技术中无法对数据实现自动化测试的技术问题。实现自动化测试的技术问题。实现自动化测试的技术问题。


技术研发人员:杜仕伟
受保护的技术使用者:上海米哈游天命科技有限公司
技术研发日:2023.06.09
技术公布日:2023/8/21
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐