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

一种mock微服务性能的智能方法及系统

文献发布时间:2023-06-19 19:30:30


一种mock微服务性能的智能方法及系统

技术领域

本发明涉及计算机软件技术领域,尤其涉及一种mock微服务性能的智能方法及系统。

背景技术

进行单交易场景性能测试时,mock下游系统交易性能一般采用如下方式:1、kubernetes和docker技术可使mock平台可自动水平扩展,从而能够mock下游系统交易高并发下的性能;2、将新增mock微服务配置规则存储到数据库中,上游系统调用mock服务时可根据数据库中配置规则返回响应报文;3、微服务网关可以监控交易流量(并发数)。

但是单交易场景性能测试时mock微服务性能存在以下痛点:1、不能准确mock下游系统交易在不同并发下的性能(响应时间)。2、mock微服务配置规则中的响应报文都是固定的,而性能测试需要大量不同的测试数据,响应报文根据请求报文变化而变化。

发明内容

为解决现有技术的不足,本发明提出一种mock微服务性能的智能方法及系统,通过将mock微服务的性能趋势以配置形式存入数据库中,根据网关监听的交易流量自动取不同并发下的响应时间,并通过计算去掉网络损耗,使mock交易的响应时间更准确,同时在mock响应报文规则中字段值配置不同函数名,mock平台解析规则时调用预置的函数,从而得到动态的响应报文。

为实现以上目的,本发明所采用的技术方案包括:

一种mock微服务性能的智能方法,包括:

构建mock平台,设置mock规则;

获取被测交易名称和性能数据;

所述性能数据包括并发数n、每秒事务处理量tps和响应时间t;

所述响应时间t=网络耗时+并发下程序耗时+休眠时间;

监控并发数n,通过t=f(n)获取响应时间t,将所述响应时间t更新至mock规则中;

设定网络耗时和并发下程序耗时,所述mock平台通过调整休眠时间模拟交易响应时间并通过调用预设函数动态返回响应报文。

进一步地,所述mock平台使用springboot实现,提供mock服务的新增、修改、查询和删除接口。

进一步地,所述mock平台的预设函数包括时间戳函数、生成随机数函数、生成随机字符串函数。

进一步地,所述mock规则包括请求报文、响应报文、并发数n和响应时间t,所述mock规则定时缓存至本地。

本发明还涉及一种mock微服务性能的智能系统,包括:

设置模块,用于构建mock平台,设置mock规则;

获取模块,用于获取被测交易名称和性能数据;

监控模块,用于监控并发数n,通过t=f(n)获取响应时间t,将所述响应时间t更新至mock规则中;

处理模块,用于设定网络耗时和并发下程序耗时,所述mock平台通过调整休眠时间模拟交易响应时间并通过调用预设函数动态返回响应报文;

存储模块,用于存储mock规则、被测交易名称和性能数据。

本发明还涉及一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。

本发明还涉及一种电子设备,包括处理器和存储器;

所述存储器,用于存储存储mock规则、被测交易名称和性能数据;

所述处理器,用于执行存储器中存储的计算机程序,执行上述的方法。

本发明的有益效果为:

通过将mock微服务的性能趋势以配置形式存入数据库中,根据网关监听的交易流量自动取不同并发下的响应时间,并通过计算去掉网络损耗,使mock交易的响应时间更准确,同时在mock响应报文规则中字段值配置不同函数名,mock平台解析规则时调用预置的函数,从而得到动态的响应报文。本发明减少了手工配置mock服务的工作,自动mock不同并发下微服务性能,大大提升性能测试工作效率,同时能够mock动态的响应报文,使性能测试更接近真实场景。

附图说明

图1为本发明一种mock微服务性能的智能方法流程示意图。

图2为本发明一种mock微服务性能的智能系统结构示意图。

具体实施方式

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

本发明第一方面涉及一种步骤流程如图1所示的一种mock微服务性能的智能方法,包括:

构建mock平台,设置mock规则;

具体而言,在申请的实施例中,mock平台提供mock服务的新增、修改、查询和删除接口,mock平台使用spring boot实现,并统一通过网关调用mock平台的接口,包括mock服务,http协议可以通过RequestContext解析到apiName,socket协议可以通过字符串定位获取到请求报文中的apiName。

获取被测交易名称和性能数据;

所述性能数据包括并发数n、每秒事务处理量tps和响应时间t;

具体而言,在申请的实施例中,mock交易名称为api001,其性能数据如下表:

api001_config默认并发数为1,响应时间为20ms。

所述响应时间t=网络耗时+并发下程序耗时+休眠时间;

监控并发数n,通过t=f(n)获取响应时间t,将所述响应时间t更新至mock规则中;

具体而言,在本申请实施例中,当微服务网关监控到交易并发数变为50时,响应时间f(50)=35ms,并将其同步到api001_config的mock规则中;

设定网络耗时和并发下程序耗时,所述mock平台通过调整休眠时间模拟交易响应时间并通过调用预设函数动态返回响应报文。

具体而言,在本申请实施例中,网络耗时为发送请求报文到pod和从pod接收到响应报文两段时间之和,设定为2ms;每个pod获取到api001交易的请求开始,到组装完成响应报文结束这段时间为程序耗时,例如在50并发下为13ms;程序休眠时间=35ms-2ms-13ms=20ms,mock平台通过自动调整休眠时间即可动态模拟交易响应时间。

当用不同并发n调用mock服务时,每个pod只需要模拟该服务的t=f(n)值即可,t=网络耗时+程序耗时+休眠时间,其中网络耗时在同一环境下比较稳定,可以配置一个固定的值,mock程序只模拟响应报文,其耗时远小于带业务逻辑的交易耗时,故只需要调整休眠时间即可达到动态模拟响应时间的效果。

每个pod提供的mock服务性能是有限的,通过kubernetes的资源监控系统(metrics-server)获取集群中资源的使用状态,根据cpu、内存及自定义资源指标数据的使用量或连接数对pod进行水平自动伸缩。

mock平台中内置常用函数,如时间戳函数__Time(pattern)、生成随机数函数__random(min,max)、生成随机字符串函数__randomString(length,chars)等。mock规则主要包括请求报文、响应报文、当前并发数和响应时间等,当响应报文依赖请求报文中内容时,对请求报文内容进行变量标记,当调用mock服务时,将请求报文中标记位置的值存入不同变量中,如apiName_A、apiName_B。

响应报文中需要动态变化值的位置使用函数名进行配置,包括能够处理请求报文中内容的函数,如f(apiName_A)是对标记位置A的值处理后在响应报文中使用。

mock平台模拟响应报文时,先获取规则中函数名,然后调用对应的内置函数,并将动态返回值填充到响应报文中。

本发明另一方面还涉及一种mock微服务性能的智能系统,其结构如图2所示,包括:

设置模块,用于构建mock平台,设置mock规则;

获取模块,用于获取被测交易名称和性能数据;

监控模块,用于监控并发数n,通过t=f(n)获取响应时间t,将所述响应时间t更新至mock规则中;

处理模块,用于设定网络耗时和并发下程序耗时,所述mock平台通过调整休眠时间模拟交易响应时间并通过调用预设函数动态返回响应报文;

存储模块,用于存储mock规则、被测交易名称和性能数据。

通过使用该系统,能够执行上述的运算处理方法并实现对应的技术效果。

本发明的实施例还提供能够实现上述实施例中的一种mock微服务性能的智能方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的一种mock微服务性能的智能方法的全部步骤。

本发明的实施例还提供一种用于执行上述方法的电子设备,作为该方法的实现装置,所述电子设备至少具备有处理器和存储器,特别是该存储器上存储有执行方法所需的数据和相关的计算机程序,例如mock规则、被测交易名称和性能数据等,并通过由处理器调用存储器中的数据、程序执行实现方法的全部步骤,并获得对应的技术效果。

优选的,该电子设备可以包含有总线架构,总线可以包括任意数量的互联的总线和桥,总线将包括由一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和接收器和发送器之间提供接口。接收器和发送器可以是同一个元件,即收发机,提供用于在传输介质上与各种其他系统通信的单元。处理器负责管理总线和通常的处理,而存储器可以被用于存储处理器在执行操作时所使用的数据。

额外的,所述电子设备还可以进一步包括通信模块、输入单元、音频处理器、显示器、电源等部件。其所采用的处理器(或称为控制器、操作控件)可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器接收输入并控制电子设备的各个部件的操作;存储器可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种,可储存上述有关的数据信息,此外还可存储执行有关信息的程序,并且处理器可执行该存储器存储的该程序,以实现信息存储或处理等;输入单元用于向处理器提供输入,例如可以为按键或触摸输入装置;电源用于向电子设备提供电力;显示器用于进行图像和文字等显示对象的显示,例如可为LCD显示器。通信模块即为经由天线发送和接收信号的发送机/接收机。通信模块(发送机/接收机)耦合到处理器,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)还经由音频处理器耦合到扬声器和麦克风,以经由扬声器提供音频输出,并接收来自麦克风的音频输入,从而实现通常的电信功能。音频处理器可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器还耦合到中央处理器,从而使得可以通过麦克风能够在本机上录音,且使得可以通过扬声器来播放本机上存储的声音。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

以上所述仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换等都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

相关技术
  • 一种用户行为的微服务智能管理方法
  • 一种性能感知的大规模微服务智能多资源协同调度方法及系统
  • 一种微服务链路跟踪及性能分析方法、系统、设备及应用
技术分类

06120115935352