CN109831357A - 一种服务验证方法、装置、存储介质及服务器 - Google Patents
一种服务验证方法、装置、存储介质及服务器 Download PDFInfo
- Publication number
- CN109831357A CN109831357A CN201910092499.6A CN201910092499A CN109831357A CN 109831357 A CN109831357 A CN 109831357A CN 201910092499 A CN201910092499 A CN 201910092499A CN 109831357 A CN109831357 A CN 109831357A
- Authority
- CN
- China
- Prior art keywords
- service
- data
- processing result
- historical traffic
- traffic data
- 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.)
- Granted
Links
- 238000012795 verification Methods 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 196
- 230000008859 change Effects 0.000 claims description 61
- 230000008439 repair process Effects 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 description 46
- 230000006870 function Effects 0.000 description 28
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 239000013598 vector Substances 0.000 description 12
- 238000005070 sampling Methods 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 235000013399 edible fruits Nutrition 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 5
- 239000002699 waste material Substances 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013480 data collection Methods 0.000 description 3
- 230000007812 deficiency Effects 0.000 description 3
- 238000004321 preservation Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000004907 flux Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种服务验证方法、装置、存储介质及服务器,其中,方法包括:采集历史流量数据,并获取针对所述历史流量数据所输入的第一服务地址以及第二服务地址;获取采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并获取采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果;当所述第一处理结果与所述第二处理结果一致时,确定所述第二服务的验证结果正确。因此,采用本申请实施例,不影响正常运转的服务或应用,且可以确保所测试的第二服务的准确性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种服务验证方法、装置、存储介质及服务器。
背景技术
在计算机网络/安全产品的研发、安全解决方案的实施中,当进行网络建设、扩容安全设备选型、系统更新、产品迭代时,需要对网络/安全设备/更新后的系统/迭代后的产品的性能进行全面、系统的测试,从而保障网络/安全设备/系统/产品的可靠性和稳定性。流量回放方法是一种将真实网络流量存储记录并进行还原回放的网络测试方法,通过将捕获得到的真实网络流量还原回放到测试网络,可以再现实际的网络场景,达到考察被测系统在实际网络环境中的功能和性能的目的。
现有的一种流量回放方法为,利用生产上现有真实流量进行镜像,原始流量依然回到生产环境的真实服务器,流量的镜像拷贝会分发到集群外的测试服务器上,从而在测试服务器上可以实现不同服务的功能测试,或者加压10倍对服务进行性能压测。但这种流量回放方法仅仅是将所采集到的真实流量发送至测试服务器上实现功能或性能测试,需要将测试嵌入到服务/应用的运转进程中,影响正常运转的服务或应用,导致无法保证所测试的服务的准确性。
发明内容
本申请实施例提供了一种服务验证方法、装置、存储介质及服务器,可以解决流量回放中影响服务或应用运转,和/或无法确保测试的服务的准确性的问题。所述技术方案如下;
第一方面,本申请实施例提供了一种服务验证方法,所述方法包括:
采集历史流量数据,并获取针对所述历史流量数据所输入的第一服务地址以及第二服务地址;
获取采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并获取采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果;
当所述第一处理结果与所述第二处理结果一致时,确定所述第二服务的验证结果正确。
第二方面,本申请实施例提供了一种服务验证装置,所述装置包括:
服务获取模块,用于采集历史流量数据,并获取针对所述历史流量数据所输入的第一服务地址以及第二服务地址;
结果获取模块,用于获取采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并获取采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果;
服务验证模块,用于当所述第一处理结果与所述第二处理结果一致时,确定所述第二服务的验证结果正确。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种服务器,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,服务器采集历史流量数据,并获取针对该历史流量数据所输入的第一服务地址以及第二服务地址,然后获取采用历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果以及采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果,当第一处理结果与第二处理结果一致时,确定所述第二服务的验证结果正确。通过对所采集的历史流量数据调用第二服务进行回放,并将回放结果与调用第一服务(与第二服务具有相同功能的线上服务)的结果进行比对以确定第二服务的验证结果正确与否,不影响正常运转的服务或应用,且可以确保所测试的第二服务的准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种服务验证系统的网络架构示意图;
图2是本申请实施例提供的一种服务验证系统的系统架构示意图;
图3是本申请实施例提供的一种服务验证方法的流程示意图;
图4是本申请实施例提供的一种服务验证方法的流程示意图;
图5是本申请实施例提供的一种历史流量数据的采集过程的举例示意图;
图6是本申请实施例提供的一种数据库同步过程的举例示意图;
图7是本申请实施例提供的一种噪声数据生成过程的举例示意图;
图8是本申请实施例提供的一种第一返回结果与第二返回结果的差异数据确定过程的举例示意图;
图9是本申请实施例提供的一种服务验证装置的结构示意图;
图10是本申请实施例提供的一种服务验装置的结构示意图;
图11是本申请实施例提供的一种结果获取模块的结构示意图;
图12是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面结合具体的实施例对本申请进行说明。
请参见图1,为本申请实施例提供的一种服务验证系统的网络架构示意图。如图1所示,所述网络架构可以包括服务验证服务器1000,第一服务平台2000以及第二服务平台3000,所述服务验证服务器1000与所述第一服务平台2000以及所述第二服务平台3000之间采用互联网或无线网络通信。其中,所述服务验证服务器1000、第一服务平台2000以及第二服务平台3000可以为具备数据运算处理功能的服务器。所述第一服务平台1000所提供的第一服务、第二服务平台2000所提供的第二服务包括但不限于面向用户所提供的计算机服务,用于实现某种或某些功能,满足用户的特定需求。
上述架构仅是示例,可以知道的是,上述服务验证服务器1000、第一服务平台2000、第二服务平台3000的数量可以是1个或多个,本申请并不限制具体的数量。
如图1所示,服务验证服务器1000采集历史流量数据,并获取针对所述历史流量数据所输入的第一服务地址以及第二服务地址,再将所述历史流量数据分别发送至所述第一服务地址对应的第一服务平台2000以及所述第二服务地址对应的第二服务平台3000;
其中,服务验证服务器1000可查询预设的历史流量数据集合,并可采用预设的流量筛选策略在历史流量数据集合中抓取历史流量数据,从而将所抓取到的历史流量数据进行发送。
所述流量筛选策略可以为某一历史日期流量的完整抓取或某一历史日期流量的采样抓取,其中采样抓取可以是依据API维度随机采样,还可以是依据用户SESSION进行场景采样等,本申请对具体的流量获取方式并不作限制。
需要说明的是,第一服务可以为线上服务(即已发布的稳定的服务),第二服务可以为线下服务(即新开发的与线上服务属于不同版本的测试服务),且第一服务与第二服务可以具有相同的功能,可以属于同一应用的不同版本的服务,也可以为独立的服务。由于每个服务(第一服务或第二服务)由对应的平台提供接口进行调用,在调用完成后,第一服务或第二服务对应的平台提供的接口对服务验证服务器提供相同的返回支持,如返回的结果统一包含处理状态和/或处理数据,等。
第一服务平台2000采用所述历史流量数据调用第一服务地址指示的第一服务,并生成第一处理结果,同时,第二服务平台3000采用所述历史流量数据调用第二服务地址指示的第二服务,并生成第二处理结果,然后分别将第一处理结果以及第二处理结果发送至服务验证服务器1000;
服务验证系统还可以包括相应的数据库,如:第一服务平台2000可以使用第一数据库完成第一服务,第二服务平台3000可以使用第二数据库完成第二服务。更进一步,第一数据库与第二数据库可以是经过数据同步的,其中数据库表结构可以互不相同,但是数据信息熵是等价的,或者第一数据库与第二数据库数据也可以相同,此外,第一数据库与第二数据库可以为同一数据库。
服务验证服务器1000分别接收第一处理结果以及第二处理结果,并将第一处理结果与第二处理结果进行比对,通过第一处理结果对第二处理结果进行验证,当所述第一处理结果与所述第二处理结果一致时,确定所述第二服务的验证结果正确。
当所述第一处理结果与所述第二处理结果不一致时,确定第二服务的验证结果错误,可由服务验证服务器1000输出服务运行错误提示信息,所述服务运行错误提示信息用于指示对所述第二服务进行修复。
可选的,当所述第一处理结果与所述第二处理结果不一致时,服务验证服务器1000获取采用所述历史流量数据调用所述第一服务的第三处理结果,并确定所述第一处理结果与所述第三处理结果的第一差异数据,将所述第一差异数据作为执行所述第一服务以及所述第二服务所生成的噪声数据,然后确定所述第一处理结果以及所述第二处理结果的第二差异数据,在所述第二差异数据中剔除所述噪声数据,并将所述历史流量数据、所述第一处理结果、所述第二处理结果、剔除所述噪声数据后的所述第二差异数据对应保存至异常信息数据库中。
也就是说,当确定第二服务出现调用错误时,为了找出第二服务的错误原因以及错误位置,则先排除所产生的噪声导致的差异,然后将处理好的相关数据保存到异常信息数据库中,从而可方便测试员通过查看异常信息数据库对第二服务中的异常进行修复。
可选的,也可以是当所述第一处理结果与所述第二处理结果不一致时,服务验证服务器1000获取采用所述历史流量数据调用所述第二服务的第四处理结果,并确定所述第二处理结果与所述第四处理结果的第一差异数据,将所述第一差异数据作为执行所述第一服务以及所述第二服务所生成的噪声数据,然后确定所述第一处理结果以及所述第二处理结果的第二差异数据,在所述第二差异数据中剔除所述噪声数据。
进一步的,可通过异常信息数据库中所存储的信息对所述第二服务进行修复。
可选的,服务验证服务器1000可以支持POST、GET等类型的服务调用http请求,当基于第一服务地址以及第二服务地址所发送的请求为POST类型请求时,通常会导致第一服务平台2000中的第一数据库以及第二服务平台3000中的第二数据库中的数据变更,服务验证服务器1000获取执行所述第一服务生成的第一变更数据以及执行所述第二服务生成的第二变更数据,并将所述第一变更数据与所述第二变更数据进行比对,当所述第一变更数据与所述第二变更数据不一致时,对所述第一变更数据进行回滚处理,将回滚处理后的所述第一变更数据发送至所述第一服务平台,和/或对所述第二变更数据进行回滚处理,将回滚处理后的所述第二变更数据发送至所述第二服务平台。
当第一变更数据与第二变更数据一致时,服务验证服务器1000保存第一变更数据以及第二变更数据。
为了更好地描述本申请,以下给出本申请的系统架构,如图2所示,可以包括“线上集群服务”、“线上服务流量监控服务”、“内外网数据安全隔离”、“流量筛选服务”、“流量回放验证服务”、“Jenkins部署工具”、“流量回放测试环境”、“流量回放结果数据存储”、“工具集”、“前端UI界面”、“调度适配服务”、“Gitlab”以及“JIRA”等部分。
其中,线上集群服务系统:对线上流量做精确埋点。比如API接口层面的埋点,可采用REST API形式,如“/api/class/29125600/health”。
可选的,单一的从流量日志进行API区分是比较困难的,因此还需要在请求API时能够对相同的接口埋点添加统一的TOKEN标识,从而可以对线上的API维度进行精准力度的流量抓取和回放验证。
可选的,线上服务需要使用独立的域名(内网域名),避免出现相同域名下挂载多种服务的流量,避免使用路径进行流量分流划分。
线上服务流量监控系统:线上流量需要有统一的流量监控服务支持,用以规范化线上所有服务的流量日志信息输出和采集。
所述线上服务流量监控可以为ELK系统,ELK是三个开源软件的缩写,分别表示:Elasticsearch、Logstash、Kibana、它们都是开源软件。
线上服务流量监控系统为盘古流量抓取提供透明化服务支持,实现多种维度的流量查询和筛选支持,降低抓取线上服务流量时对生产环境造成的压力。
内外网数据安全隔离系统:实现单向数据摆渡,能够将线上服务流量数据安全的摆渡到内网系统,同时阻绝内网中任何的外网请求。
流量筛选服务系统:支持多种筛选策略,如全天流量的完整抓取或全天流量的采样抓取。其中,全天流量的采样抓取可以是依据API维度随机采样,还可以是依据用户SESSION进行场景采样。
流量回放验证服务系统:支持POST、GET协议的流量数据请求验证,支持串行、并行运行验证模式,支持HEADER伪造,支持URL请求重定向,支持URL入参伪造等。
Jenkins部署工具:测试环境的服务部署依赖Jenkins的。
流量回放测试环境:测试环境需要保证尽可能的独立,尤其是POST请求验证,需要确保环境没有其他使用,避免所生成的变更数据binlog被无关请求混淆。
流量回放结果数据存储:流量回放过程中对每条历史流量数据(URL)请求的中间数据进行存储,如请求异常信息、请求的URL、输入参数、HEADER、AUTHORIZATION、返回状态码、返回数据、binlog、验证结果。从而方便测试人员可以通过查看所存储的数据知道第二服务的异常原因,以便对第二服务进行修复。
工具集:包括binlog向量解析、数据库回滚工具、数据同步工具等。
前端UI界面:流量回放工具的前端操控界面,数据结果展示界面。实现任务发起、任务结果查看、任务定时触发配置等相关功能。
调度适配服务:接收前端UI的参数,逻辑调度后端的各个服务和接口,实现整个任务流程执行。
Gitlab:获取Gitlab信息,将流量回放验证的服务代码版本、分支、仓库与git关联,同时与gitlab相关的接口进行数据打通和功能关联。
JIRA:获取JIRA信息,将流量回放验证的测试流程与JIRA项目数据打通,实现项目信息相关联的查询,同时实现JIRA相关连的功能对接。
可以知道的是,系统架构可以进行调整,本申请并不限制具体的系统架构的实现方式。
在本申请实施例中,服务器采集历史流量数据,并获取针对该历史流量数据所输入的第一服务地址以及第二服务地址,然后获取采用历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果以及采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果,当第一处理结果与第二处理结果一致时,确定所述第二服务的验证结果正确。通过对所采集的历史流量数据调用第二服务进行回放,并将回放结果与调用第一服务(与第二服务具有相同功能的线上服务)的结果进行比对以确定第二服务的验证结果正确与否,不影响正常运转的服务或应用,且可以确保所测试的第二服务的准确性,并在确定第二服务验证结果错误时,指示用户对第二服务进行修复,可以解决开发新功能导致旧功能错误、开发测试周期迭代次数过多、测试手工回归验证方法低效以及测试回归范围不足出现漏测等问题,避免测试资源的浪费,进而可以有效保证第二服务所对应的整个项目的测试效率。
下面将结合附图3-附图8,对本申请实施例提供的服务验证方法进行详细介绍。其中,本申请实施例中的服务验证装置可以是图3所示的服务验证服务器。
请参见图3,为本申请实施例提供了一种服务验证方法的流程示意图。如图3所示,本申请实施例的所述方法可以包括以下步骤:
S101,采集历史流量数据,并获取针对所述历史流量数据所输入的第一服务地址以及第二服务地址;
流量数据是用户与第一服务对应的业务进行交互所产生的数据量,是业务与用户的营销接触点。历史流量数据可以通过在当前时刻之前,用户访问第一服务所生成的流量日志获得。
流量数据指标可包括数量指标(页面浏览量(pv)、访问次数(visits)、独立访客数(uv)、独立页面访问数(upv))、质量指标(跳出率、退出率、平均页面停留时间、平均网站停留时间)以及转化指标(转化率)。
其中,页面浏览量(pv)是指页面被浏览次数的总和,统计一个网站时,指的是网站所有页面被点击的总次数。从技术层面讲,指浏览器加载网页的次数总和,pv=count(1)。
访问次数(visits)可以从来到网站到离开,算一次访问来统计。离开后,再次重新访问,访问量可以按2次算。如果一直没有关掉网站,访问网站的不同页面,可以只算一次访问。一天内不同时间访问网站N次,算N次访问。visits=count(distinct session_id)
独立访客数(uv)指不同的、通过互联网访问这个网页的自然人。从技术层面上讲,用Cookie来确定独立访客数,在浏览器cookie数据不清除的情况下,即使用多个IP切换来登录一个网站,可以只记为一个访客数。独立访客很接近但并不完全就是真实独立的人,uv=count(distinct browser_uniq_id)。
独立页面访问数(upv)是针对页面这个维度而言的访问次数(一般访问次数都是针对访客的),即有多少个访问次数(Visits)经过这个页面,就是这个页面的upv,upv主要是避免页面的重复加载和刷新导致pv虚高的情况,所以在同一个Visit当中重复打开同一个页面,该页面的upv可以只被记为1次,upv=sum(case when url_request_seq_num=1then 1 else 0 end)。
跳出率(Bounce Rate)是指只浏览了一个页面便离开网站的访问次数占总访问次数的百分比。
跳出次数(Bounces)指进入网站后,不点击页面上的任何链接,就关闭它,那么对该网站而言就是一个Bounce,bounces=sum(case when first_request_flag=1 andlast_request_flag=1 then 1 else 0 end),跳出率=跳出次数/访问次数。
退出率(Exits Rate)指访客在一个页面离开网站的次数占该页面浏览量的百分比。退出率=退出次数/PV sum(case when last_request_flag=1 then 1 else 0 end)as exits。
平均页面停留时间(Avg_Page_Rt)指特定网页上的停留时间总和除以该页面的浏览量。Avg_Page_Rt=avg(case when stm_rt>0 and stm_rt<1800 then stm_rt end)。
平均网站停留时间(Avg_Site_Rt)指全站所有访次的停留时间总和除以全站总访次,Avg_Site_Rt=avg(case when last_request_flag=1 and session_rt>=1 thensession_rt end)。
转化率指订单量/访次,或订单量/uv。
服务是指微服务架构下单一应用程序划分成的一组小的服务,每个服务运行在其独立的进程中,服务间采用轻量级通信机制互相沟通(通常是基于HTTP协议的RESTfulAPI)。每个服务都围绕着具体的业务进行构建,并且能够被独立部署到生产环境、预生产(测试)环境。每个服务可以独立开发,处理的单元粒度更细,单个服务支持独立部署和发布,更有利于业务的扩展。
在本申请实施例中,部署到生产环境中的服务为第一服务,即针对目标应用的已发布版本中的服务。而部署到测试环境中的服务为第二服务,即针对目标应用的新开发版本中的与第一服务具有相同功能的服务。
需要说明的是,每个服务(第一服务或第二服务)由对应的平台提供接口进行调用,而调用则依赖服务地址(URL)。因此,第一服务地址对应第一服务,并通过第一服务平台提供的接口进行调用,第二服务地址对应第二服务,并通过第二服务平台提供的接口进行调用。
可以理解的是,在新开发版本的应用或者网站中可以包括有多个服务,而这多个服务中可包括已发布的服务,还可包括新开发的服务。在本申请实施例中,第一服务以及第二服务可以具有相同的功能,由于每个服务(第一服务或第二服务)由对应的平台提供接口进行调用,在调用完成后,第一服务或第二服务对应的平台提供的接口对服务验证装置提供相同的返回支持,即返回的结果所包含的类型相同。为了验证多个服务协作后的功能正确与否,需要为每个服务搭建基础设施(包括数据库、缓存等),并执行部署、配置等步骤,以确保服务能正确运行。
具体的,通过用户输入的流量请求操作,服务验证装置在历史流量数据集合中抓取的流量数据,同时,获取用户在服务验证服务器的前端UI界面上输入的第一服务地址以及第二服务地址。
S102,获取采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并获取采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果;
第一处理结果指采用历史流量数据执行第一服务所生成的结果,可以包括处理状态以及处理数据。
第二处理结果指采用历史流量数据执行第二服务所生成的结果,可以包括处理状态以及处理数据。
具体的,服务验证装置基于第一服务地址以及历史流量数据生成第一请求发送至第一服务平台,同时基于第二服务地址以及历史流量数据生成第二请求发送至第二服务平台,由于第一服务平台以及第二服务平台对外提供接口服务,并通过地址的方式指定访问路径,那么当第一服务平台以及第二服务平台在接收到服务验证装置发送的携带有第一服务地址以及第二服务地址的请求(http请求)时,基于所携带的地址分别调用对应的服务,并生成第一处理结果以及第二处理结果,服务验证装置分别接收第一处理结果以及第二处理结果。
其中,所输入的http请求方式可以包括GET、POST、PUT、HEAD、DELETE、CONNECT、TRACE、OPTIONS等,其中常见的为GET请求以及POST请求。GET请求以及POST请求的区别如表1所示:
表1
S103,当所述第一处理结果与所述第二处理结果一致时,确定所述第二服务的验证结果正确。
通过将第一处理结果中的处理状态以及处理数据分别与第二处理结果中的处理状态以及处理数据进行比对,当比对结果完全一致时,表明调用该第二服务地址指示的第二服务与调用第一服务地址指示的第一服务所执行的功能以及处理结果相同,该第二服务运行正确。
在本申请实施例中,服务器采集历史流量数据,并获取针对该历史流量数据所输入的第一服务地址以及第二服务地址,然后获取采用历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果以及采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果,当第一处理结果与第二处理结果一致时,确定所述第二服务的验证结果正确。通过对所采集的历史流量数据调用第二服务进行回放,并将回放结果与调用第一服务(与第二服务具有相同功能的线上服务)的结果进行比对以确定第二服务的调用正确与否,不影响正常运转的服务或应用,且可以确保所测试的第二服务的准确性。
请参见图4,为本申请实施例提供了一种服务验证方法的流程示意图。本实施例以服务验证方法应用于服务器中来举例说明。该服务验证方法可以包括以下步骤:
S201,查询预设的历史流量数据集合,采用预设的流量筛选策略在所述历史流量数据集合中抓取历史流量数据;
可以理解的是,历史流量数据集合为包括了针对同一应用(生产版本)多个历史日期的不同服务的流量数据。
流量筛选策略可以为某一历史日期流量的完整抓取或某一历史日期流量的采样抓取,其中采样抓取可以是依据API维度随机采样,还可以是依据用户SESSION进行场景采样等。
服务验证装置可获取所设定的历史日期,并基于该历史日期采用设定的流量筛选策略依次遍历历史流量数据集合,从而抓取其中满足条件的历史流量数据。
可选的,所述历史流量数据的采集可通过检测到线上请求而触发。例如,如图5所示,当服务验证服务器检测到用户输入的线上请求时,读取所有服务的Nginx日志(NG1、NG2)并进行分析处理,从而提取出其中满足条件的历史流量数据。
S202,获取针对所述历史流量数据所输入的第一服务地址以及第二服务地址;
具体可参见S101,此处不再赘述。
S203,将所述历史流量数据分别发送至所述第一服务地址对应的第一服务平台以及所述第二服务地址对应的第二服务平台;
服务验证装置基于历史流量数据以及第一服务地址生成第一服务调用请求,同时基于历史流量数据以及第二服务地址生成第二服务调用请求,然后将第一服务调用请求发送至第一服务平台,将第二服务调用请求发送至第二服务平台。
所生成的第一服务调用请求与第二服务调用请求可以是相同类型,可以包括GET、POST、PUT、HEAD、DELETE、CONNECT、TRACE、OPTIONS等,其中,在本申请实施例中以GET请求以及POST请求为例进行说明。
可选的,GET请求以及POST请求的区别具体可参见S102,此处不再赘述。
S204,接收所述第一服务平台反馈的采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并接收所述第二服务平台反馈的采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果;
第一服务平台接收第一服务调用请求,并提取请求中携带的历史流量数据以及第一服务地址,然后通过第一服务地址采用历史流量数据调用第一服务,从而生成对应的包含了处理状态以及处理数据的第一处理结果。
同样的,第二服务平台接收第二服务调用请求,并提取请求中携带的历史流量数据以及第二服务地址,然后通过第二服务地址采用历史流量数据调用第二服务,从而生成对应的包含了处理状态以及处理数据的第二处理结果。其中的第一服务调用请求和第二服务调用请求可以同时为GET类型调用请求,也可以同时为POST类型调用请求,也可以为不同类型的调用请求,如分别使用GET、POST调用请求。
服务验证系统还可以包括相应的数据库,如:第一服务平台可以使用第一数据库完成第一服务,第二服务平台可以使用第二数据库完成第二服务。更进一步,第一数据库与第二数据库可以是经过数据同步的,其中数据库表结构可以互不相同,但是数据信息熵是等价的,或者第一数据库与第二数据库数据也可以相同,此外,第一数据库与第二数据库可以为同一数据库。
例如:在采用前述系统架构的情况下,数据库的同步可以依赖Jenkins Job完成的。
例如,如图6所示,一种数据库为线上redis以及线下redis,线上服务依赖线上redis,而第二服务依赖线下redis,将线上redis导出后,对线下redis进行同步,可以实现两数据库的同步。
第一服务平台在生成第一处理结果后反馈至服务测试装置,同样的,第二服务平台在生成第二处理结果后反馈至服务测试装置,服务测试装置分别接收第一处理结果以及第二处理结果。
S205,当所述第一处理结果与所述第二处理结果一致时,确定所述第二服务的验证结果正确。
具体可参见S103,此处不再赘述。
S206,当所述第一处理结果与所述第二处理结果不一致时,获取采用所述历史流量数据调用所述第一服务的第三处理结果;
生成第三处理结果与生成第一处理结果方式相同,具体可参见S204,此处不再赘述。
S207,确定所述第一处理结果与所述第三处理结果的第一差异数据,将所述第一差异数据作为执行所述第一服务以及所述第二服务所生成的噪声数据。
第一处理结果与第三处理结果返回的Json结果在结构上是一致的,但可能某个节点存在差异。由于第一处理结果与第三处理结果都是基于第一服务所得到的,这些差异通常是因为一些噪声产生的,比如时间戳、随机字符等等。因此,可通过第一处理结果以及第三处理结果的差异识别这些噪声。
例如,如图7所示,第一处理结果如图7中左图所示,第三处理结果如图7中中间的图所示,将两结果进行结构性、节点数值比对可以产生一个Json差异树,如图7中右图所示。使用Json差异树进行两次第一服务的返回结果进行验证,可以精确的排除噪声,并识别差异节点(如7中A为差异节点)。
当然,也可以是通过第二服务连续进行两次请求,或者第一服务以及此处服务分别连续进行两次请求,从而排除噪声所导致的第一服务与第二服务之间的差异。
S208,确定所述第一处理结果以及所述第二处理结果的第二差异数据,在所述第二差异数据中剔除所述噪声数据;
例如,第一返回结果以及第二返回结果如图8所示,通过比对第一返回结果与第二返回结果,可确定第二差异数据为“A”和“B”,排除其中由噪声所导致的差异“A”,从而可确定两结果的差异数据为“B”,进而可以排除噪声的情况下第一服务以及第二服务在返回结果中所产生的差异。
S209,将所述历史流量数据、所述第一处理结果、所述第二处理结果、剔除所述噪声数据后的所述第二差异数据对应保存至异常信息数据库中。
由于开发新的应用或者网站,需要进行流量回放验证的第二服务并不仅仅包括一个第二服务,通过对多个服务进行测试,并对这些导致异常的服务的相关数据进行保存,从而方便测试员通过查看所存储的异常数据对第二服务中的对应代码进行快速修复。一种可行的保存形式如表2所示。
表2
历史流量数据1 | 第一处理结果1 | 第二处理结果1 | 除噪后的第二差异数据1 |
历史流量数据2 | 第一处理结果2 | 第二处理结果2 | 除噪后的第二差异数据2 |
历史流量数据3 | 第一处理结果3 | 第二处理结果3 | 除噪后的第二差异数据3 |
… | … | … | … |
S210,输出服务运行错误提示信息,所述服务运行错误提示信息用于指示基于所述异常信息数据库对所述第二服务进行修复。
输出提示信息用于提示用户进行第二服务的代码修复。而输出该提示信息的方式可以包括多种,音频、视频、文本、闪烁指示灯等,此处不作具体限定。
可选的,当服务验证装置所生成的请求为POST类型时,通常会导致第一服务平台中的第一数据库以及第二服务平台中的第二数据库发生数据变更,服务验证服务器获取调用所述第一服务生成的第一变更数据以及调用所述第二服务生成的第二变更数据;当所述第一变更数据与所述第二变更数据不一致时,对所述第一变更数据以及所述第二变更数据进行回滚处理,并将回滚处理后的所述第一变更数据发送至所述第一服务器以及将回滚处理后的所述第二变更数据发送至所述第二服务器。
其中,第一变更数据和第二变更数据即为两数据库产生的binlog。binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对数据库表等内容的查询不会记录。默认情况下,binlog日志是二进制格式的,不能使用查看文本工具的命令(比如cat,vi等)查看,可以使用mysqlbinlog解析查看。
由于在两数据库结构差异比较大的情况下,数据冗余导致向量复杂多样,那么数据库变更生成的向量数可能不一致;或者数据库变更生成的向量table、与field都可能存在差异,无法保证向量维度一致。可使用cannal进行binlog解析,通过比对两数据库的binlog,借助所生成的向量符号可以进行部分的数据变更一致性比对。
例如,数据库中有表people,其中包括name字段,仅对该字段进行了修改,
table:people
|id|name|password|POST请求修改数据库|id|name|password|
|1231|Tom|98djbac7823bjf|======》|1231|Tony|98djbac7823bjf|
那么,从POST请求前状态S到请求结束状态E之间生成数据变更向量为(S→E,table:people,field:name,Tom→Tony),则分别比对两数据库的变更向量,从而可判断两数据库是否一致。
又例如,数据存在一定程度的数据冗余,上层服务需要维护冗余数据的一致性将会导致产生复杂向量,将对多表进行修改。
table:people
|id|name|password|POST请求修改数据库|id|name|password|
|1231|Tom|98djbac7823bjf|======》|1231|Tony|98djbac7823bjf|
table:classroom
|id|student|room_id|POST请求修改数据库|id|student|room_id|
|312|Tom|98djbac|======》|312|Tony|98djbac|
从而,生成的变更向量为(S→E,table:people,field:name,Tom→Tony)、(S→E,table:classroom,field:student,Tom→Tony),则分别对两数据库的中的多个变更向量分别进行比对,当比对一致时,将所生产的变更向量进行保存,当比对不一致时,将这条POST请求造成的数据库进行变更回滚,从而再次保证两数据库的数据集合等价。变更回滚指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。回滚包括程序回滚和数据回滚等类型。
在本申请实施例中,服务器采集历史流量数据,并获取针对该历史流量数据所输入的第一服务地址以及第二服务地址,然后获取采用历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果以及采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果,当第一处理结果与第二处理结果一致时,确定所述第二服务的验证结果正确。通过对所采集的历史流量数据调用第二服务进行回放,并将回放结果与调用第一服务(与第二服务具有相同功能的线上服务)的结果进行比对以确定第二服务的调用正确与否,不影响正常运转的服务或应用,且可以确保所测试的第二服务的准确性,并在确定第二服务调用错误时,指示用户对第二服务进行修复,可以解决开发新功能导致旧功能错误、开发测试周期迭代次数过多、测试手工回归验证方法低效以及测试回归范围不足出现漏测等问题,避免测试资源的浪费,进而可以有效保证第二服务所对应的整个项目的测试效率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图9,其示出了本申请一个示例性实施例提供的服务验证装置的结构示意图。该服务验证装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置1包括服务获取模块11、结果获取模块12和服务验证模块13。
服务获取模块11,用于采集历史流量数据,并获取针对所述历史流量数据所输入的第一服务地址以及第二服务地址;
结果获取模块12,用于获取采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并获取采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果;
服务验证模块13,用于当所述第一处理结果与所述第二处理结果一致时,确定所述第二服务的验证结果正确。
可选的,如图10所示,所述装置1还包括:
信息输出模块14,用于当所述第一处理结果与所述第二处理结果不一致时,输出服务运行错误提示信息,所述服务运行错误提示信息用于指示对所述第二服务进行修复。
可选的,如图10所示,所述装置1还包括:
所述结果获取模块12,还用于获取采用所述历史流量数据调用所述第一服务的第三处理结果;
噪声确定模块15,用于确定所述第一处理结果与所述第三处理结果的第一差异数据,将所述第一差异数据作为调用所述第一服务以及所述第二服务所生成的噪声数据。
可选的,如图10所示,所述装置1还包括:
噪声剔除模块16,用于确定所述第一处理结果以及所述第二处理结果的第二差异数据,在所述第二差异数据中剔除所述噪声数据;
数据保存模块17,用于将所述历史流量数据、所述第一处理结果、所述第二处理结果、剔除所述噪声数据后的所述第二差异数据对应保存至异常信息数据库中。
可选的,所述信息输出模块13,具体用于:
输出服务运行错误提示信息,所述服务运行错误提示信息用于指示基于所述异常信息数据库对所述第二服务进行修复。
可选的,如图11所示,所述结果获取模块12,包括:
流量发送单元121,用于将所述历史流量数据分别发送至所述第一服务地址对应的第一服务平台以及所述第二服务地址对应的第二服务平台;
结果接收单元122,用于接收所述第一服务平台反馈的采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并接收所述第二服务平台反馈的采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果。
可选的,如图10所示,所述装置1还包括:
变更数据获取模块18,用于获取调用所述第一服务生成的第一变更数据以及执行所述第二服务生成的第二变更数据;
变更数据回滚模块19,用于当所述第一变更数据与所述第二变更数据不一致时,对所述第一变更数据进行回滚处理,并将回滚处理后的所述第一变更数据发送至所述第一服务平台,和/或,对所述第二变更数据进行回滚处理,将回滚处理后的所述第二变更数据发送至所述第二服务平台。
可选的,所述服务获取模块11,具体用于:
查询预设的历史流量数据集合,采用预设的流量筛选策略在所述历史流量数据集合中抓取历史流量数据。
需要说明的是,上述实施例提供的服务验证装置在执行服务验证方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的服务验证装置与服务验证方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,服务器采集历史流量数据,并获取针对该历史流量数据所输入的第一服务地址以及第二服务地址,然后获取采用历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果以及采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果,当第一处理结果与第二处理结果一致时,确定所述第二服务的验证结果正确。通过对所采集的历史流量数据调用第二服务进行回放,并将回放结果与调用第一服务(与第二服务具有相同功能的线上服务)的结果进行比对以确定第二服务的调用正确与否,不影响正常运转的服务或应用,且可以确保所测试的第二服务的准确性,并在确定第二服务验证结果错误时,指示用户对第二服务进行修复,可以解决开发新功能导致旧功能错误、开发测试周期迭代次数过多、测试手工回归验证方法低效以及测试回归范围不足出现漏测等问题,避免测试资源的浪费,进而可以有效保证第二服务所对应的整个项目的测试效率。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图8所示实施例的方法步骤,具体执行过程可以参见图1-图8所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的焦点状态调整方法。
请参见图12,为本申请实施例提供了一种服务器的结构示意图。如图12所示,所述服务器1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图12所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及服务验证应用程序。
在图12所示的服务器1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的服务验证应用程序,并具体执行以下操作:
采集历史流量数据,并获取针对所述历史流量数据所输入的第一服务地址以及第二服务地址;
获取采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并获取采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果;
当所述第一处理结果与所述第二处理结果一致时,确定所述第二服务的验证结果正确。
在一个实施例中,所述处理器1001还执行以下操作:
当所述第一处理结果与所述第二处理结果不一致时,输出服务运行错误提示信息,所述服务运行错误提示信息用于指示对所述第二服务进行修复。
在一个实施例中,所述处理器1001在执行当所述第一处理结果与所述第二处理结果不一致时之后,还执行以下操作:
获取采用所述历史流量数据调用所述第一服务的第三处理结果;
确定所述第一处理结果与所述第三处理结果的第一差异数据,将所述第一差异数据作为调用所述第一服务以及所述第二服务所生成的噪声数据。
在一个实施例中,所述处理器1001还执行以下操作:
确定所述第一处理结果以及所述第二处理结果的第二差异数据,在所述第二差异数据中剔除所述噪声数据;
将所述历史流量数据、所述第一处理结果、所述第二处理结果、剔除所述噪声数据后的所述第二差异数据对应保存至异常信息数据库中。
在一个实施例中,所述处理器1001在执行输出服务运行错误提示信息,所述服务运行错误提示信息用于指示对所述第二服务进行修复时,具体执行以下操作:
输出服务运行错误提示信息,所述服务运行错误提示信息用于指示基于所述异常信息数据库对所述第二服务进行修复。
在一个实施例中,所述处理器1001在执行获取采用所述历史流量数据执行所述第一服务地址指示的第一服务的第一处理结果,并获取采用所述历史流量数据执行所述第二服务地址指示的第二服务的第二处理结果时,具体执行以下操作:
将所述历史流量数据分别发送至所述第一服务地址对应的第一服务平台以及所述第二服务地址对应的第二服务平台;
接收所述第一服务平台反馈的采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并接收所述第二服务平台反馈的采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果。
在一个实施例中,所述处理器1001还执行以下操作:
获取调用所述第一服务生成的第一变更数据以及调用所述第二服务生成的第二变更数据;
当所述第一变更数据与所述第二变更数据不一致时,对所述第一变更数据以及所述第二变更数据进行回滚处理,并将回滚处理后的所述第一变更数据发送至所述第一服务平台,和/或,对所述第二变更数据进行回滚处理,将回滚处理后的所述第二变更数据发送至所述第二服务平台。
在一个实施例中,所述处理器1001在执行采集历史流量数据时,具体执行以下操作:
查询预设的历史流量数据集合,采用预设的流量筛选策略在所述历史流量数据集合中抓取历史流量数据。
在本申请实施例中,服务器采集历史流量数据,并获取针对该历史流量数据所输入的第一服务地址以及第二服务地址,然后获取采用历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果以及采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果,当第一处理结果与第二处理结果一致时,确定所述第二服务的验证结果正确。通过对所采集的历史流量数据调用第二服务进行回放,并将回放结果与调用第一服务(与第二服务具有相同功能的线上服务)的结果进行比对以确定第二服务的调用正确与否,不影响正常运转的服务或应用,且可以确保所测试的第二服务的准确性,并在确定第二服务验证结果错误时,指示用户对第二服务进行修复,可以解决开发新功能导致旧功能错误、开发测试周期迭代次数过多、测试手工回归验证方法低效以及测试回归范围不足出现漏测等问题,避免测试资源的浪费,进而可以有效保证第二服务所对应的整个项目的测试效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (11)
1.一种服务验证方法,其特征在于,所述方法包括:
采集历史流量数据,并获取针对所述历史流量数据所输入的第一服务地址以及第二服务地址;
获取采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并获取采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果;
当所述第一处理结果与所述第二处理结果一致时,确定所述第二服务的验证结果正确。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一处理结果与所述第二处理结果不一致时,输出服务运行错误提示信息,所述服务运行错误提示信息用于指示对所述第二服务进行修复。
3.根据权利要求2所述的方法,其特征在于,所述当所述第一处理结果与所述第二处理结果不一致时之后,还包括:
获取采用所述历史流量数据调用所述第一服务的第三处理结果;
确定所述第一处理结果与所述第三处理结果的第一差异数据,将所述第一差异数据作为调用所述第一服务以及所述第二服务所生成的噪声数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
确定所述第一处理结果以及所述第二处理结果的第二差异数据,在所述第二差异数据中剔除所述噪声数据;
将所述历史流量数据、所述第一处理结果、所述第二处理结果、剔除所述噪声数据后的所述第二差异数据对应保存至异常信息数据库中。
5.根据权利要求4所述的方法,其特征在于,所述输出服务运行错误提示信息,所述服务运行错误提示信息用于指示对所述第二服务进行修复,包括:
输出服务运行错误提示信息,所述服务运行错误提示信息用于指示基于所述异常信息数据库对所述第二服务进行修复。
6.根据权利要求1所述的方法,其特征在于,所述获取采用所述历史流量数据执行所述第一服务地址指示的第一服务的第一处理结果,并获取采用所述历史流量数据执行所述第二服务地址指示的第二服务的第二处理结果,包括:
将所述历史流量数据分别发送至所述第一服务地址对应的第一服务平台以及所述第二服务地址对应的第二服务平台;
接收所述第一服务平台反馈的采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并接收所述第二服务平台反馈的采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取调用所述第一服务生成的第一变更数据以及调用所述第二服务生成的第二变更数据;
当所述第一变更数据与所述第二变更数据不一致时,对所述第一变更数据进行回滚处理,将回滚处理后的所述第一变更数据发送至所述第一服务平台,和/或,对所述第二变更数据进行回滚处理,将回滚处理后的所述第二变更数据发送至所述第二服务平台。
8.根据权利要求1所述的方法,其特征在于,所述采集历史流量数据,包括:
查询预设的历史流量数据集合,采用预设的流量筛选策略在所述历史流量数据集合中抓取历史流量数据。
9.一种服务验证装置,其特征在于,所述装置包括:
服务获取模块,用于采集历史流量数据,并获取针对所述历史流量数据所输入的第一服务地址以及第二服务地址;
结果获取模块,用于获取采用所述历史流量数据调用所述第一服务地址指示的第一服务的第一处理结果,并获取采用所述历史流量数据调用所述第二服务地址指示的第二服务的第二处理结果;
服务验证模块,用于当所述第一处理结果与所述第二处理结果一致时,确定所述第二服务的验证结果正确。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~8任意一项的方法步骤。
11.一种服务器,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~8任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910092499.6A CN109831357B (zh) | 2019-01-30 | 2019-01-30 | 一种服务验证方法、装置、存储介质及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910092499.6A CN109831357B (zh) | 2019-01-30 | 2019-01-30 | 一种服务验证方法、装置、存储介质及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109831357A true CN109831357A (zh) | 2019-05-31 |
CN109831357B CN109831357B (zh) | 2020-12-29 |
Family
ID=66863126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910092499.6A Expired - Fee Related CN109831357B (zh) | 2019-01-30 | 2019-01-30 | 一种服务验证方法、装置、存储介质及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109831357B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110995524A (zh) * | 2019-10-28 | 2020-04-10 | 北京三快在线科技有限公司 | 流量数据监控方法、装置、电子设备和计算机可读介质 |
CN111506455A (zh) * | 2020-03-31 | 2020-08-07 | 拉扎斯网络科技(上海)有限公司 | 服务发布结果的查验方法及装置 |
CN111988200A (zh) * | 2020-08-18 | 2020-11-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 基于真实流量的自动回归测试方法及装置 |
CN113254028A (zh) * | 2021-04-30 | 2021-08-13 | 北京仁科互动网络技术有限公司 | 代码处理方法、装置、电子设备及存储介质 |
CN113472687A (zh) * | 2021-07-15 | 2021-10-01 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113568795A (zh) * | 2021-07-30 | 2021-10-29 | 杭州时趣信息技术有限公司 | 一种静态化服务测试方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150269721A1 (en) * | 2014-03-19 | 2015-09-24 | International Business Machines Corporation | Automated validation of the appearance of graphical user interfaces |
CN105512017A (zh) * | 2014-09-22 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 一种数据库兼容性检测方法及设备 |
CN106294611A (zh) * | 2016-08-02 | 2017-01-04 | 重庆农村商业银行股份有限公司 | 银行核心系统及新老核心系统数据切换方法 |
CN106484610A (zh) * | 2015-09-02 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 一种Beta测试方法和装置 |
CN107122289A (zh) * | 2016-02-25 | 2017-09-01 | 阿里巴巴集团控股有限公司 | 系统回归测试的方法、装置及系统 |
CN108197021A (zh) * | 2017-12-28 | 2018-06-22 | 深圳市彬讯科技有限公司 | 一种web系统自动化测试方法、装置、设备及存储介质 |
CN109101423A (zh) * | 2018-08-03 | 2018-12-28 | 挖财网络技术有限公司 | 一种基于服务端日志回放的自动化测试方法 |
-
2019
- 2019-01-30 CN CN201910092499.6A patent/CN109831357B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150269721A1 (en) * | 2014-03-19 | 2015-09-24 | International Business Machines Corporation | Automated validation of the appearance of graphical user interfaces |
CN105512017A (zh) * | 2014-09-22 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 一种数据库兼容性检测方法及设备 |
CN106484610A (zh) * | 2015-09-02 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 一种Beta测试方法和装置 |
CN107122289A (zh) * | 2016-02-25 | 2017-09-01 | 阿里巴巴集团控股有限公司 | 系统回归测试的方法、装置及系统 |
CN106294611A (zh) * | 2016-08-02 | 2017-01-04 | 重庆农村商业银行股份有限公司 | 银行核心系统及新老核心系统数据切换方法 |
CN108197021A (zh) * | 2017-12-28 | 2018-06-22 | 深圳市彬讯科技有限公司 | 一种web系统自动化测试方法、装置、设备及存储介质 |
CN109101423A (zh) * | 2018-08-03 | 2018-12-28 | 挖财网络技术有限公司 | 一种基于服务端日志回放的自动化测试方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110995524A (zh) * | 2019-10-28 | 2020-04-10 | 北京三快在线科技有限公司 | 流量数据监控方法、装置、电子设备和计算机可读介质 |
CN110995524B (zh) * | 2019-10-28 | 2022-06-14 | 北京三快在线科技有限公司 | 流量数据监控方法、装置、电子设备和计算机可读介质 |
CN111506455A (zh) * | 2020-03-31 | 2020-08-07 | 拉扎斯网络科技(上海)有限公司 | 服务发布结果的查验方法及装置 |
CN111988200A (zh) * | 2020-08-18 | 2020-11-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 基于真实流量的自动回归测试方法及装置 |
CN113254028A (zh) * | 2021-04-30 | 2021-08-13 | 北京仁科互动网络技术有限公司 | 代码处理方法、装置、电子设备及存储介质 |
CN113472687A (zh) * | 2021-07-15 | 2021-10-01 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113472687B (zh) * | 2021-07-15 | 2023-12-05 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113568795A (zh) * | 2021-07-30 | 2021-10-29 | 杭州时趣信息技术有限公司 | 一种静态化服务测试方法、装置、设备及存储介质 |
CN113568795B (zh) * | 2021-07-30 | 2024-04-26 | 杭州时趣信息技术有限公司 | 一种静态化服务测试方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109831357B (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109831357A (zh) | 一种服务验证方法、装置、存储介质及服务器 | |
US12038827B2 (en) | System and method of handling complex experiments in a distributed system | |
US11410229B2 (en) | Data reconciliation based on computer analysis of data | |
CN105099811B (zh) | 一种接口测试方法和装置 | |
US8645921B2 (en) | System and method to determine defect risks in software solutions | |
CN102483698B (zh) | 动态web应用的客户端层验证 | |
US20160140626A1 (en) | Web page advertisement configuration and optimization with visual editor and automatic website and webpage analysis | |
US20120233595A1 (en) | Service definition document for providing blended services utilizing multiple service endpoints | |
CN107391468A (zh) | 一种添加图表的方法、装置和设备 | |
CN110795305B (zh) | 用于处理和管理web流量数据的系统、装置和方法 | |
CN101526916A (zh) | 基于页面对象流验证在回归测试中的应用方法及系统 | |
CN106254543A (zh) | 基于云计算架构的分布式互联网金融网贷方法和系统 | |
US20180176117A1 (en) | Method and program product for a private performance network with geographical load simulation | |
CN109460841A (zh) | 用户开户方法、系统及存储介质 | |
WO2019238299A1 (en) | System and method for simulating network events | |
CN106815725A (zh) | 一种交易验证方法和装置 | |
US20200082822A1 (en) | System and method for mapping a customer journey to a category | |
Amann et al. | Growth in a time of austerity: Evidence from the UK | |
CN109241435A (zh) | 一种用于数字货币交易的数据推送方法、装置及系统 | |
Kumar et al. | Paradigm shift from conventional software quality models to web based quality models | |
Bai et al. | Design of a trustworthy service broker and dependence-based progressive group testing | |
Wang et al. | Generating effective test cases based on satisfiability modulo theory solvers for service‐oriented workflow applications | |
Tarhini et al. | Regression testing web applications | |
Zhang et al. | Web service reputation evaluation based on QoS measurement | |
Luo et al. | Clustering and tailoring user session data for testing web applications |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201229 |
|
CF01 | Termination of patent right due to non-payment of annual fee |