系统检测方法、装置、计算机设备及计算机可读存储介质与流程

文档序号:32610420发布日期:2022-12-20 19:40阅读:48来源:国知局
系统检测方法、装置、计算机设备及计算机可读存储介质与流程

1.本发明涉及系统测试领域,尤其涉及一种可用于金融科技或者其他相关领域的系统检测方法、装置、计算机设备及计算机可读存储介质。


背景技术:

2.当计算机系统发生故障时,会造成不可估量的损失。计算机系统的检测是保证计算机系统质量,避免计算机系统出现缺陷和发生故障的重要环节。现有技术通常采用人工检测的方式确定计算机系统是否出现缺陷或发生故障。
3.随着计算机技术的迭代演变,计算机系统也越来越复杂,导致计算机系统进行一次全场景的检测需要消耗极高的人力。同时,人工检测计算机系统的方式难以快速准确的确定计算机系统是否出现缺陷,也难以深入计算机系统的链路来定位计算机系统中出现缺陷的位置,导致计算机系统检测效率低下。此外,随着计算机系统版本的迭代越来越快,版本迭代的频率越来越高,增加了计算机系统出现缺陷的概率。短时间内需要多次检测版本迭代后的计算机系统,进一步导致了计算机系统检测效率低下。


技术实现要素:

4.有鉴于此,本发明的目的是为了克服现有技术中的不足,提供一种可用于金融科技或其他相关领域的系统检测方法、装置、计算机设备及计算机可读存储介质,以解决计算机系统检测效率低下的问题。
5.第一方面,本技术提供一种系统检测方法,所述方法包括:
6.基于每次调用目标系统时生成的记录数据,得到所述目标系统的全链路数据,其中,所述全链路数据包括所述目标系统的历史输入数据、历史输出数据、历史地址数据及历史中间结果数据;
7.根据所述历史输入数据、所述历史输出数据及所述历史地址数据,得到所述目标系统的测试任务;
8.运行所述测试任务,得到所述目标系统的测试结果数据;
9.将所述测试结果数据与所述历史中间结果数据进行对比,生成所述目标系统的检测信息。
10.结合第一方面,在第一种可能的实现方式中,所述根据所述历史输入数据、所述历史输出数据及所述历史地址数据,得到所述目标系统的测试任务,包括:
11.将所述历史输入数据作为测试案例的报文,将所述历史输出数据作为所述测试案例的验证项,并将所述历史地址数据作为所述测试案例的调用地址,生成所述目标系统的测试案例;
12.根据预设数量的测试案例,得到所述目标系统的测试任务。
13.结合第一方面,在第二种可能的实现方式中,所述全链路数据还包括所述目标系统的历史中间依赖数据,所述运行所述测试任务,得到所述目标系统的测试结果数据,包
括:
14.基于所述历史中间依赖数据,构建所述目标系统的历史运行环境;
15.利用所述历史运行环境运行所述测试任务,得到所述目标系统的测试结果数据。
16.结合第一方面,在第三种可能的实现方式中,所述测试结果数据包括测试输出数据和测试中间结果数据,所述将所述测试结果数据与所述历史中间结果数据进行对比,生成所述目标系统的检测信息,包括:
17.将所述历史输出数据与所述测试输出数据进行对比,并将所述历史中间结果数据与所述测试中间结果数据进行对比,生成所述目标系统的检测信息。
18.结合第一方面,在第四种可能的实现方式中,所述基于每次调用目标系统时生成的记录数据,得到所述目标系统的全链路数据,包括:
19.获取每次调用目标系统时生成的记录数据,并生成所述记录数据的标识信息;
20.基于所述标识信息串联所述记录数据,得到所述目标系统的全链路数据。
21.结合第一方面,在第五种可能的实现方式中,所述将所述测试结果数据与所述历史中间结果数据进行对比,生成所述目标系统的检测信息,包括:
22.若所述测试结果数据与所述历史中间结果数据匹配,生成所述目标系统的第一检测信息,其中,所述第一检测信息用于提示所述目标系统不存在异常;
23.若所述测试结果数据与所述历史中间结果数据不匹配,基于测试结果数据与所述历史中间结果数据,生成所述目标系统的第二检测信息,其中,所述第二检测信息用于提示所述目标系统存在的异常数据。
24.结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述若所述测试结果数据与所述历史中间结果数据不匹配,基于测试结果数据与所述历史中间结果数据,生成所述目标系统的第二检测信息之后,还包括:
25.基于所述测试结果数据,更新所述目标系统的测试任务。
26.第二方面,本技术提供一种系统检测装置,所述装置包括:
27.全链路数据得到模块,用于基于每次调用目标系统时生成的记录数据,得到所述目标系统的全链路数据,其中,所述全链路数据包括所述目标系统的历史输入数据、历史输出数据及历史地址数据;
28.测试任务得到模块,用于根据所述历史输入数据、所述历史输出数据及所述历史地址数据,得到所述目标系统的测试任务;
29.测试任务运行模块,用于运行所述测试任务,得到所述目标系统的测试结果数据;
30.检测信息生成模块,用于将所述测试结果数据与所述历史中间结果数据进行对比,生成所述目标系统的检测信息。
31.第三方面,本技术提供一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器执行时,实现如第一方面所述的系统检测方法。
32.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的系统检测方法。
33.本技术提供了一种系统检测方法,所述方法包括:基于每次调用目标系统时生成的记录数据,得到所述目标系统的全链路数据,其中,所述全链路数据包括所述目标系统的
历史输入数据、历史输出数据、历史地址数据及历史中间结果数据;根据所述历史输入数据、所述历史输出数据及所述历史地址数据,得到所述目标系统的测试任务;运行所述测试任务,得到所述目标系统的测试结果数据;将所述测试结果数据与所述历史中间结果数据进行对比,生成所述目标系统的检测信息。通过运行得到的测试任务,能够全场景的快速确认目标系统是否出现缺陷。同时,能够快速的确定目标系统出现缺陷的位置,提高了目标系统的检测效率。
附图说明
34.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
35.图1示出了本发明实施例提供的第一种系统检测方法的流程图;
36.图2示出了本发明实施例提供的第二种系统检测方法的流程图;
37.图3示出了本发明实施例提供的第三种系统检测方法的流程图;
38.图4示出了本发明实施例提供的系统检测装置的结构示意图。
具体实施方式
39.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
40.通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
42.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
43.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
44.实施例1
45.请参阅图1,图1示出了本发明实施例提供的第一种系统检测方法的流程图,图1中的系统检测方法包括步骤s110至s140:
46.步骤110,基于每次调用目标系统时生成的记录数据,得到所述目标系统的全链路
数据。
47.在系统的版本迭代过程中,系统中大部分业务逻辑不会发生改变。在此系统的业务逻辑和依赖数据未发生改变的基础上,系统相同的输入数据会产生相同的输出数据和中间结果数据。为便于理解,本技术的实施例中,在计算机设备中配置用于进行系统的检测插件,并在目标系统的启动脚本中添加检测插件的存放目录,以绑定目标系统和检测插件。
48.目标系统加载和运行过程中,每次调用目标系统都会生成记录数据,其中,记录数据包括目标系统的输入数据、输出数据、中间依赖数据及中间结果数据等,在此不做限定。将每次调用目标系统时生成记录数据,串联成顺序排列的全链路数据。基于记录数据得到的全链路数据包括了每次目标系统时生成的历史输入数据、历史输出数据、历史地址数据、历史中间依赖数据及历史中间结果数据等记录数据。若目标系统的业务逻辑和依赖数据未发生改变,则输入历史输入数据后,会产生与历史输出数据相同的输出数据,和与历史中间结果数据相同的中间结果数据。
49.作为一个示例,所述基于每次调用目标系统时生成的记录数据,得到所述目标系统的全链路数据,包括:
50.获取每次调用目标系统时生成的记录数据,并生成所述记录数据的标识信息;
51.基于所述标识信息串联所述记录数据,得到所述目标系统的全链路数据。
52.采用字节码注入,在不改变目标系统的代码基础上,目标系统加载和运行时,每次调用目标系统都会注入采集到的记录数据。对http(hyper text transfer protocol,超文本传输协议)进行拦截,采集目标系统的接口每次被调用时的地址数据、输入数据、输出数据、中间依赖数据及中间结果数据,其中,地址数据包括url(uniform resource locator,统一资源定位系统)地址,http请求header(标头)等,在此不做限定。
53.基于雪花算法生成每次调用目标系统时生成的记录数据的标识信息,其中,标识信息可以是分布式唯一id(identity document、身份号)、标识符等,在此不做限定。通过标识信息将调用一次目标系统生成的记录数据按时间戳串联,得到目标系统的全链路数据。采用mq(message queue,消息队列)将全链路数据异步存储至存储介质中。当需要对目标系统检测时,调用存储介质中存储的全链路数据,对目标系统进行测试,判断目标系统是否出现缺陷或发生故障。
54.步骤120,根据所述历史输入数据、所述历史输出数据及所述历史地址数据,得到所述目标系统的测试任务。
55.全链路数据为系统进行版本迭代前的调用目标系统时生成的记录数据。当目标系统进行版本迭代之后,调用存储的全链路数据,得到调用目标系统时的历史输入数据、历史输出数据及历史地址数据。根据历史输入数据、历史输出数据及历史地址数据,得到目标系统的测试任务。通过全链路数据回溯目标系统的记录数据,得到目标系统的测试任务,进而测试任务确定目标系统进行版本迭代之后是否出现缺陷或发生故障。
56.请一并参阅图2,图2示出了本发明实施例提供的第二种系统检测方法的流程图。作为一个示例,所述根据所述历史输入数据、所述历史输出数据及所述历史地址数据,得到所述目标系统的测试任务,包括:
57.步骤121,将所述历史输入数据作为测试案例的报文,将所述历史输出数据作为所述测试案例的验证项,并将所述历史地址数据作为所述测试案例的调用地址,生成所述目
标系统的测试案例。
58.调用存储的全链路数据,得到调用目标系统时的历史输入数据、历史输出数据及历史地址数据。将调用一次目标系统的历史输入数据作为测试案例的报文,将调用一次目标系统的历史输出数据作为测试案例的验证项,并将调用一次目标系统的历史地址数据作为测试案例的调用地址,生成目标系统的一个测试案例。
59.步骤122,根据预设数量的测试案例,得到所述目标系统的测试任务。
60.由于调用目标系统接口生成的记录数据逐渐增大,生成的测试案例的数量也越来越多。当测试案例的数量大于或等于预设数量时,将预设数量的测试案例按时间戳排列,得到一个测试案例集合,其中,预设数量是根据实际需求设置的,在此不做限定。运行测试案例集合,得到目标系统的测试任务。
61.步骤130,运行所述测试任务,得到所述目标系统的测试结果数据。
62.当目标系统进行版本迭代后,在预设时间运行测试任务,得到目标系统的测试结果数据,其中,预设的时间是根据实际需求设置的,在此不做限定。为便于理解,本技术的实施例中,预设时间为晚间。通过晚间运行测试任务,在不影响目标系统白天时间正常运行的基础上,对目标系统进行检测。通过得到的测试结果数据,确定目标系统进行版本迭代之后是否出现缺陷或发生故障。
63.请一并参阅图3,图3示出了本发明实施例提供的第三种系统检测方法的流程图。作为一个示例,所述全链路数据还包括所述目标系统的历史中间依赖数据,所述运行所述测试任务,得到所述目标系统的测试结果数据,包括:
64.步骤131,基于所述历史中间依赖数据,构建所述目标系统的历史运行环境。
65.运行测试任务之前,需要将系统切换至mock(模拟)状态,拦截http调用。具体地,采用字节码注入,通过检测插件拦截系统对依赖方的http调用,不再调用依赖方、直接从存储介质中调用全链路数据。基于全链路数据中的历史中间依赖数据,构建目标系统的历史运行环境,以重新目标系统的版本迭代前的历史场景。
66.步骤132,利用所述历史运行环境运行所述测试任务,得到所述目标系统的测试结果数据。
67.通过回溯测试任务的历史运行环境,在目标系统的历史运行环境下,运行测试任务得到目标系统的测试结果数据。目标系统中大部分业务逻辑不会发生改变,运行测试任务时,由于输入的是相同历史输入数据。若目标系统未出现缺陷,得到的测试输出数据应与历史输出数据相同,得到的测试中间结果数据应与历史中间结果数据相同。
68.步骤140,将所述测试结果数据与所述历史中间结果数据进行对比,生成所述目标系统的检测信息。
69.运行测试任务,得到目标系统的测试结果数据之后,再次调用存储介质中全链路数据的历史中间结果数据,将测试结果数据与历史中间结果数据进行对比,生成目标系统的检测信息。在系统的版本迭代过程中,系统中大部分业务逻辑不会发生改变,系统相同的输入数据会产生相同的输出数据和中间结果数据。若运行测试任务得到测试结果数据与历史中间结果数据不匹配,则确认目标系统出现缺陷或发生故障。需要理解的是,检测信息可以是报表等形式,在此不做限定。为便于理解,本技术的实施例中,目标检测信息为检测报表。当目标系统出现缺陷或发生故障,通过检测报表查询测试结果数据与历史中间结果数
据相同的数据,及测试结果数据与历史中间结果数据不相同的数据,以快速确认目标系统出现缺陷的位置。
70.作为一个示例,所述测试结果数据包括测试输出数据和测试中间结果数据,所述将所述测试结果数据与所述历史中间结果数据进行对比,生成所述目标系统的检测信息,包括:
71.将所述历史输出数据与所述测试输出数据进行对比,并将所述历史中间结果数据与所述测试中间结果数据进行对比,生成所述目标系统的检测信息。
72.将历史输出数据与测试输出数据进行对比,并将历史中间结果数据与测试中间结果数据进行对比,生成目标系统的检测信息。目标系统中大部分业务逻辑不会发生改变,运行测试任务时,由于输入的是相同历史输入数据。若目标系统未出现缺陷,得到的测试输出数据应与历史输出数据相同,得到的测试中间结果数据应与历史中间结果数据相同。
73.若历史输出数据与测试输出数据,历史中间结果数据与测试中间结果数据均匹配,则确认目标系统未出现缺陷。若历史输出数据与测试输出数据不匹配,和/或历史中间结果数据与测试中间结果数据不匹配,则确认目标系统出现缺陷。
74.作为一个示例,所述将所述测试结果数据与所述历史中间结果数据进行对比,生成所述目标系统的检测信息,包括:
75.若所述测试结果数据与所述历史中间结果数据匹配,生成所述目标系统的第一检测信息,其中,所述第一检测信息用于提示所述目标系统不存在异常;
76.若所述测试结果数据与所述历史中间结果数据不匹配,基于测试结果数据与所述历史中间结果数据,生成所述目标系统的第二检测信息,其中,所述第二检测信息用于提示所述目标系统存在的异常数据。
77.若测试结果数据与历史中间结果数据匹配,则确认目标系统未出现缺陷,生成目标系统的第一检测信息,提示目标系统可正常的加载和运行。若测试结果数据与历史中间结果数据不匹配,则确认目标系统出现缺陷。查询测试结果数据与历史中间结果数据中存在不同的异常数据,生成包括异常数据的第二检测信息,通过解析异常数据,确定目标系统出现缺陷的原因及目标系统中缺陷的位置。
78.在一个可选的示例中,所述若所述测试结果数据与所述历史中间结果数据不匹配,基于测试结果数据与所述历史中间结果数据,生成所述目标系统的第二检测信息之后,还包括:
79.基于所述测试结果数据,更新所述目标系统的测试任务。
80.需要理解的是,目标系统出现缺陷和目标系统的业务逻辑变动产生的结果差异,都会导致测试结果数据与历史中间结果数据不匹配。生成目标系统的第二检测信息之后,基于测试结果数据与历史中间结果数据中存在不同的异常数据,确定是否为目标系统出现缺陷。若为目标系统出现缺陷,基于中间结果数据快速定位缺陷出现的链路位置,并开发修复目标系统出现的缺陷。若目标系统未出现缺陷,则确认由于业务逻辑变动导致了测试结果数据与历史中间结果数据不匹配。通过得到测试结果数据覆盖全链路数据中的历史中间结果数据和历史输出数据,产生新的测试案例,更新目标系统的测试任务。
81.本技术提供了一种系统检测方法,所述方法包括:基于每次调用目标系统时生成的记录数据,得到所述目标系统的全链路数据,其中,所述全链路数据包括所述目标系统的
历史输入数据、历史输出数据、历史地址数据及历史中间结果数据;根据所述历史输入数据、所述历史输出数据及所述历史地址数据,得到所述目标系统的测试任务;运行所述测试任务,得到所述目标系统的测试结果数据;将所述测试结果数据与所述历史中间结果数据进行对比,生成所述目标系统的检测信息。通过运行得到的测试任务,能够全场景的快速确认目标系统是否出现缺陷。同时,能够快速的确定目标系统出现缺陷的位置,提高了目标系统的检测效率。
82.实施例2
83.请参阅图4,图4示出了本发明实施例提供的系统检测装置的结构示意图。图4中系统检测装置200包括:
84.全链路数据得到模块210,用于基于每次调用目标系统时生成的记录数据,得到所述目标系统的全链路数据,其中,所述全链路数据包括所述目标系统的历史输入数据、历史输出数据及历史地址数据;
85.测试任务得到模块220,用于根据所述历史输入数据、所述历史输出数据及所述历史地址数据,得到所述目标系统的测试任务;
86.测试任务运行模块230,用于运行所述测试任务,得到所述目标系统的测试结果数据;
87.检测信息生成模块240,用于将所述测试结果数据与所述历史中间结果数据进行对比,生成所述目标系统的检测信息。
88.作为一个示例,所述测试任务得到模块220,还用于将所述历史输入数据作为测试案例的报文,将所述历史输出数据作为所述测试案例的验证项,并将所述历史地址数据作为所述测试案例的调用地址,生成所述目标系统的测试案例;
89.根据预设数量的测试案例,得到所述目标系统的测试任务。
90.作为一个示例,所述全链路数据还包括所述目标系统的历史中间依赖数据,所述测试任务运行模块230,包括:
91.运行环境构建子模块,用于基于所述历史中间依赖数据,构建所述目标系统的历史运行环境;
92.任务运行子模块,用于利用所述历史运行环境运行所述测试任务,得到所述目标系统的测试结果数据。
93.作为一个示例,所述测试结果数据包括测试输出数据和测试中间结果数据,所述检测信息生成模块240,还用于将所述历史输出数据与所述测试输出数据进行对比,并将所述历史中间结果数据与所述测试中间结果数据进行对比,生成所述目标系统的检测信息。
94.作为一个示例,所述全链路数据得到模块210,包括:
95.标识信息子模块,用于获取每次调用目标系统时生成的记录数据,并生成所述记录数据的标识信息;
96.全链路数据子模块,用于基于所述标识信息串联所述记录数据,得到所述目标系统的全链路数据。
97.作为一个示例,所述检测信息生成模块240,包括:
98.第一检测信息子模块,用于若所述测试结果数据与所述历史中间结果数据匹配,生成所述目标系统的第一检测信息,其中,所述第一检测信息用于提示所述目标系统不存
在异常;
99.第二检测信息子模块,用于若所述测试结果数据与所述历史中间结果数据不匹配,基于测试结果数据与所述历史中间结果数据,生成所述目标系统的第二检测信息,其中,所述第二检测信息用于提示所述目标系统存在的异常数据。
100.作为一个示例,系统检测装置200,还包括:
101.测试任务更新模块,用于基于所述测试结果数据,更新所述目标系统的测试任务。
102.系统检测装置200用于执行上述的系统检测方法中的对应步骤,各个功能的具体实施,在此不再一一描述。此外,实施例1中可选示例也同样适用于实施例2的系统检测装置200。
103.本技术实施例还提供一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器执行时,实现如实施例1所述的系统检测方法。
104.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如实施例1所述的系统检测方法。
105.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
106.另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
107.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
108.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1