掌桥专利:专业的专利平台
掌桥专利
首页

一种异步交易的压测方法及装置、电子设备、存储介质

文献发布时间:2023-06-19 18:29:06


一种异步交易的压测方法及装置、电子设备、存储介质

技术领域

本申请涉及数据处理技术领域,尤其涉及一种异步交易的压测方法及装置、电子设备、存储介质。

背景技术

在大中型企业中,往往会包含实时交易与异步交易,其中,实时交易会实时主动地向前端反馈处理结果,虽然异步交易也会实时向前端反馈处理成功的结果,但实际上异步处理的业务并未完成,而后续异步交易的处理结果也不会再次向前端反馈,所以如何让前端真正地获知异步交易的处理交易是目前急需解决的办法。

在现有的技术中,如果想要获知异步交易的执行状态,就需要依靠人工的方式来查询该异步交易的执行状态,以能获悉该异步交易的处理结果。

但是,由于需要依靠人工的方式,才能真正的获知异步交易的处理结果,容易导致无法及时地得知异步交易的处理结果,并且在对系统进行压测的过程中,也会导致前端无法持续地给系统发送异步交易进行压测。

发明内容

基于上述现有技术的不足,本申请提供了一种异步交易的压测方法及装置、电子设备、存储介质,以解决现有技术无法持续地给系统发送异步交易进行压测的问题。

为了实现上述目的,本申请提供了以下技术方案:

本申请第一方面提供了一种异步交易的压测方法,包括:

接收压力发送端当前发送的测试案例的异步交易;

获取所述异步交易的全局跟踪号,并将所述异步交易发送至后端组件,以通过所述后端组件对所述异步交易进行处理;

基于所述异步交易的全局跟踪号,从所述异步交易的当前状态字段中获取所述异步交易的当前处理状态;

检测所述异步交易的当前处理状态是否为完成状态;

若检测出所述异步交易的当前处理状态为完成状态,则向所述压力发送端反馈所述异步交易已完成,以触发所述压力发送端发送新的测试案例的异步交易。

可选地,在上述的异步交易的压测方法中,所述接收压力发送端当前发送的测试案例的异步交易之前,还包括:

获取服务列表中的各个所述异步交易的交易路径;

对各个所述异步交易的交易路径进行切割,得到各个所述异步交易的异步处理部分信息;

基于各个所述异步交易的所述异步处理部分信息,生成各个所述异步交易的测试案例。

可选地,在上述的异步交易的压测方法中,所述获取服务列表中的各个所述异步交易的交易路径之前,还包括:

获取目标系统中的多个服务交易;

基于过滤原则,从各个所述服务交易中筛选出各个所述异步交易;

基于各个所述异步交易,生成所述服务列表。

可选地,在上述的异步交易的压测方法中,所述基于所述异步交易的全局跟踪号,从所述异步交易的当前状态字段中获取所述异步交易的当前处理状态,包括:

根据所述异步交易的全局跟踪号,从数据库中追踪所述异步交易对应的数据库表;

从所述数据库表中查找所述异步交易的当前状态字段;

将所述当前状态字段中的数值确定为所述异步交易的当前处理状态。

可选地,在上述的异步交易的压测方法中,所述检测所述异步交易的当前处理状态是否为完成状态之后,还包括:

若检测出所述异步交易的当前处理状态不属于完成状态,则判断所述异步交易的当前处理时间是否超过交易超时阈值;

若判断出所述异步交易的当前处理时间超过所述交易超时阈值,则反馈所述异步交易的当前处理状态;

在间隔预设时间长度后,返回执行所述基于所述异步交易的全局跟踪号,从所述异步交易的当前状态字段中获取所述异步交易的当前处理状态。

本申请第二方面提供了一种异步交易的压测装置,包括:

接收单元,用于接收压力发送端当前发送的测试案例的异步交易;

第一获取单元,用于获取所述异步交易的全局跟踪号,并将所述异步交易发送至后端组件,以通过所述后端组件对所述异步交易进行处理;

第二获取单元,用于基于所述异步交易的全局跟踪号,从所述异步交易的当前状态字段中获取所述异步交易的当前处理状态;

检测单元,用于检测所述异步交易的当前处理状态是否为完成状态;

第一反馈单元,用于若检测出所述异步交易的当前处理状态为完成状态,则向所述压力发送端反馈所述异步交易已完成,以触发所述压力发送端发送新的测试案例的异步交易。

可选地,在上述的异步交易的压测装置中,还包括:

第三获取单元,用于获取服务列表中的各个所述异步交易的交易路径;

切割单元,用于对各个所述异步交易的交易路径进行切割,得到各个所述异步交易的异步处理部分信息;

第一生成单元,用于基于各个所述异步交易的所述异步处理部分信息,生成各个所述异步交易的测试案例。

可选地,在上述的异步交易的压测装置中,还包括:

第四获取单元,用于获取目标系统中的多个服务交易;

筛选单元,用于基于过滤原则,从各个所述服务交易中筛选出各个所述异步交易;

第二生成单元,用于基于各个所述异步交易,生成所述服务列表。

可选地,在上述的异步交易的压测装置中,所述第二获取单元,包括:

追踪单元,用于根据所述异步交易的全局跟踪号,从数据库中追踪所述异步交易对应的数据库表;

查找单元,用于从所述数据库表中查找所述异步交易的当前状态字段;

确定单元,用于将所述当前状态字段中的数值确定为所述异步交易的当前处理状态。

可选地,在上述的异步交易的压测装置中,还包括:

判断单元,用于若检测出所述异步交易的当前处理状态不属于完成状态,则判断所述异步交易的当前处理时间是否超过交易超时阈值;

第二反馈单元,用于若判断出所述异步交易的当前处理时间超过所述交易超时阈值,则反馈所述异步交易的当前处理状态;

执行单元,用于在间隔预设时间长度后,返回执行所述基于所述异步交易的全局跟踪号,从所述异步交易的当前状态字段中获取所述异步交易的当前处理状态。

本申请第三方面提供了一种电子设备,包括:

存储器和处理器;

其中,所述存储器用于存储程序;

所述处理器用于执行所述程序,所述程序被执行时,所述程序被执行时具体用于实现如上述任意一项所述的一种异步交易的压测方法。

本申请第四方面提供了一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,用于实现如上述任意一项所述的一种异步交易的压测方法。

本申请提供的一种异步交易的压测方法,首先接收压力发送端当前发送的测试案例的异步交易,其次获取异步交易的全局跟踪号,并将异步交易发送至后端组件,以通过后端组件对异步交易进行处理,然后基于异步交易的全局跟踪号,从异步交易的当前状态字段中获取异步交易的当前处理状态,最后检测异步交易的当前处理状态是否为完成状态,若检测出异步交易的当前处理状态为完成状态,则向压力发送端反馈异步交易已完成,以触发压力发送端发送新的测试案例的异步交易。从而不再依靠人工的方式,才能真正的获知异步交易的处理结果,而是通过自动化的方式来实现获悉异步交易的处理结果,并且还能实现持续地对异步交易进行压测的问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种异步交易的压测方法的流程图;

图2为本申请实施例提供的一种测试案例的生成方法的流程图;

图3为本申请实施例提供的一种异步交易的查找方法的流程图;

图4为本申请实施例提供的一种当前处理状态的获取方法的流程图;

图5为本申请实施例提供的另一种异步交易的压测方法的流程图;

图6为本申请另一实施例提供的一种异步交易的压测装置的结构示意图;

图7为本申请另一实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本申请实施例提供的一种异步交易的压测方法,如图1所示,具体包括以下步骤:

S101、接收压力发送端当前发送的测试案例的异步交易。

具体的,异步交易是指业务系统在发起交易后,往往的交易处理结果并不是业务运行的实际结果,实际的交易处理结果还需等待一定的时间才能获知,从而就会由于无法获取到真正的处理结果,而导致无法对系统进行持续发压,因此,在本申请实施例中针对这种情况,加入了状态探测器,当接收到压力发送端当前发送的测试案例的异步交易,对异步交易的整体处理流程进行监控,以实现实时获知异步交易的处理状态。

可选地,在本申请另一实施例中,在步骤S101之前,还需要预先获取测试案例,所以如图2所示,本申请另一实施例提供一种测试案例的生成方法包括以下步骤:

S201、获取服务列表中的各个异步交易的交易路径。

具体的,在本申请实施例中,是预先由多个异步交易构成服务列表,再从服务列表中查找各个异步交易所对应的交易路径进行后续处理,所以可选地,在本申请另一实施例中,在步骤S201之前,还包括分析各个异步交易,所以如图3所示,本申请另一实施例提供一种异步交易的查找方法,包括以下步骤:

S301、获取目标系统中的多个服务交易。

S302、基于过滤原则,从各个服务交易中筛选出各个异步交易。

需要说明的是,考虑到各个服务交易中不止含有实时交易,还有异步交易,其中,实时交易会实时返回业务实际运行结果,而异步交易无法实时获得交易结果,并且有些异步交易可能实时反馈了结果,但可能并不是真正业务处理的结果,还需要通过了解业务,才能准确的判定交易类型,所以在本申请实施例中,为了不遗漏掉任何一个异步交易,还需要进一步的基于过滤原则,从各个服务交易中筛选出各个异步交易。其中,过滤原则可以为安装类型的交易或者下载类型的交易,均可视为异步类型的交易。

S303、基于各个异步交易,生成服务列表。

具体的,可以由各个异步交易的基础信息组成服务列表。

S202、对各个异步交易的交易路径进行切割,得到各个异步交易的异步处理部分信息。

具体的,交易路径是预先由业务请求发起后,系统内部各个组件间协作的流程与顺序,以及各个组件及其有序的调用关系构成,所以需要预先对各个异步交易的交易路径进行切割,才能获知各个异步交易的整体处理流程,才能以便于后续能够清楚灵活地实时监控异步交易的整体执行情况。

S203、基于各个异步交易的异步处理部分信息,生成各个异步交易的测试案例。

其中,测试案例可以包括服务名称、交易路径、异步处理部分的状态探测方式与预期结果。

S102、获取异步交易的全局跟踪号,并将异步交易发送至后端组件,以通过后端组件对异步交易进行处理。

需要说明的是,在本申请实施例中,每笔交易都会有唯一的全局跟踪号进行标识,所以可以基于每笔交易的全局跟踪号,对每笔交易的整体业务流程进行跟踪,因此,当接收压力发送端当前发送的测试案例的异步交易时,会获取该异步交易的全局跟踪号进行跟踪并记录。

其中,后端组件可以包括状态探测器等。

S103、基于异步交易的全局跟踪号,从异步交易的当前状态字段中获取异步交易的当前处理状态。

具体的,可以采用数据库字段的判断方式来获知异步交易的处理状态,一方面,数据库字段的结果往往能够表示交易处理的真实状态,对于判定异步交易是否完成比较准确。另一方面,这种判断依据也无需增加系统额外的开发工作,使用现有库表的字段即可完成状态的探测,从而节省成本。由于一个全局跟踪号对应一个交易,并且一个交易中也含有一个状态字段,因此一个全局跟踪号对应一个状态字段,所以就可以根据预先记录的异步交易的全局跟踪号,查找该全局跟踪号所对应的当前状态字段来获取该异步交易的当前处理状态。

可选地,在本申请另一实施例中,步骤S103的另一种具体实施方式,如图4所示,包括以下步骤:

S401、根据异步交易的全局跟踪号,从数据库中追踪异步交易对应的数据库表。

具体的,考虑到数据库中存储了很多的数据库表,并且每张数据库表均代表一笔交易,因此为了能找寻每笔交易所对应的数据表,需要基于每笔交易的全局跟踪号,才能准确地查找到数据库表。

S402、从数据库表中查找异步交易的当前状态字段。

需要说明的是,由于本申请实施例是采用数据库字段来获知异步交易的处理状态,而且每个字段均存储至数据库表中,因此为了获知异步交易的处理状态,还需要进一步地基于异步交易的全局跟踪号,从数据库表中查找异步交易所对应的当前状态字段。

S403、将当前状态字段中的数值确定为异步交易的当前处理状态。

具体的,基于异步交易的当前状态字段所对应的数值,来获悉该异步交易的当前处理状态。

S104、检测异步交易的当前处理状态是否为完成状态。

具体的,状态探测器将定期探测交易的完成情况,以实现及时地与压力发送端通信,所以若检测出异步交易的当前处理状态为完成状态,则执行步骤S105。

S105、向压力发送端反馈异步交易已完成,以触发压力发送端发送新的测试案例的异步交易。

具体的,当检测出异步交易的当前处理状态为完成状态时,需要向压力发送端反馈异步交易已完成,以使压力发送端发送新的测试案例的异步交易,来实现持续发压的效果,从而可以极大地降低的测试工程师的工作量,提高测试效率。

本申请提供的一种异步交易的压测方法,首先接收压力发送端当前发送的测试案例的异步交易,其次获取异步交易的全局跟踪号,并将异步交易发送至后端组件,以通过后端组件对异步交易进行处理,然后基于异步交易的全局跟踪号,从异步交易的当前状态字段中获取异步交易的当前处理状态,最后检测异步交易的当前处理状态是否为完成状态,若检测出异步交易的当前处理状态为完成状态,则向压力发送端反馈异步交易已完成,以触发压力发送端发送新的测试案例的异步交易。从而不再依靠人工的方式,才能真正的获知异步交易的处理结果,而是通过自动化的方式来实现获悉异步交易的处理结果,并且还能实现持续地对异步交易进行压测的问题。

本申请另一实施例提供了另一种异步交易的压测方法,如图5所示,包括以下步骤:

S501、接收压力发送端当前发送的测试案例的异步交易。

需要说明的是,步骤S501的具体实施方式,可相应地参考上述方法实施例中的步骤S101,此处不再赘述。

S502、获取异步交易的全局跟踪号,并将异步交易发送至后端组件,以通过后端组件对异步交易进行处理。

需要说明的是,步骤S502的具体实施方式,可相应地参考上述方法实施例中的步骤S102,此处不再赘述。

S503、基于异步交易的全局跟踪号,从异步交易的当前状态字段中获取异步交易的当前处理状态。

需要说明的是,步骤S503的具体实施方式,可相应地参考上述方法实施例中的步骤S103,此处不再赘述。

S504、检测异步交易的当前处理状态是否为完成状态。

需要说明的是,步骤S504的具体实施方式,可相应地参考上述方法实施例中的步骤S105,此处不再赘述。

还需要说明的是,若检测出异步交易的当前处理状态为完成状态,则执行步骤S508。若检测出异步交易的当前处理状态不属于完成状态,则执行步骤S505。

S505、判断异步交易的当前处理时间是否超过交易超时阈值。

具体的,在本申请实施例中,状态探测器会根据不同的异步交易的业务特征设置交易超时阈值,倘若在交易超时阈值内,异步交易还未处理完成,则将探测的最新处理状态反馈至前端,以便前端及时地获知该异步交易的处理情况,因此需要判断异步交易的当前处理时间是否超过交易超时阈值,若判断出异步交易的当前处理时间交易超时阈值,则执行步骤S506。若判断出异步交易的当前处理时间未超过交易超时阈值,则需要定期地获取该异步交易的处理状态,并检测该处理状态是否已完成,因此执行步骤S507。

S506、反馈异步交易的当前处理状态。

S507、间隔预设时间长度。

需要说明的是,当检测出异步交易的当前处理状态不属于完成状态,以及异步交易的当前处理时间交易超时阈值时,或者检测出异步交易的当前处理状态不属于完成状态,并且异步交易的当前处理时间未超过交易超时阈值时,均需要在间隔预设时间长度后,返回执行步骤S503,直至异步交易已完成处理为止。可选地,可以采用线程的睡眠手段实现定期查询,例如对于Java开发平台,使用Thread.Sleep(time),即可造成time毫秒的定期查询效果。

S508、向压力发送端反馈异步交易已完成,以触发压力发送端发送新的测试案例的异步交易。

需要说明的是,步骤S508的具体实施方式,可相应地参考上述方法实施例中的步骤S105,此处不再赘述。

本申请另一实施例提供了一种异步交易的压测装置,如图6所示,包括:

接收单元601,用于接收压力发送端当前发送的测试案例的异步交易。

第一获取单元602,用于获取异步交易的全局跟踪号,并将异步交易发送至后端组件,以通过后端组件对异步交易进行处理。

第二获取单元603,用于基于异步交易的全局跟踪号,从异步交易的当前状态字段中获取异步交易的当前处理状态。

检测单元604,用于检测异步交易的当前处理状态是否为完成状态。

第一反馈单元605,用于若检测出异步交易的当前处理状态为完成状态,则向压力发送端反馈异步交易已完成,以触发压力发送端发送新的测试案例的异步交易。

需要说明的是,本申请实施例中的上述单元的具体工作过程可相应地参考上述方法实施例中的步骤S101~步骤S105,此处不再赘述。

可选地,本申请另一实施例提供的一种异步交易的压测装置中,还包括:

第三获取单元,用于获取服务列表中的各个异步交易的交易路径。

切割单元,用于对各个异步交易的交易路径进行切割,得到各个异步交易的异步处理部分信息。

第一生成单元,用于基于各个异步交易的异步处理部分信息,生成各个异步交易的测试案例。

需要说明的是,本申请上述实施例提供的各个单元的具体工作过程可相应地参考上述方法实施例中的相应的步骤,此处不再赘述。

可选地,本申请另一实施例提供的一种异步交易的压测装置中,还包括:

第四获取单元,用于获取目标系统中的多个服务交易。

筛选单元,用于基于过滤原则,从各个服务交易中筛选出各个异步交易。

第二生成单元,用于基于各个异步交易,生成服务列表。

需要说明的是,本申请上述实施例提供的各个单元的具体工作过程可相应地参考上述方法实施例中的相应的步骤,此处不再赘述。

可选地,本申请另一实施例提供的一种异步交易的压测装置中,第二获取单元,包括:

追踪单元,用于根据异步交易的全局跟踪号,从数据库中追踪异步交易对应的数据库表。

查找单元,用于从数据库表中查找异步交易的当前状态字段。

确定单元,用于将当前状态字段中的数值确定为异步交易的当前处理状态。

需要说明的是,本申请上述实施例提供的各个单元的具体工作过程可相应地参考上述方法实施例中的相应的步骤,此处不再赘述。

可选地,本申请另一实施例提供的一种异步交易的压测装置中,还包括:

判断单元,用于若检测出异步交易的当前处理状态不属于完成状态,则判断异步交易的当前处理时间是否超过交易超时阈值。

第二反馈单元,用于若判断出异步交易的当前处理时间超过交易超时阈值,则反馈异步交易的当前处理状态。

执行单元,用于在间隔预设时间长度后,返回执行基于异步交易的全局跟踪号,从异步交易的当前状态字段中获取异步交易的当前处理状态。

需要说明的是,本申请上述实施例提供的各个单元的具体工作过程可相应地参考上述方法实施例中的相应的步骤,此处不再赘述。

本申请另一实施例提供了一种电子设备,如图7所示,包括:

存储器701和处理器702。

其中,存储器701用于存储程序。

处理器702用于执行程序,程序被执行时,具体用于实现如上述任意一个实施例提供的一种异步交易的压测方法。

本申请另一实施例提供了一种计算机存储介质,用于存储计算机程序,计算机程序被执行时,用于实现如上述任意一个实施例提供的一种异步交易的压测方法。

计算机存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术分类

06120115586577