一种基于函数计算的Mock数据方法及装置与流程

文档序号:26050312发布日期:2021-07-27 15:25阅读:179来源:国知局
一种基于函数计算的Mock数据方法及装置与流程

本发明涉及应用系统开发测试技术领域,尤指一种基于函数计算的mock数据方法及装置。



背景技术:

由于大部分业务系统都有多个业务子系统构成,日常开发测试过程中,经常会出现当前子系统需要跟上下游进行联动调试的情况。目前,现有技术主要有两种做法:

1、等上下游开发完毕,再对当前子系统进行开发与调试。

2、在联动代码处先写死一个返回值进行开发,待上下游开发完成后,再将该部分的代码进行修改替换。

上述第1种做法会导致项目开发中依赖加大,影响交付速度。第2种做法虽然能在一定程度上解决依赖的问题,但是返回内容由于是硬编码不够灵活,需要根据需要不停对联动部分的代码进行修改,且最后上下游都开发完成之后,需要返工重新修改联动部分的代码。

此外,在业务系统全链路压测过程中,也会存在类似的问题。全链路压测是对一个完整的业务系统进行压力测试,需要业务系统中的各个子节点均能提供高可用高性能的服务。若系统中的任何一个子节点没有准备好,则整个全链路压测就无法进行。

因此,亟需一种可以克服上述缺陷,能够简化开发过程中的依赖管理,快速高效的完成全链路压测的技术方案。



技术实现要素:

为解决现有技术存在的问题,本发明提出了一种基于函数计算的mock数据方法及装置。本发明可以实现简单快速的mock数据准备,以减少开发联调过程中的上下游依赖的问题;同时,在全链路压测过程中也能根据需要临时替换其中的子业务节点,减少节点准备的等待时间。

在本发明实施例的第一方面,提出了一种基于函数计算的mock数据方法,该方法包括:

获取用户编写的mock代码片段,根据所述mock代码片段对函数计算平台进行分装;

通过函数计算平台编写函数代码,为所述函数代码创建触发器并部署mock函数;

获取空余的服务器资源,部署函数运行节点,将所述mock函数下发至函数运行节点;

利用函数运行节点的mock函数进行上下游的mock联调。

进一步的,获取用户编写的mock代码片段,根据所述mock代码片段对函数计算平台进行分装,包括:

定义函数名称;

定义http地址,用于处理接收mock请求;

编写mock代码,用于执行业务处理逻辑。

进一步的,为所述函数代码创建的触发器为http地址。

进一步的,该方法还包括:

在获取空余的服务器资源,部署函数运行节点时,当调用量增加自动扩展函数运行节点的数量,当调用量降低自动清理闲置的函数运行节点。

进一步的,利用函数运行节点的mock函数进行上下游的mock联调,包括:

当需要模拟当前应用系统调用下游依赖应用时,利用函数运行节点的mock函数,将当前应用系统的下游地址配置成函数http地址进行数据mock;

当需要模拟上游依赖应用调用当前应用系统时,利用函数运行节点的mock函数创建当前应用系统的上游mock服务,来调用当前应用系统。在本发明实施例的第二方面,提出了一种基于函数计算的mock数据装置,该装置包括:

数据mock平台,用于获取用户编写的mock代码片段,根据所述mock代码片段对函数计算平台进行分装;

函数计算平台,用于通过函数计算平台编写函数代码,为所述函数代码创建触发器并部署mock函数;

函数运行节点部署模块,用于获取空余的服务器资源,部署函数运行节点,将所述mock函数下发至函数运行节点;

mock联调模块,用于利用函数运行节点的mock函数进行上下游的mock联调。

进一步的,所述数据mock平台根据所述mock代码片段对函数计算平台进行分装,包括:

定义函数名称;

定义http地址,用于处理接收mock请求;

编写mock代码,用于执行业务处理逻辑。

进一步的,为所述函数代码创建的触发器为http地址。

进一步的,所述函数运行节点部署模块还用于:

在获取空余的服务器资源,部署函数运行节点时,当调用量增加自动扩展函数运行节点的数量,当调用量降低自动清理闲置的函数运行节点。

进一步的,mock联调模块具体用于:

当需要模拟当前应用系统调用下游依赖应用时,利用函数运行节点的mock函数,将当前应用系统的下游地址配置成函数http地址进行数据mock;

当需要模拟上游依赖应用调用当前应用系统时,利用函数运行节点的mock函数创建当前应用系统的上游mock服务,来调用当前应用系统。

在本发明实施例的第三方面,提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现基于函数计算的mock数据方法。

在本发明实施例的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现基于函数计算的mock数据方法。

本发明提出的基于函数计算的mock数据方法及装置利用函数开发简单的特点,仅需在测试环境中编写代码片段,并将代码片段在平台上部署后即可提供mock的业务服务;在开发联调过程中,将上下游依赖配置成函数服务地址,极大简化了开发过程中的依赖处理;并且,在上下游应用系统正式上线之后,仅需在配置文件中直接修改参数即可替换成正式环境。由于本发明所采用的的函数计算平台本身是一个高可用、高性能的系统,可以及时面对要求较高的全链路压测,也能较好地提供mock服务,较好地解决全链路压测过程中个别业务节点不能用的问题。

附图说明

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

图1是本发明一实施例的基于函数计算的mock数据方法流程示意图。

图2是本发明一实施例的上下游的mock联调的流程示意图。

图3是本发明一实施例的基于函数计算的mock数据装置架构示意图。

图4是本发明一具体实施例的基于函数计算的mock数据系统的关系示意图。

图5是本发明一具体实施例的mock代码片段的截图。

图6是本发明一实施例的计算机设备结构示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种基于函数计算的mock数据方法及装置,可以用于应用系统开发测试技术领域。本发明可以实现简单、快速的mock数据准备方案,来减少开发联调过程中的上下依赖问题。同时,在全链路压测过程中也能临时替换其中几个子业务节点,减少节点准备的等待时间。

在本发明实施例中,需要说明的术语有:

mock:根据定义的接口,来模拟实现接口所需要的返回,相当于伪造请求数据。mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为。比如,当需要调用b服务,可是b服务还没有开发完成,那么就可以将调用b服务的那部分给mock掉,并编写想要的返回结果。

函数计算:一种以单个功能为维度的云计算服务,开发较为简单,写一个简单的带输入输出的代码片段,就可以直接部署到函数计算平台上,对外提供服务。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

图1是本发明一实施例的基于函数计算的mock数据方法流程示意图。如图1所示,该方法包括:

步骤s1,获取用户编写的mock代码片段,根据所述mock代码片段对函数计算平台进行分装;

步骤s2,通过函数计算平台编写函数代码,为所述函数代码创建触发器并部署mock函数;

步骤s3,获取空余的服务器资源,部署函数运行节点,将所述mock函数下发至函数运行节点;

步骤s4,利用函数运行节点的mock函数进行上下游的mock联调。

其中,参考图2,为本发明一实施例的上下游的mock联调的流程示意图。如图2所示,具体流程为:

步骤s41,当需要模拟当前应用系统调用下游依赖应用时,利用函数运行节点的mock函数,将当前应用系统的下游地址配置成函数http地址进行数据mock;

步骤s42,当需要模拟上游依赖应用调用当前应用系统时,利用函数运行节点的mock函数创建当前应用系统的上游mock服务,来调用当前应用系统。

在本实施例中,步骤s1包括:

定义函数名称;

定义http地址,用于处理接收mock请求;

编写mock代码,用于执行业务处理逻辑。

在步骤s2中,为所述函数代码创建的触发器为http地址。

在步骤s3获取空余的服务器资源,部署函数运行节点时,当调用量增加自动扩展函数运行节点的数量,当调用量降低自动清理闲置的函数运行节点。

本发明提出的基于函数计算的mock数据方法在实际应用中,由于函数的开发较为简单,在测试环境中,只需编写一个代码片段即可,这个代码片段在平台上部署后,即可提供mock的业务服务,开发联调过程中,只需将上下游依赖,配置成函数服务地址即可,极大简化了开发过程中的依赖处理。待上下游系统正式上线之后,仅需在配置文件中,直接修改参数即可替换成正式环境。

由于函数计算平台本身就是一个高可用、高性能的系统,及时面对要求较高的全链路压测,也能较好地提供mock服务,较好地解决全链路压测过程中个别业务节点不能用的问题。

需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

在介绍了本发明示例性实施方式的方法之后,接下来,参考图3对本发明示例性实施方式的基于函数计算的mock数据装置进行介绍。

基于函数计算的mock数据装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”或者“单元”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

基于同一发明构思,本发明还提出了一种基于函数计算的mock数据装置,如图3所示,该装置包括:

数据mock平台310,用于获取用户编写的mock代码片段,根据所述mock代码片段对函数计算平台进行分装;

函数计算平台320,用于通过函数计算平台编写函数代码,为所述函数代码创建触发器并部署mock函数;

函数运行节点部署模块330,用于获取空余的服务器资源,部署函数运行节点,将所述mock函数下发至函数运行节点;

mock联调模块340,用于利用函数运行节点的mock函数进行上下游的mock联调。

在一实施例中,所述数据mock平台310根据所述mock代码片段对函数计算平台进行分装,包括:

定义函数名称;

定义http地址,用于处理接收mock请求;

编写mock代码,用于执行业务处理逻辑。

在一实施例中,为所述函数代码创建的触发器为http地址。

在一实施例中,所述函数运行节点部署模块330还用于:

在获取空余的服务器资源,部署函数运行节点时,当调用量增加自动扩展函数运行节点的数量,当调用量降低自动清理闲置的函数运行节点。

在一实施例中,mock联调模块340具体用于:

当需要模拟当前应用系统调用下游依赖应用时,利用函数运行节点的mock函数,将当前应用系统的下游地址配置成函数http地址进行数据mock;

当需要模拟上游依赖应用调用当前应用系统时,利用函数运行节点的mock函数创建当前应用系统的上游mock服务,来调用当前应用系统。

应当注意,尽管在上文详细描述中提及了基于函数计算的mock数据装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。

为了对上述基于函数计算的mock数据方法进行更为清楚的解释,下面结合一个具体的实施例来进行详细说明。

图4是本发明一具体实施例的基于函数计算的mock数据系统的关系示意图。

如图4所示,搭建mock系统,该系统由数据mock平台、函数计算平台、函数运行节点在内的模块组成。

数据mock平台:用于用户编写并录入mock的代码片段,对函数计算平台进行分装。

1、定义一个函数名称。

2、定义一个http地址用于处理接收mock请求。

3、编写mock代码,实现业务处理逻辑。

通常由于mock节点只是临时使用,因此只需要实现一个基本的逻辑即可,例如,图5示例性展示了一个mock代码片段,该片段能在函数计算平台上直接提供服务。handler内的context可以接收到联调参数,然后对联调参数进行处理后,可以通过return命令进行返回mock结果,在这里mock函数中可以实现简单的逻辑,也可以增加数据库等复杂操作,也可以调用其他下游应用功能。

函数计算平台:提供具体的函数技术实现,包括通过浏览器方式编写函数代码、为该函数代码创建触发器(http网址)、部署该逻辑函数。

函数运行节点:负责编写的mock函数的自动实际运行工作。

其中,包括获取空余的服务器资源,部署实际的函数运行节点,提供外部的http请求响应,并随着调用量的增加可以自动扩展mock节点的数量,不被调用的时候,可以自动清理mock节点,节省服务器资源。

通过上述三部分可以实现mock服务;其中,如果当前应用系统的下游服务无法提供服务,可以在mock平台上快速创建一个服务,并将当前应用系统的下游地址配置成函数http地址,从而实现快速的数据mock方案。

同样的,若上游未开发完成,也可以编写上游mock服务,来调用当前的业务功能。

基于上述过程,可以实现上下游的完全mock联调。

在本发明实施例中,函数计算是由事件驱动的全托管计算服务。由于函数计算的出现,编写一个功能越来越容易。通常,几行业务代码就能快速生成一个函数服务。其具有以下有点:1、降低开发成本:通过函数计算,用户无需管理服务器等基础设施,只需编写业务代码片段,专注实现也无需求;2、自动扩展能力:函数计算平台会为用户准备好计算资源,通过细粒度的资源分配,以弹性、可靠的方式运行代码,按需服务,动态扩容;3、降低运营成本:函数计算平台可以提供日志查询、性能监控、异常报警等运维功能;4、管理简单化:函数计算的函数代码与包含函数sdk的镜像解耦,实现sdk版本动态升级。

基于前述发明构思,如图6所示,本发明还提出了一种计算机设备600,包括存储器610、处理器620及存储在存储器610上并可在处理器620上运行的计算机程序630,所述处理器620执行所述计算机程序630时实现前述基于函数计算的mock数据方法。

基于前述发明构思,本发明提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述基于函数计算的mock数据方法。

本发明提出的基于函数计算的mock数据方法及装置利用函数开发简单的特点,仅需在测试环境中编写代码片段,并将代码片段在平台上部署后即可提供mock的业务服务;在开发联调过程中,将上下游依赖配置成函数服务地址,极大简化了开发过程中的依赖处理;并且,在上下游应用系统正式上线之后,仅需在配置文件中直接修改参数即可替换成正式环境。由于本发明所采用的的函数计算平台本身是一个高可用、高性能的系统,可以及时面对要求较高的全链路压测,也能较好地提供mock服务,较好地解决全链路压测过程中个别业务节点不能用的问题。

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

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

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

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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