测试环境系统和系统联调方法与流程

文档序号:18884519发布日期:2019-10-15 20:40阅读:715来源:国知局
测试环境系统和系统联调方法与流程
本发明涉及软件系统测试领域,更具体地说,涉及测试环境系统和系统联调方法。
背景技术
:软件系统的可用性和稳定性依赖着复杂的生产环境,因此,在软件系统的迭代过程中,研发测试的工作必不可少。而研发测试的质量和效率,对软件系统的测试环境又有很强的依赖。一套基础的研发测试对测试环境要求包括系统联调和异常测试等。系统联调是指软件系统中的一个或多个应用升级后,需要接入到系统环境中联调,查看整个系统的兼容情况并从系统的整体表现来验证应用设计的效果。异常测试是指线上和线下都要对应用在系统环境中进行异常演练,以提升软件系统的容错能力。异常情况包括数据异常和网络故障等。现有的一种测试环境系统,利用有限资源构建一套分时共用的测试环境。该测试环境系统,在对多个应用进行测试,或者对一个应用进行不同内容测试时,由于无法做到物理隔离,需要进行排队测试,效率较低。现有的另一种测试环境系统,依据测试需求构建多套系统测试环境,但是,构建过程耗时过长,且搭建的多套系统测试环境,相互之间无法协同复用,造成大量计算机资源的浪费。技术实现要素:有鉴于此,本发明提出测试环境系统和系统联调方法,欲在节约资源的前提下,解决在并行测试时,不同测试环境间的相互干扰问题。为了实现上述目的,现提出的方案如下:一种测试环境系统,包括:基线环境、项目环境应用和应用路由器,其中,所述基线环境包括与正式运行的软件系统中各个应用相同的应用和每个应用运行所依赖的计算机资源,使用容器技术承载所述基线环境包括的每个应用;所述项目环境应用包括待测试应用,以及每个所述待测试应用运行所依赖的计算机资源,使用容器技术承载每个所述待测试应用;所述应用路由器包括多环境管理模块,所述多环境管理模块存储所述基线环境和所述项目环境应用包括的各个应用的应用名称、版本号、运行地址和测试环境标签;所述应用路由器,用于所述基线环境和所述项目环境应用包括的各个应用之间的调用。可选的,通过同步机制保持所述基线环境包括的各个应用,与正式运行的软件系统中相应应用的版本一致。一种系统联调方法,应用于上述测试环境系统的应用路由器,所述系统联调方法包括:接收调用请求,获取测试环境标签;分析与所述测试环境标签存在映射关系的应用名称和版本号中,是否存在与被调用的目标应用相同的应用名称和版本号,若是,则从所述项目环境应用中调用所述目标应用,若否,则从所述基线环境中调用所述目标应用。与现有技术相比,本发明的技术方案具有以下优点:上述技术方案提供的测试环境系统,通过容器技术承载基线环境包括的应用和项目环境应用包括的待测试应用,实现了基线环境和项目环境应用包括的各个应用之间的隔离,因此保障了并行测试过程中,各个应用运行环境的互不干扰。并且基线环境包括正式运行的软件系统的所有应用的副本,可以分别与各个待测试应用进行系统联调,即实现了利用一套环境同时满足多种测试需求。本发明提供的测试环境系统,在节约计算机资源的前提下,解决了并行测试时,不同测试环境间的相互干扰问题。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本发明实施例提供的一种测试环境系统的示意图;图2为本发明实施例提供的一种系统联调方法的流程图;图3为本发明实施例提供的单一项目使用基线环境11进行系统联调的过程;图4为本发明实施例提供的两个项目并行使用基线环境11进行系统联调的过程;图5为本发明实施例提供的链路回调项目使用基线环境11进行系统联调的过程。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1为本实施例提供的一种测试环境系统,包括:基线环境11、项目环境应用12和应用路由器13,其中,基线环境11为依据正式运行的软件系统,搭建的测试环境。基线环境11是生产环境的副本,即与生产环境相同。基线环境11包括与正式运行的软件系统中各个应用相同的应用。参见图1,基线环境11包括应用a、应用b、应用c、应用d和应用e;基线环境11包括的应用a、应用b、应用c、应用d和应用e,与正式运行的软件系统中的相应应用的版本一致,在本实施例中版本均是1.0。基线环境11还包括每个应用运行所依赖的计算机资源。计算机资源包括不限于操作系统、服务器和数据库等。在一个实施例中,通过同步机制保持基线环境11包括的各个应用,与正式运行的软件系统中相应应用的版本一致。本发明对于具体的同步机制不做限定,只要能够实现基线环境11包括的各个应用,与正式运行的软件系统中相应应用的版本时刻保持一致即可。使用容器技术承载基线环境11包括的每个应用。容器是指使用虚拟化技术达到隔离目的的运行实体,容器技术包括但不限于docker、rkt和hyper等容器技术。通过容器技术实现了基线环境11包括的各个应用之间的隔离。项目环境应用12包括待测试应用,以及每个待测试应用运行所依赖的计算机资源。待测试应用是正式运行的软件系统中更新或升级的应用,参见图1,在本实施例中,待测试应用包括属于第一项目环境的应用a1.1和应用b1.1,以及属于第二项目环境的应用b1.2和应用c1.1。应用a1.1表示版本号为1.1的应用a。不同版本的应用对测试环境有不同需求,本发明中将不同版本应用所需的不同测试环境标识为不同的项目环境。项目环境应用12包括的待测试应用也使用容器技术承载,实现了待测试应用之间的隔离。基线环境11包括了正式运行的软件系统的所有应用的副本,为预先搭建好的测试环境。项目环境应用12是在研发测试过程中,根据测试需求构建;由于项目环境应用12只包括更新或升级的应用,节约了计算机资源,且减少了测试环境搭建时间。应用路由器13包括多环境管理模块131,多环境管理模块131存储基线环境11和项目环境应用12包括的各个应用的应用名称、版本号、运行地址和测试环境标签。本实施例中,多环境管理模块131存储的信息如下表所示。应用名称版本号运行地址测试环境标签a1.0地址1基线环境b1.0地址2基线环境c1.0地址3基线环境d1.0地址4基线环境e1.0地址5基线环境a1.1地址6第一项目环境b1.1地址7第一项目环境b1.2地址8第二项目环境c1.1地址9第二项目环境应用路由器13,用于基线环境11和项目环境应用12包括的各个应用之间的调用。应用路由器13负责应用间调用的路由,所有调用请求都要经过应用路由器13。由项目环境应用12中的待测试应用发起系统联调。应用调用时优先从项目环境应用12中调用所需应用,项目环境应用12中没有所需应用时,再从基线环境11中调用。本实施例提供的一种系统联调方法,应用于图1所示的应用路由器13。参见图2,该方法包括步骤:s11:接收调用请求,获取测试环境标签。应用路由器13接收到的调用请求,可以是项目环境应用12中的待测试应用发送的,也可以是基线环境11中的应用发送的。项目环境应用12中的待测试应用发送调用其它应用的调用请求时,该调用请求中包含发送调用请求的待测试应用的测试环境标签。基线环境11中的应用发送调用其它应用的调用请求时,应用路由器13获取发起系统联调的待测试应用的测试环境标签。s12:分析与测试环境标签存在映射关系的应用名称中,是否存在与被调用的目标应用相同的应用名称,若是,则执行步骤s13,若否,则执行步骤s14。s13:从项目环境应用中调用目标应用。s14:从基线环境中调用目标应用。下面详细介绍使用基线环境11进行系统联调的过程。参见图3,为单一项目使用基线环境11进行系统联调的过程。该系统联调过程具体为应用a调用应用b,然后应用b调用应用c。图3所示的各个应用的路由信息如下表所示:应用名称版本号运行地址测试环境标签a1.1地址1第一项目环境b1.1地址2第一项目环境a1.0地址3基线环境b1.0地址4基线环境c1.0地址5基线环境d1.0地址6基线环境e1.0地址7基线环境待测试应用为a1.1和b1.1。应用a调用应用b时,应用路由器13分析应用a的测试环境标签为第一项目环境,调用应用b,根据路由信息判断存在与第一项目环境对应的应用b,因此,从项目环境应用12的第一项目环境中调用应用b;当b调用应用c时,应用路由器13分析应用b的测试环境标签为第一项目环境,调用应用c,根据路由信息判断不存在与第一项目环境对应的应用c,因此,从基线环境11中调用应用c。参见图4,为两个项目使用基线环境11进行系统联调的过程。该系统联调过程具体为第一项目环境中应用a调用应用b,然后应用b调用基线环境中的应用c;第二环境中应用b调用应用c,然后应用c调用基线环境中的应用d。图4所示的各个应用的路由信息如下表所示:应用名称版本号运行地址测试环境标签a1.1地址1第一项目环境b1.1地址2第一项目环境b1.2地址3第二项目环境c1.1地址4第二项目环境a1.0地址5基线环境b1.0地址6基线环境c1.0地址7基线环境d1.0地址8基线环境e1.0地址9基线环境使用第一项目环境进行系统联调测试:待测试应用为a1.1和b1.1。应用a调用应用b时,应用路由器13分析应用a的测试环境标签为第一项目环境,调用应用b,根据路由信息判断存在与第一项目环境对应的应用b,因此,从项目环境应用12的第一项目环境中调用应用b;当b调用应用c时,应用路由器13分析应用b的测试环境标签为第一项目环境,调用应用c,根据路由信息判断不存在与第一项目环境对应的应用c,因此,从基线环境11中调用应用c。使用第二项目环境进行系统联调测试:待测试应用为b1.2和c1.1。应用b调用应用c时,应用路由器13分析应用b的测试环境标签为第二项目环境,调用应用c,根据路由信息判断存在与第二项目环境对应的应用c,因此,从项目环境应用12的第二项目环境中调用应用c;当c调用应用d时,应用路由器13分析应用c的测试环境标签为第二项目环境,调用应用d,根据路由信息判断不存在与第二项目环境对应的应用d,因此,从基线环境11中调用应用d。参见图5,为链路回调项目使用基线环境11进行系统联调的过程。该系统联调过程具体为应用a调用应用b,然后应用b调用应用c。图5所示的各个应用的路由信息如下表所示:待测试应用为a1.1和c1.1。应用a调用应用b时,应用路由器13分析应用a1.1的测试环境标签为第一项目环境,调用应用b,根据路由信息判断存在与第一项目环境对应的应用b,因此,从基线环境11中调用应用b;当b调用应用c时,由于调用请求的是从基线环境11发送的,应用路由器13分析发起本次系统联调的应用a1.1的测试环境标签为第一项目环境,调用应用c,根据路由信息判断存在与第一项目环境对应的应用c,因此,从项目环境应用12中调用应用c。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对本发明所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1