压测管理方法、系统、设备、介质及计算机程序产品与流程

文档序号:26402991发布日期:2021-08-24 16:16阅读:114来源:国知局
压测管理方法、系统、设备、介质及计算机程序产品与流程

本发明涉及金融科技(fintech)技术领域,尤其涉及压测管理方法、系统、设备、计算机存储介质及计算机程序产品。



背景技术:

随着计算机技术的发展,越来越多的技术(大数据、分布式、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性、通用性要求,也对压力测试技术提出了更高的要求。

压力测试(简称压测),是指在生产环境下,模拟生产流量请求生成压测流量请求,并将这些压测流量请求不断施加给业务系统,以确定业务系统的流量承载能力。

但在对生产环境进行压测时,业务系统响应压测流量请求得到的压测响应数据往往与真实业务数据混在一起,压测响应数据与真实业务数据的耦合度较高,导致对真实业务数据造成数据污染。



技术实现要素:

本发明的主要目的在于提出一种压测管理方法、系统、设备、计算机存储介质及计算机程序产品,旨在隔离压测数据与真实业务数据,降低压测数据与真实业务数据的耦合度。

为实现上述目的,本发明提供一种压测管理方法,所述压测管理方法包括如下步骤:

接收对第一应用系统的服务请求,确定所述服务请求的请求类型,所述服务请求的请求类型包括压测服务请求或非压测服务请求;

通过所述第一应用系统对所述服务请求进行响应得到响应数据;

若所述服务请求的请求类型为非压测服务请求,则将所述第一应用系统对所述非压测服务请求的第一响应数据路由至非压测服务数据存储区;

若所述服务请求的请求类型为压测服务请求,则将所述第一应用系统对所述压测服务请求的第二响应数据路由至压测服务数据存储区,所述压测服务数据存储区为所述非压测服务数据存储区的影子存储。

可选地,所述确定所述服务请求的请求类型的步骤包括:

确定所述服务请求中是否包括预设染色标记;

若所述服务请求中包括预设染色标记,则所述服务请求的请求类型为压测服务请求;

若所述服务请求中不包括预设染色标记,则所述服务请求的请求类型为非压测服务请求。

可选地,所述若所述服务请求的请求类型为压测服务请求,则将所述第一应用系统对所述压测服务请求的第二响应数据路由至压测服务数据存储区的步骤之后,还包括:

在检测到所述第一应用系统基于所述压测服务请求发起的对第二应用系统的调用请求时,将所述预设染色标记添加至所述调用请求中,以将所述预设染色标记透传至第二应用系统,供所述第二应用系统响应所述调用请求,并将所述第二应用系统对所述调用请求的第三响应数据路由至所述第二应用系统对应的压测服务数据存储区。

可选地,所述将所述预设染色标记添加至所述调用请求中,以将所述预设染色标记透传至第二应用系统的步骤之后,还包括:

在检测到压测完成后,对所述第一应用系统和所述第二应用系统对应的压测服务数据存储区中的响应数据进行分析,确定所述第一应用系统和/或第二应用系统是否需要扩容;

若是,则对需要扩容的应用系统进行扩容,并在扩容完成后再次进行压测和分析,直至确定所述第一应用系统和第二应用系统都不需要扩容。

可选地,所述压测管理方法,还包括:

在检测到压测完成信号且接收到压测数据删除指令时,删除所述压测服务数据存储区中的响应数据。

可选地,所述通过所述第一应用系统对所述服务请求进行响应得到响应数据的步骤之前,还包括:

创建非压测服务数据存储区,并按照所述非压测服务数据存储区的数据存储结构,同步创建压测服务数据存储区。

此外,为实现上述目的,本发明还提供一种压测管理系统,所述压测管理系统包括:

请求接收模块,用于接收对第一应用系统的服务请求,确定所述服务请求的请求类型,所述服务请求的请求类型包括压测服务请求或非压测服务请求;

请求响应模块,用于通过所述第一应用系统对所述服务请求进行响应得到响应数据;

非压测数据路由模块,用于若所述服务请求的请求类型为非压测服务请求,则将所述第一应用系统对所述非压测服务请求的第一响应数据路由至非压测服务数据存储区;

压测数据路由模块,用于若所述服务请求的请求类型为压测服务请求,则将所述第一应用系统对所述压测服务请求的第二响应数据路由至压测服务数据存储区,所述压测服务数据存储区为所述非压测服务数据存储区的影子存储。

此外,为实现上述目的,本发明还提供一种压测管理设备,所述压测管理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的压测管理程序,所述压测管理程序被所述处理器执行时实现如上所述的压测管理方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有压测管理程序,所述压测管理程序被处理器执行时实现如上所述的压测管理方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机程序产品,所述计算机程序产品包括压测管理程序,所述压测管理程序被处理器执行时实现如上所述的压测管理方法的步骤。

本发明通过接收对第一应用系统的服务请求,确定所述服务请求的请求类型,所述服务请求的请求类型包括压测服务请求或非压测服务请求;通过所述第一应用系统对所述服务请求进行响应得到响应数据;若服务请求的请求类型为非压测服务请求,则将第一应用系统对非压测服务请求的第一响应数据路由至非压测服务数据存储区;若服务请求的请求类型为压测服务请求,则将第一应用系统对压测服务请求的第二响应数据路由至压测服务数据存储区,压测服务数据存储区为非压测服务数据存储区的影子存储。通过根据服务请求的请求类型设置对应的存储区域,能够实现将压测数据与非压测数据例如真实业务数据隔离,从而在利用真实系统环境进行压测的前提下,避免压测数据对其他类型数据的污染;进一步地,由于本发明无需专门为压测搭建与生产环境相似的压测环境,因此节约了压测的成本。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的压测管理设备结构示意图;

图2为本发明压测管理方法第一实施例的流程示意图;

图3为本发明压测管理系统的系统模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的压测管理设备结构示意图。

本发明实施例压测管理设备可以是pc机或服务器设备,其上运行有虚拟机。

如图1所示,该压测管理设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的压测管理设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及压测管理程序。

在图1所示的压测管理设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的压测管理程序,并执行下述压测管理方法中的操作。

基于上述硬件结构,提出本发明压测管理方法实施例。

参照图2,图2为本发明压测管理方法第一实施例的流程示意图,所述方法包括:

步骤s10,接收对第一应用系统的服务请求,确定所述服务请求的请求类型,所述服务请求的请求类型包括压测服务请求或非压测服务请求;

本实施例压测管理方法运用于压测管理设备中,压测管理设备可以是终端、机器人或者pc设备。

现有技术中,在对生产环境进行压测时,业务系统响应压测流量请求得到的压测响应数据往往与真实业务数据混在一起,导致压测响应数据与真实业务数据的耦合度较高,进而对真实业务数据造成数据污染。

在此背景下,本实施例提供了一套压测方案,能够在接收到对应用系统的服务请求时,确定服务请求的请求类型,该服务请求的请求类型至少包括压测服务请求或非压测服务请求,再将应用系统对不同类型的服务请求进行响应后产生的响应数据路由至与服务请求的请求类型对应的存储区域。通过根据服务请求的请求类型设置对应的存储区域,能够实现将压测数据与其他类型数据例如真实业务数据隔离,从而在利用真实系统环境进行压测的前提下,避免压测数据对其他类型数据的污染。

在本实施例中,请求类型至少分为压测服务请求和非压测服务请求两种,其中,压测服务请求指的是在测试应用系统的流量承载能力时,模拟真实用户的流量请求而仿造出来的模拟流量请求,压测服务请求可以是由压测工具发起的;非压测服务请求则指的是除压测服务请求以外的其他类型的服务请求,例如可以是由真实用户发起的真实流量请求。可以理解的是,根据实际需要,非压测服务请求还可以细化分为更多种,本实施例不做具体限制。当然,若非压测服务请求进一步细化分为两种及以上时,可为每种细化后的非压测服务请求划分对应存储区域,并在第一应用系统对该类型的服务请求的响应数据路由至对应的存储区域,以提升非压测数据的管理效率。

在一实施方式中,上述步骤s10中,所述确定所述服务请求的请求类型的步骤包括:

步骤s11,确定所述服务请求中是否包括预设染色标记;

步骤s12,若所述服务请求中包括预设染色标记,则所述服务请求的请求类型为压测服务请求;

步骤s13,若所述服务请求中不包括预设染色标记,则所述服务请求的请求类型为非压测服务请求。

在该实施方式中,压测管理在接收到对第一应用系统的服务请求时,会确定该服务请求中是否包括预设染色标记,若是,则确定该服务请求的请求类型为压测服务请求;若服务请求中不包括预设染色标记,此时,有两种可能的情况,一种是该服务请求中不包括任何染色标记,还有一种是该服务请求中包括染色标记,但其包括的染色标记与预设染色标记不同,这两种情况都可以认为服务请求中不包括预设染色标记,则确定该服务请求的请求类型为非压测服务请求。

其中,该预设染色标记可以是由压测工具在触发压测服务请求时,由压测工具将该预设染色标记添加至该压测服务请求中的,还可以是由其他的打标工具对来自压测工具的压测服务请求进行拦截并打标的,本实施方式中不做具体限制。

在一实施方式中,由于现有技术中,由压测工具触发的原始压测服务请求或真实用户触发的原始非压测服务请求中是没有添加染色标记的,压测管理设备无法辨别服务请求的类型,但若直接对压测工具或真实用户终端触发服务请求的方式进行改进,使之在原始服务请求中添加染色标记,所涉及的改动量之大、成本之高将是难以想象的,因此,为了尽量减少对现有压测方案的改动,本实施方式对应用系统的网关层进行了改进。

在上述步骤s10之前,网关在检测到对应用系统的原始服务请求时,会对原始服务请求进行拦截,根据原始服务请求的来源确定为原始服务请求添加的染色标记类型,若原始服务请求的来源为压测工具,则为该原始服务请求添加预设染色标记,得到带有预设染色标记的服务请求,然后将该服务请求放行,使其到达应用系统;若原始服务请求的来源为真实用户终端,则可以为该原始服务请求添加不同于前述预设染色标记的其他染色标记,以与来自压测工具的服务请求进行区分,当然,还可以不为该原始服务请求添加任何染色标记,直接将来自真实用户终端的服务请求放行,使其到达应用系统。

步骤s20,通过所述第一应用系统对所述服务请求进行响应得到响应数据;

步骤s30,若所述服务请求的请求类型为非压测服务请求,则将所述第一应用系统对所述非压测服务请求的第一响应数据路由至非压测服务数据存储区;

步骤s40,若所述服务请求的请求类型为压测服务请求,则将所述第一应用系统对所述压测服务请求的第二响应数据路由至压测服务数据存储区,所述压测服务数据存储区为所述非压测服务数据存储区的影子存储。

在本实施例中,为应用系统对不同类型的服务请求的响应数据设置了不同的存储区域,在应用系统对服务请求执行响应操作,并产生响应数据之后,将响应数据路由至与该服务请求的请求类型对应的存储区域,即,将响应数据存储至与该服务请求的请求类型对应的存储区域,以将不同类型的服务请求的响应数据隔离,避免压测数据对其他类型数据的污染。

需要说明的是,在上述步骤s20之前,还需要为不同类型的服务请求创建对应的数据存储区,该数据存储区包括非压测服务数据存储区和压测服务数据存储区,压测服务数据存储区按照与非压测服务数据存储区的数据存储结构创建,故二者的数据存储结构一致,也即,压测服务数据存储区为非压测服务数据存储区的影子存储。而且,非压测服务数据存储区和压测服务数据存储区是同步创建的。例如,若创建的非压测服务数据存储区(存储区域的类型为数据库)标记为td_set1,那么对应的压测服务数据存储区可以为td_shadow_set1;若创建的非压测服务数据存储区(存储区域的类型为缓存)标记为ca_name1,那么对应的压测服务数据存储区为ca_shadow_name1。

进一步地,若非压测服务数据存储区的数据存储结构发生变化,该数据存储结构变化需同步至压测服务数据存储区。

可以理解的是,存储区域的类型包括但不限于数据库、缓存中的一种或多种。

本实施例通过在接收到对应用系统的服务请求时,确定服务请求的请求类型,该服务请求的请求类型至少包括压测服务请求,再将应用系统对不同类型的服务请求进行响应后产生的响应数据路由至与服务请求的请求类型对应的存储区域。通过根据服务请求的请求类型设置对应的存储区域,能够实现将压测数据与其他类型数据例如真实业务数据隔离,从而在利用真实系统环境进行压测的前提下,避免压测数据对其他类型数据的污染;进一步地,由于本实施例无需专门为压测搭建与生产环境相似的压测环境,因此节约了压测的成本。

进一步地,基于上述实施例,提出本发明压测管理方法第二实施例。上述步骤s30之后,还包括:

步骤a,在检测到所述第一应用系统基于所述压测服务请求发起的对第二应用系统的调用请求时,将所述预设染色标记添加至所述调用请求中,以将所述预设染色标记透传至第二应用系统,供所述第二应用系统响应所述调用请求,并将所述第二应用系统对所述调用请求的第三响应数据路由至所述第二应用系统对应的压测服务数据存储区。

第一应用系统在针对服务请求执行相应的响应操作时,可能不需要调用其他应用系统即可独立完成对该服务请求的全部响应操作,也有可能需要调用其他应用系统才能与其他应用系统共同完成对该服务请求的全部响应操作,由于其他应用系统在被第一应用系统调用时也会产生相应的响应数据,因此,在本实施例中,针对其他应用系统的响应数据,也需要将其路由至该系统对应的存储区域,否则,也会产生数据污染。

具体地,若服务请求的请求类型为压测服务请求,且检测到第一应用系统由于要响应压测服务请求,发起的对第二应用系统的调用请求时,将该压测服务请求中的预设染色标记注入到该调用请求中,从而使第二应用系统在接收到该调用请求后,根据调用请求中的预设染色标记确定调用请求类型,进而根据调用请求类型将第二应用系统对该调用请求的响应数据路由至对应的存储区。

可以理解的是,若服务请求的请求类型为非压测服务请求,在检测到第一应用系统由于要响应非压测服务请求,发起的对第二应用系统的调用请求时,

进一步地,上述步骤a之后,还包括:

步骤b1,在检测到压测完成后,对所述第一应用系统和所述第二应用系统对应的压测服务数据存储区中的响应数据进行分析,确定所述第一应用系统和/或第二应用系统是否需要扩容;

步骤b2,若是,则对需要扩容的应用系统进行扩容,并在扩容完成后再次进行压测和分析,直至确定所述第一应用系统和第二应用系统都不需要扩容。

现有技术中为了隔离压测数据与真实业务数据,常常会建立一套与生产环境相对应的测试环境,在测试环境下,模拟生产流量请求生成压测流量请求,并将这些压测流量请求不断施加给测试环境中的业务系统,根据测试环境中的压测数据确定业务系统的流量承载能力,此时,测试环境与生产环境是隔离的,对应压测数据与真实业务数据也是存储在对应环境的系统中的,因此,压测数据与真实业务数据不存在互相干扰的情况。但是,考虑到成本的问题,测试环境的配置往往要比生产环境低,若生产环境中某一业务链全流程涉及两个或以上应用系统时,一个测试环境往往仅对应部署了一个应用系统,导致得到的压测结果无法准确反映真实生产环境多应用系统互相调用时的流量承载能力,若基于该压测结果对生成环境中的应用系统进行扩容调整,会导致应用系统的流量承载能力与生产流量不匹配,应用系统的流量承载能力过大,会浪费服务器的资源,系统的流量承载能力过小则容易因为大流量导致系统宕机。

针对上述缺陷,本实施例在前述实施例提出的在利用真实系统环境进行压测的前提下,若涉及两个应用系统及以上的联动,则压测管理设备会在检测到压测完成之后,对联动的应用系统对应的压测服务数据存储区中的响应数据进行分析,确定每个联动的应用系统是否需要扩容,若某个或某几个应用系统需要进行扩容,则对这些应用系统按照需求(例如按照业务链的需求并发量)进行扩容,并在扩容完成后再次对应用系统进行压测、分析,确定是否还存在需要扩容的应用系统,若存在,则继续对需要进行扩容的系统进行扩容,直至满足需求。

如此,能够实现利用真实系统环境对业务链中联动的应用系统进行压测,并根据压测结果进行定向扩容,从而能够提升扩容后的应用系统的流量承载能力与生产流量的匹配度,提升了扩容的准确度。

当然,对于业务链仅涉及1个应用系统,没有与之联动调用的应用系统的情况,也可参照本实施例进行压测分析和扩容。

进一步地,上述步骤s22之后,还包括:

步骤c,在检测到压测完成信号且接收到压测数据删除指令时,删除所述压测服务数据存储区中的响应数据。

在本实施例中,为避免海量的压测流量所产生的响应数据长时间占用大量的存储资源,影响应用系统的真实业务运行,在检测到压测完成信号,且在接收到压测数据删除指令时,压测管理设备会将压测服务请求产生并存储在压测服务数据存储区中的响应数据删除,以避免其在压测完成后继续占用存储资源。

本发明还提供一种压测管理系统,参照图3,所述压测管理系统包括:

请求接收模块10,用于接收对第一应用系统的服务请求,确定所述服务请求的请求类型,所述服务请求的请求类型包括压测服务请求或非压测服务请求;

请求响应模块20,用于通过所述第一应用系统对所述服务请求进行响应得到响应数据;

非压测数据路由模块30,用于若所述服务请求的请求类型为非压测服务请求,则将所述第一应用系统对所述非压测服务请求的第一响应数据路由至非压测服务数据存储区;

压测数据路由模块40,用于若所述服务请求的请求类型为压测服务请求,则将所述第一应用系统对所述压测服务请求的第二响应数据路由至压测服务数据存储区,所述压测服务数据存储区为所述非压测服务数据存储区的影子存储。

可选地,所述请求接收模块,还用于:

确定所述服务请求中是否包括预设染色标记;

若所述服务请求中包括预设染色标记,则所述服务请求的请求类型为压测服务请求;

若所述服务请求中不包括预设染色标记,则所述服务请求的请求类型为非压测服务请求。

可选地,所述压测管理系统,还包括:

调用染色模块,用于在检测到所述第一应用系统基于所述压测服务请求发起的对第二应用系统的调用请求时,将所述预设染色标记添加至所述调用请求中,以将所述预设染色标记透传至第二应用系统,供所述第二应用系统响应所述调用请求,并将所述第二应用系统对所述调用请求的第三响应数据路由至所述第二应用系统对应的压测服务数据存储区。

可选地,所述压测管理系统,还包括:

扩容分析模块,用于在检测到压测完成后,对所述第一应用系统和所述第二应用系统对应的压测服务数据存储区中的响应数据进行分析,确定所述第一应用系统和/或第二应用系统是否需要扩容;

扩容复核模块,用于若是,则对需要扩容的应用系统进行扩容,并在扩容完成后再次进行压测和分析,直至确定所述第一应用系统和第二应用系统都不需要扩容。

可选地,所述压测管理系统,还包括:

压测数据删除模块,用于在检测到压测完成信号且接收到压测数据删除指令时,删除所述压测服务数据存储区中的响应数据。

可选地,所述压测管理系统,还包括:

存储区创建模块,用于创建非压测服务数据存储区,并按照所述非压测服务数据存储区的数据存储结构,同步创建压测服务数据存储区。

上述各程序单元所执行的方法可参照本发明压测管理方法各个实施例,此处不再赘述。

本发明还提供一种压测管理设备,压测管理设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的压测管理程序,压测管理程序被处理器执行时所实现的方法可参照本发明压测管理方法各个实施例,此处不再赘述。

本发明还提供一种计算机存储介质。

本发明计算机存储介质上存储有压测管理程序,所述压测管理程序被处理器执行时实现如上所述的压测管理方法的步骤。

其中,在所述处理器上运行的压测管理程序被执行时所实现的方法可参照本发明压测管理方法各个实施例,此处不再赘述。

本发明还提供一种计算机程序产品。

本发明计算机程序产品包括压测管理程序,所述压测管理程序被处理器执行时实现如上所述的压测管理方法的步骤。

其中,在所述处理器上运行的压测管理程序被执行时所实现的方法可参照本发明压测管理方法各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1