一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据测试方法、装置、电子设备和存储介质与流程

2021-11-17 23:38:00 来源:中国专利 TAG:


1.本公开涉及服务开发领域,具体涉及数据测试领域和智能检索领域,可应用于地图检索等场景。


背景技术:

2.在数据上线后或数据上线之前,为了避免新上线数据对服务的影响,通常需要部署基于新版本数据运行的服务和基于旧版数据运行的服务,采用diffy对该两个服务进行自动化测试。其中,diffy是一种测试技术,能够自动检测服务,具体通过同时运行两个服务,来获取两个服务的运行结果,并根据两个服务的运行结果来推断基于新版本数据运行的服务存在的问题。


技术实现要素:

3.基于此,本公开提供了一种提高测试精度的数据测试方法、装置、电子设备和存储介质。
4.根据本公开的一个方面,提供了一种数据测试方法,包括:向基于旧版本数据运行的目标服务和基于新版本数据运行的目标服务分别发送测试样本;读取基于旧版本数据运行的目标服务响应于测试样本得到的第一运行结果;读取基于新版本数据运行的目标服务响应于测试样本得到的第二运行结果;基于与测试样本的类型匹配的比对机制,确定第一运行结果与第二运行结果之间的差异;以及基于差异,确定与基于新版本数据运行的目标服务对应的测试结果。
5.根据本公开的另一个方面,提供了一种数据测试装置,包括:样本发送模块,用于向基于旧版本数据运行的目标服务和基于新版本数据运行的目标服务分别发送测试样本;第一结果读取模块,用于读取基于旧版本数据运行的目标服务响应于测试样本得到的第一运行结果;第二结果读取模块,用于读取基于新版本数据运行的目标服务响应于测试样本得到的第二运行结果;差异确定模块,用于基于与测试样本的类型匹配的比对机制,确定第一运行结果与第二运行结果之间的差异;以及结果确定模块,用于基于差异,确定与基于新版本数据运行的目标服务对应的测试结果。
6.根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的数据测试方法。
7.根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的数据测试方法。
8.根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开提供的数据测试方法。
9.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
10.附图用于更好地理解本方案,不构成对本公开的限定。其中:
11.图1是根据本公开实施例的数据测试方法和装置的应用场景示意图;
12.图2是根据本公开实施例的数据测试方法的流程示意图;
13.图3是根据本公开实施例的生成测试样本的原理示意图;
14.图4是根据本公开实施例的确定第一运行结果与第二运行结果之间的差异的原理示意图;
15.图5是根据本公开实施例的上线新版本数据的原理示意图;
16.图6是根据本公开实施例的数据测试装置的结构框图;以及
17.图7是用来实施本公开实施例的数据测试方法的电子设备的框图。
具体实施方式
18.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
19.本公开提供了一种数据测试方法,该方法包括样本发送阶段、运行结果读取阶段、结果比对阶段和测试结果确定阶段。在样本发送阶段中,向基于旧版本数据运行的目标服务和基于新版本数据运行的目标服务分别发送测试样本。在运行结果读取阶段中,读取基于旧版本数据运行的目标服务响应于测试样本得到的第一运行结果,并读取基于新版本数据运行的目标服务响应于测试样本得到的第二运行结果。在结果比对阶段,基于与测试样本的类型匹配的比对机制,确定第一运行结果与第二运行结果之间的差异。在测试结果确定阶段,基于差异确定与基于新版本数据运行的目标服务对应的测试结果。
20.以下将结合图1对本公开提供的方法和装置的应用场景进行描述。
21.图1是根据本公开实施例的数据测试方法和装置的应用场景示意图。
22.如图1所示,该实施例的场景100包括终端设备110和服务器120,该终端设备110可以通过网络与服务器120进行通信,网络可以包括有线或无线通信链路。
23.如图1所示,该服务器120中例如可以部署有提供服务的应用,提供的服务例如可以包括查询服务、导航服务等。该提供的服务需要基于数据来运行。例如,对于查询服务需要基于数据库中的数据来运行,以从数据库中查找到用户查询的数据。例如,导航服务需要基于高精地图(high

definition map)来运行,以从高精地图中定位到导航路线。在需要对服务运行所依赖的数据进行更新时,为了保证数据的更新不影响服务的运行,在新版数据上线之前,需要部署diff环境,在该diff环境中,服务基于新版数据而运行,并对该diff环境中的服务和基于旧版数据运行的服务(线上环境中的服务)进行自动化接口差异测试(diff测试)。
24.示例性地,diff环境和线上环境可以均部署于服务器120中,该服务器120提供有可供调用的第一接口121和第二接口122,以通过调用第一接口121来实现对基于旧版数据运行的服务的调用,通过调用第二接口122来实现对基于新版本数据运行的目标服务的调用。相应地,在进行diff测试时,终端设备110例如可以将分别作为多个样本的多组参数130
依次传入该第一接口121和第二接口122,以使得基于旧版数据运行的服务根据传入的参数来运行,得到第一运行结果140,并使得基于新版本数据运行的目标服务根据传入的参数来运行,得到第二运行结果150。
25.如此,终端设备110可以通过分析第一运行结果140和第二运行结果150,得到diff测试的测试结果160。例如,终端设备可以将第一运行结果140与金标准进行对比,得到对比结果a;同时将第二运行结果与金标准进行对比,得到对比结果b。随后,基于结果a与结果b得到diff测试的测试结果。其中,金标准由人工依据线上服务的返回信息进行标注而得到,指示根据经验确定的运行结果的标准结果。可以理解的是,上述得到测试结果的方法还可以采用本公开下文描述的方法,本公开对此不做限定。
26.其中,作为多个样本的多组参数130例如可以由人工线下构造得到。或者可以为线上实时产生的请求数据。本公开对此不做限定。
27.在一具体场景中,多组参数130中的每组参数包括查询词query、查询请求、url地址等,服务器中应用提供的服务例如可以包括地图查询服务,运行服务得到的运行结果可以包括响应于查询请求得到的多条位置信息等。该具体场景仅作为示例以利于理解本公开,本公开对此不做限定。
28.需要说明的是,本公开实施例所提供的数据测试的方法一般可以由终端设备110执行。相应地,本公开实施例所提供的数据测试装置可以设置于终端设备110中。
29.应该理解,图1中的终端设备和服务器的数目和类型仅仅是示意性的。根据实现需要,可以具有任意数目和类型的终端设备和服务器。
30.以下将结合图1,通过以下图2~图5对本公开提供的数据测试方法进行详细描述。
31.图2是根据本公开实施例的数据测试方法的流程示意图。
32.如图2所示,该实施例的数据测试方法200可以包括操作s210~操作s250。
33.在操作s210,向基于旧版本数据运行的目标服务和基于新版本数据运行的目标服务分别发送测试样本。
34.根据本公开的实施例,目标服务可以为前述的地图查询服务或地图导航服务等,本公开对此不做限定。测试样本可以为包括查询词的查询请求数据,该查询请求数据除了查询词外,还可以包括url地址、查询条件等。
35.该操作具体可以是向封装有基于旧版本数据运行的目标服务的api接口发送该测试样本,向封装有基于新版本数据运行的目标服务的api接口发送该测试样本。目标服务运行所依赖的数据可以是迭代更新的,在迭代更新过程中,会产生多个版本的数据,旧版本数据和新版本数据可以为产生时间相邻的两个版本的数据。可以理解的是,其中的新和旧是相对而言的,例如,新版本数据为需要上线更新的最新版本数据,旧版本数据为该最新版本数据的上一版本数据。旧版本数据和新版本数据的具体内容与目标服务相对应。例如,若目标服务为地图查新服务,则该旧版本数据和新版本数据的具体内容可以为高精地图数据。
36.根据本公开的实施例,在向api接口发送测试样本后,该api接口可以向终端设备返回任务id等信息。以将该任务id作为读取运行结果的依据。
37.在操作s220,读取基于旧版本数据运行的目标服务响应于测试样本得到的第一运行结果。
38.根据本公开的实施例,可以通过向前述封装有基于旧版本数据运行的目标服务的
api接口发送运行结果获取请求,来获取到api接口反馈的运行结果,作为第一运行结果。例如,该运行结果获取请求中可以包括任务id等,从而得到与测试样本对应的第一运行结果。在测试样本包括查询词时,获取得到的第一运行结果可以包括根据查询词得到的至少一个查询结果。该第一运行结果例如还可以包括该至少一个查询结果中各查询结果的排列顺序等。
39.根据本公开的实施例,可以在数据上线的间隙向基于旧版本数据运行的目标服务发送测试样本。在需要对运行结果进行比对时,获取第一运行结果。例如可以在前一天数据上线完成之后,后一天数据上线之前向基于旧版本数据运行的目标服务发送测试样本。通过该方式,可以缩进数据测试的时间。
40.在操作s230,读取基于新版本数据运行的目标服务响应于测试样本得到的第二运行结果。
41.根据本公开的实施例,可以通过向前述封装有基于新版本数据运行的目标服务的api接口发送运行结果获取请求,来获取到api接口反馈的运行结果,作为第二运行结果,该第二运行结果与前述第一运行结果类似,在此不再赘述。
42.在操作s240,基于与测试样本的类型匹配的比对机制,确定第一运行结果与第二运行结果之间的差异。
43.根据本公开的实施例,测试样本的类型可以根据实际需求进行设定,以使得测试样本的类型唯一对应到一个应用场景。根据实际需求,可以预先设定有测试样本的类型与比对机制之间的映射关系,以在不同应用场景下采用不同的比对机制,使得比对结果更贴合于应用场景的需求,提高数据测试的准确性。基于比对机制,可以得到第一运行结果与第二运行结果之间的差异。
44.示例性地,该测试样本的类型可以根据测试样本中的查询词来进行设定。例如,可以根据查询词所属的领域,来对测试样本进行分类。例如,该测试样本的类型可以包括文学类型、机械类型、数学类型等。在目标服务为地图查询服务的情况下,该测试样本的类型可以包括景点类型、商场类型、酒店类型等。对于不同类型的测试样本,匹配的比对机制可以相同或不同。例如,与相近的两个类型的测试样本匹配的比对机制可以相同。
45.例如,对于文学类型,比对机制可以为比对第一运行结果和第二运行结果中前m个查询结果。而对于数学类型,比对机制为比对第一运行结果和第二运行结果中前n个查询结果。其中,m与n均为大于等于1的自然数,且m小于n。这是由于对数学领域的查询结果一般精准度要求较高。
46.示例性地,测试样本的类型还可以根据线上服务响应于该测试样本得到的运行结果中首个查询结果来定。例如,若首个查询结果为“xx博物馆”等精准的结果,则可以确定该测试样本的类型为精准需求类型。若首个查询结果为“景点”等某一类的结果,则可以确定该测试样本的类型为泛需求类型。若某个查询结果为“xx饭馆”等可以定位到多个地址的结果时,可以确定该测试样本的类型为连锁需求类型等。可以理解的是,除了根据需求来对测试样本进行分类外,还可以根据首个查询结果所表征信息所属的行业来分类。或者,还可以在首个查询结果表征某个道路时,将测试样本的类型划分为道路类型,在首个查询结果表征某个行政区时,将测试样本划分为行政区类别等。上述分类方法仅作为示例以利于理解本公开,本公开对此不做限定。可以理解的是,在采用多个分类方法来对测试样本进行分类
时,一个测试样本可以同时被分配两个及以上的类型。
47.在操作s250,基于差异确定与基于新版本数据运行的目标服务对应的测试结果。
48.根据本公开的实施例,可以将差异与差异阈值进行比较,若第一运行结果与第二运行结果之间的差异超过该差异阈值,则确定基于新版本数据运行的目标服务与基于旧版本数据运行的目标服务之间存在差异,与基于新版本数据运行的目标服务对应的测试结果为测试失败。否则,确定测试成功。
49.例如,可以统计第一运行结果的查询结果与第二运行结果的查询结果存在差异的比例,若该比例大于等于比例阈值,则确定测试结果为测试失败。可以统计第一运行结果中与第二运行结果的查询结果存在差异的查询结果个数,若该个数大于预定个数,则确定测试结果为测试失败。
50.综上所述,本公开实施例通过基于与测试样本的类型匹配的比对机制来确定基于不同版本数据运行的两个服务的运行结果之间的差异,并基于差异来确定测试结果,可以实现对目标服务进行不同场景的测试,提高目标服务与场景需求的贴合度,提高测试结果的准确性。再者,由于根据两个运行结果之间的差异来确定测试结果,相较于相关技术中根据金标准确定测试结果的技术方案,可以提高确定的测试结果的准确性和稳定性,还可以提高测试的便捷性。这是由于金标准通常由人工设定,对于不同场景,采用同一金标准会导致测试结果不准确,为了适应不同场景,需要人工对金标准根据场景进行修改。
51.图3是根据本公开实施例的生成测试样本的原理示意图。
52.根据本公开的实施例,前述测试样本例如可以根据线上数据生成,以提高测试样本的真实性和实时性,提高数据测试的准确性和可靠性。
53.示例性地,如图3所示,该实施例300中,基于旧版本数据运行的目标服务可以为部署于服务器320中的线上服务,该线上服务响应于接收到的请求数据310可以得到运行结果330。该请求数据310和运行结果330可以由线上服务的运行日志来体现,该运行日志例如可以实时地存储至数据库340中。该实施例可以通过读取数据库340中的运行日志,可以获取到基于旧版本数据运行的目标服务响应的多个历史请求数据,以及基于旧版本数据运行的目标服务响应于该多个历史请求数据分别得到的多个历史运行结果。该多个历史请求数据中的每个历史请求数据可以包括查询词,对应的每个历史运行结果可以包括满足查询需求的至少一个需求信息。在一实施例中,历史请求数据及响应该历史请求数据得到的运行结果可以构成请求数据

运行结果对350。
54.在得到历史请求数据和历史运行结果中,例如可以基于查询词,确定多个历史请求数据中的目标请求数据,并将该目标请求数据作为测试样本。
55.例如,可以从历史请求数据中挑选出包括预定查询词的请求数据,作为测试样本。该预定查询词可以根据实际需求进行设定,例如,本公开实施例可以维护有查询词库,将包括查询词库中查询词的历史请求数据作为测试样本。通过该方式,可以过滤掉查询词不标准或查询词具有错别词的历史请求数据,提高基于测试样本进行数据测试的稳定性。
56.例如,可以确定多个历史请求数据包括的查询词中出现次数高于预定次数的目标查询词,将多个历史请求数据中包括该目标查询词的请求数据作为测试样本。通过该方式,可以使得测试样本可以体现出高频需求,提高基于测试样本进行数据测试的稳定性。其中,可以采用hadoop集群来进行词频统计,从而得到出现次数高于预定次数的目标查询词。预
定次数可以根据实际需求进行设定,本公开对此不做限定。
57.例如,作为测试样本的历史请求数据除了包括查询词外,还可以包括请求url及操作信息等,以便于对该测试样本进行复现,便于定位到基于新版本数据运行的目标服务与基于旧版本数据运行的目标服务存在差异的原因。在一实施例中,还可以同时保存与该作为测试样本的历史请求信息对应的历史运行结果。
58.在得到测试样本后,可以基于响应于该测试样本得到的历史运行结果,来确定测试样本的类型。至此,基于线上数据可以得到测试样本及其类型360。例如可以根据历史运行结果中首个查询结果来确定测试样本的类型。具体方法与前文描述的方法类似,例如可以基于该首个查询结果,将测试样本归类为精准需求类型、泛需求类型或连锁需求类型等。
59.图4是根据本公开实施例的确定第一运行结果与第二运行结果之间的差异的原理示意图。
60.根据本公开的实施例,基于响应于测试样本得到的运行结果例如可以确定测试样本为精准需求类型,则响应于测试样本得到的运行结果为精准信息。通常对于一个精准需求类型的测试样本,得到的运行结果中最能满足需求的查询信息是固定的,即主需求信息是固定的。该实施例可以根据主需求信息在运行结果中的召回率、排序位置的差异来确定第一运行结果与第二运行结果之间的差异,从而使得确定的差异能够更好的体现基于新版本数据运行的目标服务是否改善了查询需求的满足程度。
61.示例性地,该实施例还可以在测试样本的类型为精准需求类型的情况下,获取为该精准需求类型的测试样本分配的主需求信息。如图4所示,该实施例400中,主需求信息420可以由业务人员401对该精准需求类型的测试样本410进行标注而得到。一个测试样本410的主需求可以为一个或多个。例如,对于包括查询词“故宫”的测试样本,主需求可以包括“故宫博物院”、“故宫博物院

南门”等。
62.如图4所示,通过将精准需求类型的测试样本410传入封装有基于旧版本数据运行的服务的第一接口402,可以从该第一接口402获取到第一运行结果430。将精准需求类型的测试样本410传入封装有基于新版本数据运行的目标服务的第二接口403,可以从该第二接口403获取到第二运行结果440。可以基于主需求信息420和第一运行结果430,得到第一召回信息450。基于主需求信息420和第二运行结果440,得到第二召回信息460。并基于该第一召回信息450和第二召回信息460,确定第一运行结果430与第二运行结果440之间是否存在差异470。
63.示例性地,第一召回信息450为第一运行结果430中主需求信息420的召回信息。第二召回信息460为第二运行结果440中主需求信息420的召回信息。
64.例如,该召回信息可以包括是否召回主需求信息的第一信息和召回的主需求信息的排序位置的第二信息。若第一运行结果430和第二运行结果440中的一个运行结果包括主需求信息,另一个运行结果不包括主需求信息,则确定第一运行结果430与第二运行结果440之间存在差异470,并因此确定测试结果为测试失败。或者,若第一运行结果430和第二运行结果440中均包括主需求信息420,但主需求信息420在两个运行结果中排列位置相距较远时,则确定第一运行结果430与第二运行结果440之间存在差异470,并因此确定测试结果为测试失败。
65.在一实施例中,前述的测试样本可以包括多个精准需求类型的第一样本,针对每
个第一样本,均可以得到运行结果。例如,前述的第一运行结果可以包括分别对应多个第一样本的多个第一子结果,第二运行结果可以包括分别对应多个第二样本的多个第二子结果。多个第一子结果和多个第二子结果中的每个子结果例如均可以包括按序排列的多个需求信息。
66.在该实施例中,第一召回信息例如可以包括以下多种第一信息中的任意一种,或者以下多种第一信息的任意组合。其中,多种第一信息可以包括多个第一子结果中的第一目标结果、多个第一子结果中第二目标结果的第一比例、主需求信息在每个第一子结果中的排列位置。
67.例如,可以从多个第一子结果中筛选出包括的多个需求信息中,排在较前位置的第一预定数量个需求信息包括主需求信息的第一子结果,作为第一目标结果。该第一预定数量可以为5等根据实际需求设定的值,本公开对此不做限定。
68.例如,可以从多个第一子结果中筛选出包括的多个需求信息中,排在较前位置的第二预定数量个需求信息包括主需求信息的第一子结果,作为第二目标结果。并计算该第二目标结果的个数与多个第一子结果总数的比值,得到第一比例。其中,第二预定数量例如可以为3、5、10等任意的值。该第二预定数量与前述第一预定数量可以相等。可以理解的是,该第一比例可以理解为基于旧版数据运行的服务召回主需求信息的召回率。
69.例如,可以将主需求信息在每个第一子结果中的排列位置作为主需求信息针对多个第一子结果中每个结果的第一位置。
70.类似地,第二召回信息例如可以包括以下多种第二信息中的任意一种,或者以下多种第二信息的任意组合。多种第二信息可以包括多个第二子结果中的第三目标结果、多个第二子结果中第四目标结果的第二比例、主需求信息在每个第二子结果中的排列位置。其中,第三目标结果与前述第一目标结果类似,为包括的多个需求信息中排在较前位置的第一预定数量个需求信息包括主需求信息的第二子结果。第四目标结果与前述第二目标结果类似,为包括的多个需求信息中排在较前位置的第二预定数量个需求信息包括主需求信息的第二子结果。相应地,第二比例的计算方式与前述第一比例的计算方式类似。主需求信息在每个第二子结果中的排列位置即为主需求信息针对多个第二子结果中每个结果的第二位置。
71.可以理解的是,该实施例中,第一召回信息和第二召回信息为相似种类的信息。该实施例得到第一召回信息和第二召回信息后,即可确定第一运行结果与第二运行结果之间是否存在差异。
72.例如,若第一召回信息包括前述第一比例,第二召回信息包括前述第二比例,在确定两个运行结果之间是否存在差异时,可以先确定第一比例与第二比例之间的差值。若该差值大于预定差值,则确定两个运行结果之间存在差异。可以理解的是,若前述第二预定数量的数值为多个,则可以针对每个第二预定数量的数值分配一个预定差值,针对不同第二预定数量的数值分配的预定差值可以相同,也可以彼此不同。该预定差值的取值可以根据实际需求进行设定,本公开对此不做限定。
73.例如,若第一召回信息包括前述第一目标结果,第二召回信息包括前述第二目标结果,在确定两个运行结果之间是否存在差异时,可以先基于第一目标结果和第二目标结果确定多个第一样本中第一目标样本的数量。随后将该数量与第一预定值进行比较,若该
数量大于第一预定值,则确定第一运行结果与第二运行结果之间存在差异。其中,基于旧版本数据运行的服务响应于前述第一目标样本,可以得到前述的第一目标结果,但基于新版本数据运行的目标服务响应于该第一目标样本,得到的第二子结果不是前述的第三目标结果。即,对于该第一目标样本而言,基于新版本数据运行的目标服务未召回主需求信息,但基于旧版本数据运行的服务召回了主需求信息,对于该基于新版本数据运行的目标服务而言,该第一目标样本为第一负样本,即badcase。
74.例如,若第一召回信息除了包括前述第一目标结果外,还包括主需求信息针对每个第一子结果的第一位置,同时第二召回信息除了包括前述第三目标结果外,还包括主需求信息针对每个第二子结果的第二位置。在确定两个运行结果之间是否存在差异时,可以先从第一目标结果和第三目标结果中,筛选出响应于同一个第一样本得到的第一目标结果和第三目标结果,构成一个结果对。随后,可以确定主需求信息在每个结果对包括的第一目标结果中的第一子位置,及主需求信息在该每个结果对包括的第三目标结果中的第二子位置。之后判断该第一子位置是否相较于第二子位置靠前,若靠前,则确定得到该每个结果对中的第三目标结果所响应的第一样本为第二负样本,即badcase。通过统计,可以得到多个第一样本中第二负样本的数量,若该数量大于第二预定值,则可以确定第一运行结果与第二运行结果之间存在差异。
75.例如,可以为前述第一负样本和第二负样本的总数量设定第三预定数量。若该总数量大于第三预定数量,则确定第一运行结果与第二运行结果之间存在差异。
76.该实施例可以采用前述方法中的任意一种或任意组合来确定第一运行结果与第二运行结果之间是否存在差异。只要基于一种方法确定存在差异,则确定第一运行结果与第二运行结果之间存在差异。
77.根据本公开的实施例,测试样本的类型例如可以包括除了前述精准需求类型外的其他一种或多种类型。针对该其他一种或多种类型,比对机制例如可以相同。测试样本中例如还可以包括有该其他一种或多种类型的多个第二样本。相应地,第一运行结果包括分别对应多个第二样本的多个第一子结果,第二运行结果包括分别对应多个第二样本的多个第二子结果;多个第一子结果和多个第二子结果中的每个结果均包括按序排列的多个需求信息。
78.在该实施例中,在确定第一运行结果与第二运行结果之间的差异时,可以先确定多个第二样本中的第二目标样本。若该第二目标样本在多个第二样本中的比例大于预定比例,则确定第一运行结果与第二运行结果之间存在差异。并因此确定与基于新版本数据运行的目标服务对应的测试结果为测试失败。
79.其中,在确定多个第二样本中的第二目标样本时,可以先确定对应每个第二样本的第一子结果中的目标需求信息,并确定对应每个第二样本的第二子结果中的目标需求信息。若针对某个第二样本的第一子结果中的目标需求信息与针对该某个第二样本的第二子结果中的目标需求信息相一致,则确定该某个第二样本为第二目标样本。其中,目标需求信息指排在较前位置的第四预定数量个信息。两个目标需求信息相一致是指两个目标需求信息中的需求信息相同、且需求信息的排列顺序也相同。其中,第四预定数量可以根据实际需求进行设定,例如该第四预定数量可以为3,本公开对此不做限定。
80.图5是根据本公开实施例的上线新版本数据的原理示意图。
81.根据本公开的实施例,在对新版本数据进行上线时,可以采用分级上线的方法来实现。这是由于为了应对高流量的需求,通常会在多个电子设备中部署目标服务。为了避免因用电故障导致的无法相应请求的情况,多个电子设备可以设置于多个机房中,每个机房设置有一个或多个电子设备。该电子设备例如可以为前文描述的服务器。
82.如图5所示,在一实施例500中,目标服务可以部署于机房510~520中的多个电子设备中,机房510可以包括电子设备511和电子设备512,机房520中可以包括电子设备521~522。前述实施例中基于新版本数据运行的目标服务为:多个电子设备中的目标电子设备所部署的目标服务。该目标电子设备是指:已经接收到了上传的新版本数据,但还未进行数据测试的电子设备。在更新多个电子设备中部署的目标服务运行所依赖的数据时,可以将新版本数据分级上传至该毒攻额电子设备。且在采用前文描述的方法对上传了新版本数据的第一电子设备所部署的目标服务进行了数据测试,且测试结果为测试成功的情况下,再将该新版本数据上传至位于第一电子设备的下一级的第二电子设备中。
83.示例性地,如图5所示,在对新版本数据进行上线时,可以先将新版数据上传至电子设备511。随后将该电子设备511中部署的目标服务作为待测试服务502,即前述基于新版本数据运行的目标服务。具体可以通过将测试样本503作为该待测试服务502的传入参数,根据待测试服务502反馈的运行结果与前述的第一运行结果的比较结果,确定测试结果。若与该待测试服务502对应的测试结果为测试成功,则将新版本数据501上传至电子设备512。随后将该电子设备512中部署的目标服务作为待测试服务504。类似地,在与该待测试服务504对应的测试结果为测试成功,将新版本数据501上传至电子设备521。以此类推,完成多个电子设备中每个电子设备部署的目标服务运行所依赖的数据的更新。
84.可以理解的是,若与多个电子设备中某个电子设备对应的测试结果为测试失败,则停止新版本数据的上线,待分析出测试失败的原因,并对新版本数据优化后,再对优化后新版本数据重新上线。在将新版本数据上传至某个电子设备时,该某个电子设备中部署的目标服务停止提供线上服务,以避免因新版本数据上线出现问题导致的线上服务精度降低、线上服务稳定性降低的情况。
85.通过本公开实施例的方法,可以快速拦截数据上线过程中出现的问题,避免该问题的扩大和传播。
86.基于本公开提供的数据测试方法,本公开还提供了一种数据测试装置。以下将结合图6对该装置进行详细描述。
87.图6是根据本公开实施例的数据测试装置的结构框图。
88.如图6所示,该实施例的数据测试装置600可以包括样本发送模块610、第一结果读取模块620、第二结果读取模块630、差异确定模块640和结果确定模块650。
89.样本发送模块610用于向基于旧版本数据运行的目标服务和基于新版本数据运行的目标服务分别发送测试样本。在一实施例中,样本发送模块610用于执行前文描述的操作s210,在此不再赘述。
90.第一结果读取模块620用于读取基于旧版本数据运行的目标服务响应于测试样本得到的第一运行结果。在一实施例中,第一结果读取模块620用于执行前文描述的操作s220,在此不再赘述。
91.第二结果读取模块630用于读取基于新版本数据运行的目标服务响应于测试样本
得到的第二运行结果。在一实施例中,第二结果读取模块630用于执行前文描述的操作s230,在此不再赘述。
92.差异确定模块640用于基于与测试样本的类型匹配的比对机制,确定第一运行结果与第二运行结果之间的差异。在一实施例中,差异确定模块640用于执行前文描述的操作s240,在此不再赘述。
93.结果确定模块650用于基于差异,确定与基于新版本数据运行的目标服务对应的测试结果。在一实施例中,结果确定模块650用于执行前文描述的操作s250,在此不再赘述。
94.根据本公开的实施例,上述数据测试装置600还可以包括样本生成模块,用于生成测试样本。该样本生成模块可以包括历史数据获取子模块、样本确定子模块和类型确定子模块。历史数据获取子模块用于获取基于旧版本数据运行的目标服务响应的多个历史请求数据,及基于旧版本数据运行的目标服务响应于多个历史请求数据分别得到的多个历史运行结果;其中,多个历史请求数据中的每个历史请求数据包括查询词。样本确定子模块用于基于查询词,确定多个历史请求数据中的目标请求数据,作为测试样本。类型确定子模块用于基于多个历史运行结果中响应于测试样本得到的历史运行结果,确定测试样本的类型。
95.根据本公开的实施例,上述样本确定子模块可以包括目标词确定单元和数据确定单元。目标词确定单元用于确定多个历史请求数据包括的查询词中出现次数高于预定次数的目标查询词。数据确定单元用于确定多个历史请求数据中包括目标查询词的请求数据,得到目标请求数据。
96.根据本公开的实施例,测试样本的类型包括响应于测试样本得到的运行结果为精准信息的精准需求类型。上述数据测试装置600还可以包括主需求获取模块,用于获取为精准需求类型的测试样本分配的主需求信息。上述差异确定模块640可以包括召回信息确定子模块和差异确定子模块。召回信息确定子模块用于确定第一运行结果中主需求信息的第一召回信息及第二运行结果中主需求信息的第二召回信息。差异确定子模块用于基于第一召回信息和第二召回信息,确定第一运行结果与第二运行结果之间是否存在差异。
97.根据本公开的实施例,测试样本包括精准需求类型的多个第一样本;第一运行结果包括分别对应多个第一样本的多个第一子结果,第二运行结果包括分别对应多个第一样本的多个第二子结果;多个第一子结果和多个第二子结果中的每个结果均包括按序排列的多个需求信息。第一召回信息包括以下至少之一:多个第一子结果中的第一目标结果,其中,第一目标结果中排在较前位置的第一预定数量个需求信息包括主需求信息;多个第一子结果中第二目标结果的第一比例,其中,第二目标结果中排在较前位置的第二预定数量个需求信息包括主需求信息;主需求信息针对多个第一子结果中每个结果的第一位置。第二召回信息包括以下至少之一:多个第二子结果中的第三目标结果,其中,第三目标结果中排在较前位置的第一预定数量个需求信息包括主需求信息;多个第二子结果中第四目标结果的第二比例,其中,第四目标结果中排在较前位置的第二预定数量个需求信息包括主需求信息;主需求信息针对多个第二子结果中每个结果的第二位置。
98.根据本公开的实施例,差异确定子模块用于通过以下方式中的至少之一确定第一运行结果与第二运行结果之间是否存在差异:在第一比例和第二比例之间的差值大于预定差值的情况下,确定第一运行结果与第二运行结果之间存在差异;在多个第一样本中第一目标样本的数量大于第三预定数量的情况下,确定第一运行结果与第二运行结果之间存在
差异。其中,响应于第一目标样本得到第一目标结果,但响应于第一目标样本得不到第三目标结果;或者响应于第一目标样本得到第一目标结果和第三目标结果,但主需求信息针对得到的第一目标结果的第一位置相较于主需求信息针对得到的第三目标结果的第二位置靠前。
99.根据本公开的实施例,测试样本的类型还包括除精准需求类型外的其他类型;测试样本包括其他类型的多个第二样本,第一运行结果包括分别对应多个第二样本的多个第一子结果,第二运行结果包括分别对应多个第二样本的多个第二子结果;多个第一子结果和多个第二子结果中的每个结果均包括按序排列的多个需求信息。上述差异确定子模块还用于多个第二样本中第二目标样本的比例大于预定比例的情况下,确定第一运行结果与第二运行结果之间存在差异。其中,对应第二目标样本的第一子结果中的目标需求信息与对应第二目标样本的第二子结果中的目标需求信息相一致,目标需求信息为多个需求信息中排在较前位置的第四预定数量个信息。在第一运行结果与第二运行结果之间存在差异的情况下,与基于新版本数据运行的目标服务对应的测试结果为测试失败。
100.根据本公开的实施例,上述数据测试装置600还可以包括服务确定模块,用于针对部署有目标服务的多个电子设备,确定多个电子设备中的目标电子设备所部署的目标服务为基于新版本数据运行的目标服务,其中,新版本数据已被上传至目标电子设备,且未针对目标电子设备所部署的目标服务进行数据测试。其中,新版本数据被分级上传至多个电子设备,针对多个电子设备,在与上传了新版本数据的第一电子设备所部署的目标服务对应的测试结果为测试成功的情况下,新版本数据被上传至位于第一电子设备的下一级的第二电子设备。
101.需要说明的是,本公开的技术方案中,所涉及的用户个人信息的获取、收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
102.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
103.图7示出了可以用来实施本公开实施例的数据测试方法的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
104.如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(rom)702中的计算机程序或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序,来执行各种适当的动作和处理。在ram 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
105.设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
106.计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如数据测试方法。例如,在一些实施例中,数据测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到ram 703并由计算单元701执行时,可以执行上文描述的数据测试方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据测试方法。
107.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
108.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
109.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
110.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
111.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
112.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。其中,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务(

virtual private server

,或简称

vps

)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
113.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
114.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献