一种调用方法及装置与流程

文档序号:19737613发布日期:2020-01-18 04:43阅读:218来源:国知局
一种调用方法及装置与流程

本申请涉及信息技术领域,特别是涉及一种调用方法及装置。



背景技术:

随着世界经济全球化的不断发展,越来越多的公司和科研机构的研发团队分布在全球各个地方,研发团队在开发软件时通常要搭建研发测试环境,目的是开发和测试分布式应用,通过建立一个兼容的分布式计算机环境,开发分布式应用。

在先技术中,全球各个地方的研发团队使用一套研发环境,各种业务下的应用只布设一套。那么对于某个业务,当存在多个团队在开发时,在测试时需要将各个团队开发的各个应用的应用代码进行区分,然后进行测试。比如一个业务有a、b、c、d四个应用组成调用链路,其依赖关系为a依赖b、b依赖c、c依赖d,该依赖关系也可以理解为调用关系,在实际运行过程中a调用b,b调用c,c调用d。假设团队a对应用a更新了一个功能1,团队b对应用a更新了一个功能2,那么要将功能1的代码和功能2的代码进行合并,得到更新后的应用a,然后再根据a、b、c、d组成的调用链路,进行对应用的依次调用,实现对调用链路中应用的测试。

但是,发明人在研究过程中发现,上述方案中,当在业务的测试过程中出现问题,需要协调各地的与该业务相关的团队进行处理,而由于各个团队分布在全球各地,很难协调,并且从一个研发环境中找出是哪个团队开发的代码出现问题,也要耗费大量精力,效率低。



技术实现要素:

鉴于上述问题,本申请实施例提供一种调用方法,通过对待测试的功能模块设置业务标识、用户标识及隔离标识的对应关系,在进行业务测试时,测试流量可以通过确定对应的目标隔离标识,按照调用链路依次调用包含有目标隔离标识的功能模块,实现测试业务之间的隔离,研发团队在进行业务测试时,只用专注于自己的测试业务,避免不同研发团队之间工作相冲突,解决现有技术中各个团队分布在全球各地,很难协调一个研发环境中各个团队的测试任务的问题。

相应的,本申请实施例还提供了一种调用装置,用以保证上述方法的实现及应用。

为了解决上述问题,本申请实施例公开了一种调用方法,包括:

提供至少一组测试功能模块;所述测试功能模块关联有业务标识、用户标识、及隔离标识;

接收测试请求;所述测试请求包括目标业务标识和目标用户标识;

根据所述目标业务标识和目标用户标识确定目标隔离标识;

根据所述目标业务标识获取调用链路;

根据所述调用链路对所述目标隔离标识对应的目标测试功能模块进行调用。

相应的,本申请实施例还公开了一种调用装置,包括:

第一提供模块,用于提供至少一组测试功能模块;所述测试功能模块关联有业务标识、用户标识、及隔离标识;

接收模块,用于接收测试请求;所述测试请求包括目标业务标识和目标用户标识;

确定模块,用于根据所述目标业务标识和目标用户标识确定目标隔离标识;

获取模块,用于根据所述目标业务标识获取调用链路;

调用模块,用于根据所述调用链路对所述目标隔离标识对应的目标测试功能模块进行调用。

相应的,本申请实施例还公开了一种装置,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行一种调用方法。

相应的,本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行一种调用方法。

本申请实施例包括以下优点:

本申请实施例包括:提供至少一组测试功能模块;测试功能模块关联有业务标识、用户标识、及隔离标识;接收测试请求;测试请求包括目标业务标识和目标用户标识;根据目标业务标识和目标用户标识确定目标隔离标识;根据目标业务标识获取调用链路;根据调用链路对目标隔离标识对应的目标测试功能模块进行调用,本申请通过对待测试的功能模块设置业务标识、用户标识及隔离标识的对应关系,在进行业务测试时,对于一测试流量,系统可以通过确定对应的目标隔离标识,按照调用链路依次调用包含有目标隔离标识的功能模块,实现测试业务之间的隔离,研发团队在进行业务测试时,只用专注于自己的测试业务,避免不同研发团队之间工作相冲突,方便各个研发团队自己管理自己开发的功能模块,使各个研发团队在其测试业务出现问题时,可以独立、快速的对自己开发的应用进行查验;并且,由于进行了逻辑隔离,环境搭建成本低,可移植性强,能够支持不断扩张的全球各地的业务团队对研发环境的需求。

附图说明

图1是本申请一实施例提供的一种调用方法的系统架构图;

图2是本申请一实施例提供的另一种调用方法的系统架构图;

图3是本申请一实施例提供的一种调用方法的步骤流程图;

图4是本申请一实施例提供的应用于一种调用方法的系统结构图;

图5是本申请一实施例提供的一种调用方法的具体步骤流程图;

图6是本申请一实施例提供的一种调用装置的结构图;

图7是本申请一实施例提供的一种调用装置的具体结构图;

图8是本申请另一实施例提供的一种装置的结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1,其示出了本申请实施例的一种系统架构,其可以包括:

测试环境、基础环境和生产环境。各个环境之间是相互逻辑隔离的。其中,测试环境和基础环境是基于软件开发者建立的,图1中,测试环境和基础环境可以架构在测试服务器中,另外,测试环境和基础环境也可以以服务器集群的形式进行实现,测试环境和基础环境之间通过预发布中间件进行资源的共享,其中预发布中间件可以设置在中间件服务器中。环境是指软件研发过程中的运维概念,测试环境和基础环境可以运行在正式生产机房里,连接正式数据库的机器,但是可以不设置在正式的线上负载均衡集群内,也就是说这两种环境,可以进行线上环境的测试,但是不影响正式环境中用户的访问。

其中,测试环境和基础环境可以共用一套预发布中间件。在本申请实施例中,环境可以指软件开发环境(softwaredevelopmentenvironment,sde),其是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称sde。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。测试环境提供给各个研发团队测试该团队开发的测试功能模块,测试功能模块可以安装与所述测试环境中,以前述测试服务器为例,测试服务器可以基于测试环境接收测试客户端发送的测试流量,可以对对应的测试业务进行测试等。不同的测试业务之间通过不同的业务标识进行区分,例如,进行网页展示的业务采用业务标识:1、进行视频播放的业务采用业务标识:2、在网站中对某个商品进行下单的下单业务采用业务标识:3、对某个订单进行支付的支付业务采用业务标识:4,等等。在本申请实施例中可以由测试服务器将各个团队为测试业务开发的测试功能模块打上唯一的隔离标识,从而在后续的预发中间件调用时,可以针对同一隔离标识的测试功能模块进行调用,在图1中,预发布测试环境具有三组相互隔离的测试业务,其中分别包括业务标识分别为1、2、3的测试业务。

需要说明的是,功能模块是实现基本功能的程序,功能模块实现的功能可以较为单一,其自身可以实现某一特定的业务逻辑,使得功能模块在整个系统中可以作为一个微粒,在实现较为复杂的业务功能时,可以通过功能模块的组合实现,进一步的,通过将指向业务功能的业务请求与功能模块的执行条件匹配得出执行链路,实现通过功能模块的组合进行业务处理。具体的,例如,展示网站首页的业务功能,可以包括展示标题的功能模块,展示图片标识的功能模块,在网站中对商品对象进行下单的功能模块,对某个订单进行支付的支付功能模块等。上述程序可以运行在用户模式,可以具有与用户进行交互的可视的用户界面,也可以是无交互页面的系统服务。

基础环境,主要用于软件正式上线前的预发测试。本申请实施例中的预发中间件可以针对由第三方平台发出的预发流量,对预发布的测试业务进行测试,在图1中,具有一组与测试环境隔离的基础环境,其中包括基础功能模块。

上述生产环境是面向用户建立的,是业务在测试完成后,正式上线需要部署的环境,其主要用于处理用户流量,图1中的生产流量可以理解为大众用户的用户端发出的用户浏览。该生产环境可以理解为功能模块通过在基础环境中测试后,可以上线部署的环境,在生产环境中的部署的功能模块可以理解为的正式线上版本。

具体的,为了在全球化业务下,方便不同时区的研发团队在测试环境进行业务测试的工作,对于各个团队对某个测试业务各自开发的一组测试功能模块,比如测试时侧服务器调用的测试功能模块相互之间耦合,本申请在实施例在测试环境中为不同的测试业务包括的测试功能模块进行了逻辑隔离,每个测试业务包括至少一组带有隔离标识的测试功能模块,其中同一团队针对一个测试业务开发的一组测试功能模块的隔离标识一致。

其中,逻辑隔离可以通过逻辑隔离器实现,逻辑隔离器是一种不同网络间的隔离部件,被隔离的测试业务之间仍然存在物理上数据通道连线,但通过技术手段保证被隔离的测试业务之间没有数据通道,即逻辑上隔离。针对一组测试业务,逻辑隔离的具体实现可以是对该组测试业务中的所有测试功能模块关联有业务标识、用户标识、及隔离标识,然后利用预发布中间件对打上隔离标识的测试功能模块进行调用,使得通过隔离标识来隔离不同的测试业务,达到逻辑上的隔离。其中,中间件是一种独立的系统软件或服务程序,在集群中的分布式应用借助中间件在不同的系统之间共享资源,中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。

如图1,测试服务器中同时设置了测试环境和基础环境,测试环境和基础环境共用一套预发布中间件,该预发布中间件相对于正式的生产环境的生产中间件独立部署,保证对测试环境和基础环境中的功能模块的调用不会调用到生产环境的功能模块,在本申请实施例中,测试环境的测试业务的处理可以依靠预发布中间件来实现,例如,预发布中间件可以包括:hsf(high-speedserviceframework)\notify\metaq这几个组件,这几个组件都是为了实现远程调用,hsf是实时调用的远程过程调用协议(rpc,remoteprocedurecall)中间件,notify\metaq是消息类异步调用的rpc中间件,测试业务的功能模块之间都是通过这些中间件进行相互通信的。

例如,在图1中,测试环境提供了三组测试功能模块,其对应的测试业务的业务标识分别都为1,可以理解为三个团队分别为测试业务1分别在进行开发,那么三组测试功能模块分别对应有隔离标识m1、隔离标识m2和隔离标识m3,在对于每组测试功能模块的功能模块标识打上隔离标识以及业务标识,使得研发团队在进行业务测试时,其调用的测试功能模块仅限于本团队的测试业务的隔离标识对应的测试功能模块,而不会调用到其他团队测试的业务中的测试功能模块,研发团队的测试流量也只会在本团队的测试业务的隔离标识对应的测试功能模块中流通,达到了测试业务之间逻辑隔离,使得每个研发团队能够专注于自己的测试业务进行软件开发,提高了研发效率。

需要说明的是,在实际应用中,在图1的服务器中,还可以有多组基础功能模块,也还可以有与其他业务对应的一组或者多组测试功能模块,每种业务的每组测试功能模块的业务标识一致,隔离标识唯一。同一个业务的不同组的功能模块的功能模块标识一致,业务标识一致,隔离标识不同。

当然,在实际应用中,可以按照划分多个区域,在多个区域设置测试服务器,每个测试服务器设置置一套或者多套测试环境。当然,基础环境也可以在每个区域设置一套或者多套,也可以所有区域共享一套基础环境。

可以理解,研发团队在需要测试时,可以如图4通过测试客户端向分配服务器发送一个第一设置请求,申请对某一业务标识关联的所有的测试功能模块打上具有全局唯一性的隔离标识。在实际应用中,第一设置请求包括该业务标识关联的所有的测试功能模块,分配服务器根据该请求,将接收到的该业务标识关联的所有的测试功能模块部署至测试环境中,并对测试功能模块添加对应的隔离标识,并对某一业务标识关联的所有的测试功能模块打上具有唯一性的隔离标识,完成测试业务的部署和隔离。

需要说明的是,在实际应用中,根据不同研发团队负责业务的不同,其测试的业务中包含的测试功能模块可能不同,当然,不同研发团队测试的业务中包含的测试功能模块也可能相同,并且,由于测试环境相较于正式生产环境还具有业务上需求的多变性,因此,测试环境中测试业务包括的测试功能模块与生产环境中生产业务包括的功能模块也可能不相同,本申请对此不作限定。

进一步的,一个测试业务中,通常预设有调用链路,即一个测试业务中各个功能模块之间的存在调用关系,在进行业务测试时,可以按照调用链路的顺序进行测试功能模块的调用,例如,当打开网购应用访问购物车测试功能模块a的页面渲染的时候,需要查购物车里的产品数量,则进一步需要调用产品测试功能模块b,产品测试功能模块b需要调用会员测试功能模块c等等,每个业务都需要跟上下游几百个应用进行相互调用,该调用链路比如:功能模块标识a-功能模块标识b-功能模块标识c-功能模块标识d。需要说明的是,在测试环境中,必须要有具有隔离标识的测试功能模块a,测试功能模块a起到测试业务入口的目的。

参照图1,对本申请提供的一种调用方法的实现过程进行详细说明,例如,在网购应用中的一件商品的页面展示的测试业务的业务标识为1,某个开发团队2设置了一组测试功能模块,该测试功能模块包括了测试功能模块a、测试功能模块b、测试功能模块c、测试功能模块d四个测试功能模块,这四个应用分别打上了隔离标识m2和业务标识,则存储时可以记录为:测试功能模块a-m2、测试功能模块b-m2、测试功能模块c-m2、测试功能模块d-m2,隔离标识m2还与业务标识1研发团队2的测试客户端的用户标识2及关联,通过业务标识1以及研发团队2的用户标识2可以唯一确定隔离标识。需要说明的是,在本申请实施例中对于一个业务,一个测试客户端的用户标识只绑定一次,防止逻辑耦合,如果该研发团队要同时对一个业务,测试多组测试功能模块,则每组测试功能模块可以用不同的测试客户端的用户id关联。

可以理解,上述测试功能模块a-m2处理该商品的整体页面框架展示,测试功能模块b-m2处理该商品的图片相关展示,测试功能模块c-m2处理该商品的文字描述相关展示,测试功能模块d-m2处理该商品的相关链接展示,则根据预设业务逻辑,针对业务标识1预设了功能模块a-功能模块b-功能模块c-功能模块d的调用链路,标识该测试业务的开展顺序是先展示该商品的整体页面框架,之后展示该商品的图片,之后该展示商品的文字描述,最后展示该商品的相关链接。那么假设研发团队2通过测试客户端发送了包括用户标识2的测试流量,因此,当测试服务器的预发布中间件接收到该研发团队发送的针对测试业务1的该测试请求时,预发布中间件可以根据测试请求中的用户标识2以及业务标识1确定隔离标识,用业务标识确定调用链路“功能模块标识a-功能模块标识b-功能模块标识c-功能模块标识d”,那么后续则先调用包括隔离标识m2的测试功能模块a-m2,之后根据隔离标识m2,调用同样具有隔离标识m2的目标测试功能模块b-m2,之后调用具有隔离标识m2的目标测试功能模块c-m2,最后调用具有隔离标识m2的目标测试功能模块d-m2,以实现对商品的页面展示的测试,并且达到了各组测试功能模块之间的逻辑隔离,避免调用到其他组功能模块。

另外,又假使接收到测试客户端1的针对业务1的测试请求,则根据用户标识1和业务标识1确定隔离标识m1,还根据业务标识确定调用链路a-b-c-d,然后调用隔离标识为m1的测试功能模块a-m1,以及b-m1,由于没有隔离标识m41的测试功能模块c-m1,则调用基础功能模块c,然后调用隔离标识为m1的测试功能模块d-m1。达到了各组测试功能模块之间的逻辑隔离,避免调用到其他组功能模块。

而对于线上正式用户端发送的生产流量,即正式用户端对网站发送的正式请求,则由正式服务器接收该请求,按照相应的业务标识对应的调用链路对其中的功能模块进行调用,具体的线上调用过程本申请实施例不对其加以限制。

进一步的,本申请实施例提供的一种调用方法还可以在服务器集群的环境中进行实现,具体参照图2,其示出了本申请实施例的另一种系统架构,其中,可以将每个功能模块分别部署在对应的节点服务器中,每组测试功能模块关联有不同隔离标识,每个隔离标识与用户标识以及业务标识关联,使得所有节点服务器组合形成服务器集群,当形成服务器集群时,因为服务器集群包括了多个节点服务器,因此可以通过测试管理服务器接收测试流量,并按照调用链路,通过测试管理服务器中架设的预发布中间件对对应节点服务器包括的测试功能模块进行依次调用,实现业务的测试,针对生产环境,也可以将各个功能模块部署在对应的节点服务器中,并由生产管理服务器接收测试流量,并按照负载均衡规则,通过生产管理服务器中架设的生产中间件对对应节点服务器包括的功能模块进行依次调用。

如图2中,针对业务标识2的业务,其调用链路为功能模块e-f-g-h。图2中选择了一系列节点服务器设置为预发布基础环境,在这些节点服务器中分别设置了基础功能模块e、f、g、h。也有3个研发团队分别针对该业务标识2的业务提供了一组测试功能模块。第一个研发团队提供了测试功能模块e、f、h,则选择设置为预发布测试环境的节点服务器部署上述测试功能模块,在存储时,该节点服务器以隔离标识m4打上标记,则为测试功能模块e-m4、测试功能模块f-m4、测试功能模块h-m4。第二个研发团队提供了测试功能模块e、f、g、h,则选择设置为预发布测试环境的节点服务器部署上述测试功能模块,在存储时,该节点服务器以隔离标识m5打上标记,则为测试功能模块e-m5、测试功能模块f-m5、测试功能模块g-m5、测试功能模块h-m5。第二个研发团队提供了测试功能模块e、h,则选择设置为预发布测试环境的节点服务器部署上述测试功能模块,在存储时,该节点服务器以隔离标识m6打上标记,则为测试功能模块e-m6、测试功能模块h-m6。

还有设置为生产环境的节点服务器,其中部署了多套正式上线版本的功能模块e、f、g、h。同理在服务器集群中,还可以有其他业务的基础功能模块的节点服务器,其他业务的测试功能模块的节点服务器和其他业务的线上正式版本的功能模块的节点服务器,本申请实施例不对其加以限制。

然后对于测试管理服务器,假使接收到测试客户端4的针对业务2的测试请求,则根据用户标识4和业务标识2确定隔离标识m4,还根据业务标识确定调用链路e-f-g-h,然后调用隔离标识为m4的测试功能模块e-m4,以及f-m4,由于没有隔离标识m4的测试功能模块f-m4,则调用基础功能模块f,然后调用隔离标识为m4的测试功能模块h-m4。

而对于线上正式用户端发送的生产流量,即正式用户端对网站发送的正式请求,则由生产管理器接收该请求,然后按照相应的业务标识对应的调用链路对集群中为生产环境的各个节点服务器中的功能模块进行调用,具体的线上调用过程本申请实施例不对其加以限制。

因此,本申请可以提供至少一组测试功能模块;测试功能模块关联有业务标识、用户标识、及隔离标识;接收测试请求;测试请求包括目标业务标识和目标用户标识;根据目标业务标识和目标用户标识确定目标隔离标识;根据目标业务标识获取调用链路;根据调用链路对目标隔离标识对应的目标测试功能模块进行调用,本申请通过对待测试的功能模块设置业务标识、用户标识及隔离标识的对应关系,在进行业务测试时,测试流量可以通过确定对应的目标隔离标识,按照调用链路依次调用包含有目标隔离标识的功能模块,实现测试业务之间的隔离,研发团队在进行业务测试时,只用专注于自己的测试业务,避免不同研发团队之间工作相冲突,方便各个研发团队自己管理自己开发的应用,使各个研发团队在其测试业务出现问题时,可以独立、快速的对自己开发的应用进行查验;并且,由于进行了逻辑隔离,环境搭建成本低,可移植性强,能够支持不断扩张的全球各地的业务团队对研发环境的需求。

参照图3,示出了本申请提供的一种调用方法的步骤流程图,具体可以包括如下步骤:

步骤101,提供至少一组测试功能模块;所述测试功能模块关联有业务标识、用户标识、及隔离标识。

在本申请实施例中,功能模块是实现基本功能的程序,功能模块实现的功能可以较为单一,其自身可以实现某一特定的业务逻辑,使得功能模块在整个系统中可以作为一个微粒,在实现较为复杂的业务功能时,可以通过功能模块的组合实现,进一步的,通过将指向业务功能的业务请求与功能模块的执行条件匹配得出执行链路,实现通过功能模块的组合进行业务处理。具体的,例如,展示网站首页的业务功能,可以包括展示标题的功能模块,展示图片标识的功能模块等。

参照图4,示出了本申请提供的应用于一种调用方法的系统结构图,其中,可以由分配服务器来完成提供至少一组测试功能模块的操作,测试服务器是独立于正式生产服务器的一种测试服务器,主要面向研发人员,用于软件研发测试,为了满足处于不同时区的多个研发团队的研发需求,研发团队可以通过测试客户端发送包括同一业务标识对应的至少一组测试功能模块的第二设置请求至分配服务器,分配服务器可以根据第二设置请求,生成包括相同的测试功能模块的第一设置请求并将第一设置请求发送至某个测试服务器,以供测试服务器将第一设置请求中的至少一组测试功能模块进行部署,并根据测试功能模块的隔离标识,完成不同测试业务之间的隔离,使得研发团队可以根据自己的需求,通过测试服务器对完成隔离的测试功能模块进行测试,解决了现有技术中多个研发团队共用一个测试业务的问题,也避免了多个测试业务同时进行时产生的应用调用冲突的情况,提高了测试环境的稳定性。

需要说明的是,如果有多个测试服务器,其架构可以都如测试服务器1的架构。

需要说明的是,分配服务器将测试功能模块在测试服务器中时,通常可以选择与研发团队的物理距离最近的测试服务器进行部署,以达到降低研发团队与测试服务器的通信延迟的目的,另外,也可以由研发团队自行选择需要使用的测试服务器,例如,分配服务器提供给测试客户端一个选择列表,选择列表里具有各个部署在不同国家的测试服务器,研发团队根据自己的需求,在选择列表中选取一个测试服务器并告知分配服务器,分配服务器则可以根据所选择的测试服务器进行部署。

需要说明的是,如果是服务器集群,其每个功能模块可以存到单独的节点服务器中。而节点服务器可以按区域划分,比如按国家划分,在各个区域中设置一组节点服务器,对于一个选择该区域的设置请求,则可以将相应的一组测试功能模块都按上述逻辑部署于该区域的节点服务器中。

步骤102,接收测试请求;所述测试请求包括目标业务标识和目标用户标识。

在该步骤中,当完成测试环境中的测试功能模块的部署和隔离后,分配服务器可以将完成部署的测试服务器的互联协议地址(ip,internetprotocol)打包在hosts文件中发送给测试客户端,测试客户端解析该hosts文件获得测试服务器的ip地址并进行绑定,使得测试客户端可以通过该ip地址发送针对测试服务器的测试请求,以进行后续测试操作。

具体的,测试请求包括目标业务标识和目标用户标识,目标业务标识可以是测试客户端申请测试的业务对应的业务标识,例如,用户想针对网购应用中的页面展示功能进行测试,则可以将对应页面展示功能的目标业务标识添加进测试请求进行发送,目标用户标识是发生该测试请求的设备的标识信息,如设备的ip地址、设备相关信息等。

步骤103,根据所述目标业务标识和目标用户标识确定目标隔离标识。

在该步骤中,由于如前述逻辑,在部署时将用户标识与业务标识与隔离标识关联,那么当测试服务器接收到测试请求时,可以将目标业务标识和目标用户标识与测试功能模块关联的业务标识、用户标识、及隔离标识进行匹配,以确定对应的目标隔离标识,确定目标隔离标识后,则可以进一步确定带有目标隔离标识的目标测试功能模块,并在获取到调用链路后进行测试。

步骤104,根据所述目标业务标识获取调用链路。

在该步骤中,由于如前述逻辑,对于一个业务而言,在其设定好后,其业务标识与其调用链路关联,那么当测试服务器接收到测试请求时,可以利用从测试请求中得到的目标业务标识,去查找相应的调用链路。

在本申请实施例中,不同的测试业务对应有不同的调用链路,例如,当打开网购应用访问购物车测试功能模块a的页面渲染的时候,需要查购物车里的产品数量,则进一步需要调用产品测试功能模块b,产品测试功能模块b需要调用会员测试功能模块c等等,每个业务都需要跟上下游几百个应用进行相互调用,不同的调用链路可以与对应的业务标识进行绑定,该绑定关系可以存储在分配服务器中,因此,根据测试请求中的目标业务标识,可以查找到对应的调用链路,使得后续测试可以顺利进行。

步骤105,根据所述调用链路对所述目标隔离标识对应的目标测试功能模块进行调用。

在实际应用中,全球化业务的研发团队通常分布在世界各地的不同时区,导致多个研发团队之间在协同作业时时间难以协调,因此,研发团队通常需要尽心处理自己的研发业务,避免由于测试业务的调用冲突这种错误,导致协作时间被用来排查错误。

在本申请实施例中,针对一组测试业务通常预设有调用链路,即一组测试业务中各个目标测试功能模块之间的调用关系,在进行业务测试时,可以按照调用链路的顺序进行目标测试功能模块的调用,根据测试业务的多样性,不同测试业务的调用链路可以不同,本申请通过对不同测试业务的目标测试功能模块设置不同的隔离标识,并在进行测试时依次调用包含隔离标识的目标测试功能模块,实现了测试业务之间的逻辑隔离,使得研发团队可以调用其独有的目标测试功能模块进行测试,避免在调用测试功能模块的过程中与其他研发团队发生冲突,提高了研发效率。

另外,参照图1,正式生产环境中,由于面向大量的用户开放,且独立于测试环境,则可以设置生产业务,即为正式上线业务,生产业务包括了多组并行的功能模块,用于承载正式生产时的较大负载,正式生产业务中功能模块的调用逻辑可以与测试业务相同,但是由于生产流量较大,则需要进行负载均衡处理,在调用下一个功能模块的时候可以选择多个功能模块中负载较低的一个,以达到负载均衡的目的,提高生产效率。

综上所述,本申请实施例提供的一种调用方法,包括提供至少一组测试功能模块;测试功能模块关联有业务标识、用户标识、及隔离标识;接收测试请求;测试请求包括目标业务标识和目标用户标识;根据目标业务标识和目标用户标识确定目标隔离标识;根据目标业务标识获取调用链路;根据调用链路对目标隔离标识对应的目标测试功能模块进行调用,本申请通过对待测试的功能模块设置业务标识、用户标识及隔离标识的对应关系,在进行业务测试时,测试流量可以通过确定对应的目标隔离标识,按照调用链路依次调用包含有目标隔离标识的功能模块,实现测试业务之间的隔离,研发团队在进行业务测试时,只用专注于自己的测试业务,避免不同研发团队之间工作相冲突,方便各个研发团队自己管理自己开发的应用,使各个研发团队在其测试业务出现问题时,可以独立、快速的对自己开发的应用进行查验;并且,由于进行了逻辑隔离,环境搭建成本低,可移植性强,能够支持不断扩张的全球各地的业务团队对研发环境的需求。

参照图5,示出了本申请提供的一种调用方法的具体步骤流程图,具体可以包括如下步骤:

步骤201,提供至少一组测试功能模块;所述测试功能模块关联有业务标识、用户标识、及隔离标识。

该步骤可以参照上述步骤101,此处不再赘述。

可选的,步骤201还可以包括:

子步骤2011,接收分配服务器发送的第一设置请求,所述第一设置请求包括至少一组测试功能模块,所述第一设置请求中的测试功能模块关联有所述业务标识、所述用户标识、及所述隔离标识;所述第一设置请求由所述分配服务器在接收到测试客户端发送的第二设置请求后发送,所述第二设置请求包括至少一组测试功能模块,所述第二设置请求中的测试功能模块关联有所述业务标识、所述用户标识;所述隔离标识由所述分配服务器根据所述第二设置请求生成。

在本申请实施例中,参照图4,可以由分配服务器统筹完成不同研发团队的测试客户端对于要测试的测试功能模块的部署操作,为了达到逻辑隔离的目的,可以将不同团队的不同测试功能模块部署在测试服务器中的不同隔离环境。

具体的,针对上述实现过程,在一具体示例中,测试客户端1发送第二设置请求至分配服务器。第二设置请求包括至少一组测试功能模块,第二设置请求中的测试功能模块关联有业务标识、用户标识;隔离标识由分配服务器根据第二设置请求生成。

进一步的,当分配服务器接收到第二设置请求时,会对第二设置请求中的测试功能模块添加对应的隔离标识,将添加了隔离标识的测试功能模块导入第一设置请求,并将第一设置请求发送至分配服务器。

子步骤2012,根据所述第一设置请求,设置所述至少一组测试功能模块,并将所述测试功能模块与所述业务标识、所述用户标识、及所述隔离标识关联。

在本申请实施例中,参照图4,s2,分配服务器根据第二设置请求,将第一设置请求发送至测试服务器,以供测试服务器设置至少一组测试功能模块,例如,测试服务器根据分配服务器发送的第一设置请求,可以将第一设置请求包括的添加有隔离标识的测试功能模块部署在测试服务器中,通过部署的测试功能模块带有的隔离标识,使得测试客户端1申请测试的功能模块和其他测试客户端申请测试的功能模块相互隔离。

进一步的,当测试服务器完成测试功能模块的部署和隔离后,分配服务器可以将完成部署的测试服务器的互联协议地址(ip,internetprotocol)打包在hosts文件中发送给测试客户端,测试客户端解析该hosts文件获得测试服务器的ip地址并进行绑定,使得测试客户端可以通过该ip地址发送针对测试服务器的测试请求进行后续测试。

可选的,调用方法应用于测试服务器,所述测试客户端的地理位置与所述测试服务器的地理位置距离最近,其中与所述测试客户端距离最近的测试服务器由所述分配服务器确定。

需要说明的是所述调用方法,可以应用于测试管理服务器,该测试管理服务器对于一组节点服务器。所述测试客户端的地理位置与所述测试管理服务器的地理位置距离最近。实际中,该测试管理服务器和其对应的节点服务器可以在同一个区域的机房中布设。

相应的在分配服务器中,还可以包括如下步骤:

子步骤a1,提供与测试客户端距离最近的测试服务器。

在本申请实施例中,全球化业务的研发团队通常分布在世界各地的不同时区,而测试服务器分布于几个固定地点,有时会产生研发团队与测试服务器之间物理距离较大的情况,全球化的距离问题体现在,正常一次中美网络访问的延迟在200毫秒左右,一次业务请求的网络往复调用会非常多,最后业务表现的响应时长就达到几秒钟或者更长时间,因此,对于这种情况,需要提供给世界各地的研发团队进行就近访问的测试服务器,以尽量减少物理距离带来的延迟。

具体的,提供与测试客户端距离最近的测试服务器的方式可以包括:可以对研发团队的测试客户端的当前所在地点,以及当前所在地点的经纬度信息。将所述当前所在地点的经纬度信息在地址哈希模型中进行匹配,确定测试客户端的当前所在地点的经纬度在设定距离内的一个或多个测试服务器,地址哈希模型根据测试服务器所在地的经纬度信息训练得到。其中,地址哈希模型可以基于geohash算法,该算法为一种将经纬度转换成字符串的方法,并且使得在大部分情况下,字符串前缀匹配越多的距离越近。通过将测试请求发出地的经纬度导入预先训练得到的地址哈希模型,匹配出预设公里范围以内的一个或多个测试服务器,并且根据经纬度计算出测试请求发出地距离这些测试服务器的公里数。

进一步的,如果通过地址哈希模型的匹配,得到了一个测试服务器,则可以将该测试服务器提供给对应的研发团队,该测试服务器为离研发团队所在的最近的一个测试服务器,可以有效降低物理距离带来的延迟。

另外,假设通过地址哈希模型的匹配,得到了多个测试服务器,则可以将这些测试服务器与这些测试服务器距离研发团队所在地之间的距离排列成表发送给研发团队,以供研发团队根据实际需求从中选取一个进行测试。

另外,分配服务器还可以执行如下步骤:

子步骤b1,分配服务器为所述测试客户端提供所述测试服务器的选择界面。

子步骤b2,分配服务器接收所述测试客户端通过所述选择界面发送的所述第二设置请求;所述第二设置请求中的测试服务器由用户在所述选择界面中确定。

在本申请实施例中,分配服务器将测试功能模块部署在测试服务器中时,通常优选的可以选择与研发团队的物理距离最近的测试服务器进行部署,以达到降低研发团队与测试服务器的通信延迟的目的,另外,也可以由分配服务器提供一个测试服务器的选择界面,使得研发团队可以自行选择需要使用的测试服务器,例如,分配服务器提供给测试客户端一个选择列表,选择列表里具有各个部署在不同国家的测试服务器,研发团队根据自己的需求,在选择列表中选取一个测试服务器并告知分配服务器,分配服务器则可以根据所选择的测试服务器进行部署。

步骤202,提供至少一组基础功能模块;所述基础功能模块关联有业务标识;所述基础功能模块与所述调用链路完全匹配。

在本申请实施例中,参照图1,基础环境中每天都会有大量的系统进入发布前的预发布测试,然后进行业务验证,这些预发布的环境是要跟测试环境进行隔离,不相互影响,基础环境面向软件研发团队和第三方合作团队,主要用于软件正式上线前的预发测试或与第三方合作团队的合作测试,基础环境中不需要进行逻辑隔离,因此,预发布基础环境中的基础功能模块可以不带有所述隔离标识,基础功能模块的功能和作用和测试环境中测试功能模块的功能和作用相同,区别之处在于基础功能模块不带有隔离标识,测试功能模块带有隔离标识。

另外,基础环境中测试的基础功能模块可以是正式上线前的最后一个版本的业务,因此,基础功能模块可以至少包括调用链路中含有的测试功能模块,以达到基础环境负载较低时,通过测试环境可以调用基础环境进行利用的目的,减少了研发环境建立的成本。

步骤203,接收测试请求;所述测试请求包括目标业务标识和目标用户标识。

该步骤具体可以参照上述步骤102,此处不再赘述。

步骤204,根据所述目标业务标识和目标用户标识确定目标隔离标识。

该步骤具体可以参照上述步骤103,此处不再赘述。

步骤205,根据所述目标业务标识获取调用链路。

该步骤具体可以参照上述步骤104,此处不再赘述。

步骤206,根据所述调用链路对所述目标隔离标识对应的目标测试功能模块进行调用。

该步骤具体可以参照上述步骤105,此处不再赘述。

可选的,在本申请实施例的另一种实施方式中,步骤204还可以包括以下子步骤:

子步骤c1,通过中间件,根据所述调用链路对所述目标隔离标识对应的目标测试功能模块进行调用。

在本申请实施例中,测试环境的目标测试功能模块的调用处理可以依靠预发布中间件来实现,中间件是一种独立的系统软件或服务程序,分布式应用系统可以借助这种软件在不同的技术之间共享资源,例如,预发布中间件可以包括:hsf(high-speedserviceframework)\notify\metaq这几个组件,这几个组件都是为了实现远程调用,hsf是实时调用的远程过程调用协议(rpc,remoteprocedurecall)中间件,notify\metaq是消息类异步调用的rpc中间件,测试业务的目标测试功能模块之间都是通过这些中间件进行相互通信的。

具体的,中间件分为预发布中间件和生产中间件,预发布中间件主要用于测试环境和基础环境之间的资源共享,生产中间件主要用于生产环境之间的资源共享,其中,预发布中间件可以接收接收针对测试环境中的目标测试功能模块的测试请求,并处理该测试请求,调用相应的带有隔离标识的目标测试功能模块进行测试。

在调用过程中,预发布中间件通过隔离标识来通知其rpc调用相同隔离标识的下游目标测试功能模块,具体为测试业务中的每个带有隔离标识的目标测试功能模块都会被自动加入一个插件包用来给发布中间件传递这个隔离标识,保证基础环境内带有隔离标识的目标测试功能模块之间可以相互调用,不会调用其他测试业务的测试功能模块,即预发布中间件可以识别目标测试功能模块对应的隔离标识,以达到调用链路上具有同一隔离标识的目标测试功能模块之间的调用,避免调用到其他测试功能模块。另外,预发布中间件还可以包括入口接口的功能,用于接收预发流量和测试流量,并将预发流量导入基础环境,将测试流量导入测试环境。

参照图1,基于测试环境和基础环境,可以分别对应建立影子表和正式表,影子表示对正式表的一个映射拷贝,具有与其相同的数据结构,正式表用于接收生产中间件传输的生产环境中的相关业务数据,影子表用于接收预发布中间件传输的测试环境和基础环境中的相关业务数据,以达到对预发布测试数据和生产数据的存储。

可选的,在所述测试功能模块与所述调用链路完全匹配的情况下,步骤204还可以包括以下子步骤:

d1,按照所述调用链路中对功能模块的调用顺序,依次调用所述目标隔离标识对应的目标测试功能模块。

在本申请实施例中,参照图1,当测试服务器或者测试管理服务器的预发布中间件接收到研发团队的用户标识2的测试客户端,针对业务标识为1的测试功能模块发送的测试请求时,预发布中间件可以根据测试请求,先调用包括隔离标识m2的目标测试功能模块a-m2,之后根据隔离标识m2,调用同样具有隔离标识m2的目标测试功能模块b-m2,之后调用具有隔离标识m2的目标测试功能模块c-m2,最后调用具有隔离标识2的目标测试功能模块d-m2,以达到对测试功能模块a-m2、测试功能模块b-m2、测试功能模块c-m2、测试功能模块d-m2、的调用链路的实现。

当在所述测试功能模块与所述调用链路部分匹配的情况下,即缺失调用链路中的一个或多个测试功能模块时,步骤204还可以包括以下子步骤:

子步骤e1,对于所述调用链路中与所述测试功能模块匹配的第一位置,选取所述目标隔离标识对应的目标测试功能模块进行调用。

子步骤e2,对于所述调用链路中不与所述测试功能模块匹配的第二位置,选取与所述第二位置对应的基础功能模块进行调用。

在本申请实施例中,针对一组测试功能模块调用时,其调用链路中的第一位置为存在隔离标识的测试功能模块的位置,其调用链路中的第二位置为不存在隔离标识的测试功能模块,而存在基础功能模块的位置。

具体的,参照图1,当测试服务器或者测试管理服务器的预发布中间件接收到研发团队的用户标识1的测试客户端,针对业务标识为1的测试功能模块发送的测试请求时,可以采用调用基础环境中的不包含隔离标识的基础功能模块c,使得调用链路为测试功能模块a-m1、测试功能模块b-m1、基础功能模块c、测试功能模块d-m1。以达到利用基础环境的资源完成业务测试的目的,提高测试环境的利用率,避免研发团队对不需要该次开发的功能模块也需要处理以便的目的,提高研发团队的开发效率。

需要说明的是,当调用至基础功能模块c之后,根据调用链路:功能模块标识a-功能模块标识b-功能模块标识c-功能模块标识d,此时应该自动调用基础功能模块c之后的下一个测试功能模块d-m1,以实现全链路的调用。

可选的,在本申请实施例的另一种实现方式中,子步骤e1可以包括:

子步骤e11、在调用所述调用链路中,第一个与所述目标隔离标识对应的目标测试功能模块的情况下,生成针对所述测试请求的识别标识。

在本申请实施例中,基于对测试服务器建立的成本等因素的考虑,可以通过测试服务器中测试环境与基础环境之间进行资源共享,使得对于测试环境中需要测试的某些带有隔离标识的测试功能模块,可以在测试环境中将其删除,进而通过调用基础环境中相同功能的基础功能模块来完成业务测试,达到了利用基础环境的资源的目的,例如,当基础环境的使用负载较低时,测试环境就可以调用基础环境中的基础功能模块用来完成业务测试,从而降低测试环境的负载。

需要说明的是,基于上述需求,在预发布中间件调用至不带有隔离标识的基础功能模块时,由于此时基础功能模块不包含隔离标识,因此预发布中间件无法通过隔离标识进一步识别后续调用的是具有隔离标识的测试功能模块,还是进一步调用不含隔离标识的基础功能模块,此时,可以通过生成一个识别标识,通过对识别标识的查询,获取完整的调用链路进行查询对应的隔离标识。

识别标识也可以称为鹰眼标识或者说鹰眼id,通常研发团队发送测试请求时,会将研发团队的用户标识跟鹰眼id建立对应关系,从而与该测试请求绑定,鹰眼id在调用过程中是按照预设链路顺序透传下去的,具体为该研发团队的用户标识发起测试请求进行访问的时候,第一个被调用的带有隔离标识的测试功能模块就会产生唯一的鹰眼id与该用户标识进行绑定,然后测试请求的对应的预发布中间件在调用下游带有隔离标识的测试功能模块的时候都会把这个鹰眼id带上,并将该鹰眼id所调用的所有测试功能模块的信息打印到预发布中间件的调用日志中,这样通过基于大数据搜索该鹰眼id就可以算出一次测试业务所调用经过的所有带有隔离标识的测试功能模块,可以实现调用链路的分析。在调用完成后,可以将该鹰眼id与用户标识的对应关系解除。当然,在实际应用中鹰眼id可以根据测试请求中的用户标识生成,也可以根据测试请求中的用户标识、业务标识生成,也可以根据其他信息生成,只需要保证鹰眼id具有全局唯一性即可,本申请实施例不对其加以限制。

可选的,子步骤e11还可以包括:

子步骤f1、在调用所述调用链路中,第一个与所述目标隔离标识对应的目标测试功的情况下,获取所述测试请求对应的用户标识。

在该步骤中,测试客户端在发送测试请求时可以附加上相应的用户标识,例如用户ip。当设置限定条件为一个用户标识只能上传一组测试功能模块时,则可以用该用户id生成识别标识,从而方便该识别标识与该用户标识等信息进行绑定,方便后续通过识别标识在配置文件中查询对应的用户标识,以及用户标识对应的测试环境的访问地址以及测试功能模块的隔离标识之间的对应关系,使得后续调用链路畅通无阻。

需要说明的是,如果一个用户标识可以上传多组测试功能模块时,则可以将鹰眼标识与其他能够唯一指示该组测试功能模块的信息进行绑定,本申请实施例不对其加以限制。

子步骤f2、根据所述用户标识生成所述识别标识。

在本申请实施例中,将用户标识、测试服务器的访问地址以及隔离标识之间的对应关系保存至配置文件中,可以形成该测试客户端的用户标识对应的相关配置,以便后续根据透传的识别标识,在该相关配置中查找对应的访问地址以及隔离标识,使得测试客户端确定所需要访问测试服务器的访问地址,进行访问,并进一步确定对应的隔离标识,以避免访问到其他测试客户端的隔离环境。其中,测试服务器的访问地址可以理解为前述业务标识。

在该步骤中,根据用户标识生成识别标识的逻辑可以为,先获取用户的用户标识,在配置文件中查询是否有该用户标识所对应的相关配置存在,若有,则可以将用户标识的前若干位字符设定为识别标识,若无先关配置存在,则因为配置中心存在测试服务器对应的机器标识于测试服务器的访问地址、以及测试功能模块的隔离标识之间的对应关系,则可以将测试服务器对应的机器标识的前若干位字符设定为识别标识,以便对有或无用户标识的测试流量进行区分。

需要说明的是,生成的识别标识需要与对应用户标识进行绑定,以便于通过用户标识,在预发布中间件的调用日志中查找相关的调用链路。该用户标识可以为测试客户端的设备id,也可以为其他能够表明身份的标识信息。

子步骤e12、对于所述调用链路中的第一位置,当所述第一位置的上一个位置为所述第二位置的情况下,如果所述第二位置对应的基础功能模块调用完毕,则根据所述测试请求对应的识别标识,确定所述目标隔离标识。

在识别标识与用户绑定后,当后续的基础功能模块调用完毕后,由于基础功能模块本身不带有隔离标识,因此通过该基础功能模块不能确定后续是调用有隔离标识的测试功能模块还是继续调用基础功能模块,因此需要根据测试请求对应的识别标识确定隔离标识。那么可以根据生成的识别标识,在预发布中间件的调用日志中查找到该识别标识对应的用户针对第一测试业务所调用经过的所有带有隔离标识的测试功能模块,可以实现调用链路的分析,确定对应的隔离标识。其中,该调用日志是预发布中间件在对各个功能模块进行调用后生成的,即预发布中间件对各个功能模块调用后,都会将功能模块标识、隔离标识、鹰眼标识之间的对应关系存储到调用日志中。

子步骤e13、根据所述隔离标识,查找所述第一位置对应的目标测试功能模块。

子步骤e14、调用所述目标测试功能模块。

在本申请实施例中,参照图1,当测试服务器或者测试管理服务器的预发布中间件接收到研发团队的用户标识1的测试客户端,针对业务标识为1的测试功能模块发送的测试请求时,由于不存在带有隔离标识m1的测试功能模块c-m1,那么可以调用基础环境中的不包含隔离标识的基础功能模块c,从而可以依次测试功能模块a-m1、测试功能模块b-m、基础功能模块c-测试功能模块d-m1,使业务可以完整执行以达到利用基础环境的资源进行业务测试的目的,提高测试环境的利用率。

需要说明的是,当调用至基础功能模块c之后,可以根据测试请求对应的识别标识在预发布中间件的调用日志中确定隔离标识为m1,根据隔离标识m1,调用下一个调用链路中的测试功能模块d-m1-1,以实现全链路的调用。

综上所述,本申请实施例提供的一种调用方法,提供至少一组测试功能模块;测试功能模块关联有业务标识、用户标识、及隔离标识;接收测试请求;测试请求包括目标业务标识和目标用户标识;根据目标业务标识和目标用户标识确定目标隔离标识;根据目标业务标识获取调用链路;根据调用链路对目标隔离标识对应的目标测试功能模块进行调用,且在调用过程中,当缺失调用链路中的一个或多个带有隔离标识的测试功能模块时,则选取提供的基础环境中对应的一个或多个不带有隔离标识的基础功能模块进行调用,达到利用基础环境进行业务测试的目的,本申请通过对待测试的功能模块设置业务标识、用户标识及隔离标识的对应关系,在进行业务测试时,测试流量可以通过确定对应的目标隔离标识,按照调用链路依次调用包含有目标隔离标识的功能模块,实现测试业务之间的隔离,研发团队在进行业务测试时,只用专注于自己的测试业务,避免不同研发团队之间工作相冲突,方便各个研发团队自己管理自己开发的应用,使各个研发团队在其测试业务出现问题时,可以独立、快速的对自己开发的应用进行查验;并且,由于进行了逻辑隔离,环境搭建成本低,可移植性强,能够支持不断扩张的全球各地的业务团队对研发环境的需求。

参照图6,示出了本申请一个调用装置的结构图。该实施例可以应用于前述的测试服务器,也可以应用于前述的测试管理服务器。该调用装置具体可以包括:

第一提供模块301,用于提供至少一组测试功能模块;所述测试功能模块关联有业务标识、用户标识、及隔离标识;

接收模块302,用于接收测试请求;所述测试请求包括目标业务标识和目标用户标识;

确定模块303,用于根据所述目标业务标识和目标用户标识确定目标隔离标识;

获取模块304,用于根据所述目标业务标识获取调用链路;

调用模块305,用于根据所述调用链路对所述目标隔离标识对应的目标测试功能模块进行调用。

综上所述,本申请实施例提供的一种调用装置,包括提供至少一组测试功能模块;测试功能模块关联有业务标识、用户标识、及隔离标识;接收测试请求;测试请求包括目标业务标识和目标用户标识;根据目标业务标识和目标用户标识确定目标隔离标识;根据目标业务标识获取调用链路;根据调用链路对目标隔离标识对应的目标测试功能模块进行调用,本申请通过对待测试的功能模块设置业务标识、用户标识及隔离标识的对应关系,在进行业务测试时,测试流量可以通过确定对应的目标隔离标识,按照调用链路依次调用包含有目标隔离标识的功能模块,实现测试业务之间的隔离,研发团队在进行业务测试时,只用专注于自己的测试业务,避免不同研发团队之间工作相冲突,方便各个研发团队自己管理自己开发的应用,使各个研发团队在其测试业务出现问题时,可以独立、快速的对自己开发的应用进行查验;并且,由于进行了逻辑隔离,环境搭建成本低,可移植性强,能够支持不断扩张的全球各地的业务团队对研发环境的需求。

参照图7,示出了本申请一个具体示例中的一种调用装置的具体结构图。该实施例可以应用于前述的测试服务器,也可以应用于前述的测试管理服务器。该装置具体可以包括:

第一提供模块401,用于提供至少一组测试功能模块;所述测试功能模块关联有业务标识、用户标识、及隔离标识;

可选的,第一提供模块401还包括:

接收子模块,用于接收分配服务器发送的第一设置请求,所述第一设置请求包括至少一组测试功能模块,所述第一设置请求中的测试功能模块关联有所述业务标识、所述用户标识、及所述隔离标识;所述第一设置请求由所述分配服务器在接收到测试客户端发送的第二设置请求后发送,所述第二设置请求包括至少一组测试功能模块,所述第二设置请求中的测试功能模块关联有所述业务标识、所述用户标识;所述隔离标识由所述分配服务器根据所述第二设置请求生成;

设置子模块,用于根据所述第一设置请求,设置所述至少一组测试功能模块,并将所述测试功能模块与所述业务标识、所述用户标识、及所述隔离标识关联。

可选的,所述调用方法应用于测试服务器,所述测试客户端的地理位置与所述测试服务器的地理位置距离最近,其中与所述测试客户端距离最近的测试服务器由所述分配服务器确定。

第二提供模块402,用于提供至少一组基础功能模块;所述基础功能模块关联有业务标识;所述基础功能模块与所述调用链路完全匹配。

接收模块403,用于接收测试请求;所述测试请求包括目标业务标识和目标用户标识;

确定模块404,用于根据所述目标业务标识和目标用户标识确定目标隔离标识;

获取模块405,用于根据所述目标业务标识获取调用链路;

调用模块406,用于根据所述调用链路对所述目标隔离标识对应的目标测试功能模块进行调用。

可选的,调用模块406包括:

第一调用子模块,用于按照所述调用链路中对功能模块的调用顺序,依次调用所述目标隔离标识对应的目标测试功能模块。

第二调用子模块,用于对于所述调用链路中与所述测试功能模块匹配的第一位置,选取所述目标隔离标识对应的目标测试功能模块进行调用;

可选的,第二调用子模块,包括:

确定单元,用于对于所述调用链路中的第一位置,当所述第一位置的上一个位置为所述第二位置的情况下,如果所述第二位置对应的基础功能模块调用完毕,则根据所述测试请求对应的识别标识,确定所述目标隔离标识;

查找单元,用于根据所述隔离标识,查找所述第一位置对应的目标测试功能模块;

调用单元,用于调用所述目标测试功能模块。

第三调用子模块,用于对于所述调用链路中不与所述测试功能模块匹配的第二位置,选取与所述第二位置对应的基础功能模块进行调用。

中间件调用子模块,用于通过中间件,根据所述调用链路对所述目标隔离标识对应的目标测试功能模块进行调用。

生成模块407,用于在调用所述调用链路中,第一个与所述目标隔离标识对应的目标测试功能模块的情况下,生成针对所述测试请求的识别标识。

可选的,生成模块407,包括:

获取子模块,用于在调用所述调用链路中,第一个与所述目标隔离标识对应的目标测试功能模块的情况下,获取所述测试请求对应的用户标识;

生成子模块,用于根据所述用户标识生成所述识别标识。

综上所述,本申请实施例提供的一种调用装置,包括提供至少一组测试功能模块;测试功能模块关联有业务标识、用户标识、及隔离标识;接收测试请求;测试请求包括目标业务标识和目标用户标识;根据目标业务标识和目标用户标识确定目标隔离标识;根据目标业务标识获取调用链路;根据调用链路对目标隔离标识对应的目标测试功能模块进行调用,且在调用过程中,当缺失调用链路中的一个或多个带有隔离标识的测试功能模块时,则选取提供的基础环境中对应的一个或多个不带有隔离标识的基础功能模块进行调用,达到利用基础环境进行业务测试的目的,本申请通过对待测试的功能模块设置业务标识、用户标识及隔离标识的对应关系,在进行业务测试时,测试流量可以通过确定对应的目标隔离标识,按照调用链路依次调用包含有目标隔离标识的功能模块,实现测试业务之间的隔离,研发团队在进行业务测试时,只用专注于自己的测试业务,避免不同研发团队之间工作相冲突,方便各个研发团队自己管理自己开发的应用,使各个研发团队在其测试业务出现问题时,可以独立、快速的对自己开发的应用进行查验;并且,由于进行了逻辑隔离,环境搭建成本低,可移植性强,能够支持不断扩张的全球各地的业务团队对研发环境的需求。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

图8是本申请实施例提供的一种装置的结构示意图。参见图8,装置可以包括服务器500,服务器500可以用于实施上述实施例中提供的调用方法。该服务器500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储的或持久存储的。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在服务器500上执行存储介质530中的一系列指令操作。

服务器500还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,一个或一个以上键盘556,和/或,一个或一个以上操作系统541,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。其中,中央处理器522可以在服务器500上执行以下操作的指令:

提供至少一组测试功能模块;所述测试功能模块关联有业务标识、用户标识、及隔离标识;

接收测试请求;所述测试请求包括目标业务标识和目标用户标识;

根据所述目标业务标识和目标用户标识确定目标隔离标识;

根据所述目标业务标识获取调用链路;

根据所述调用链路对所述目标隔离标识对应的目标测试功能模块进行调用。

当然,还可以执行其他服务器侧的指令。本申请提供一种装置,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行一种调用方法。

本申请还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行一种调用方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

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

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

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

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

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

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

以上对本申请所提供的一种调用方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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