本发明涉及计算机领域,具体而言,涉及一种测试用例处理方法和装置。
背景技术:
随着计算机技术的发展,要求软件系统快速迭代,为了在同时保证系统稳定,持续集成技术广泛应用到了测试领域。
现有的持续集成测试,主要是通过监听代码仓库如git上的代码提交事件。当有代码提交,就通知持续集成软件如jenkins,构建测试任务。测试任务包括在测试终端上:部署运行环境、拉取代码、执行测试用例、生成报告等。
以上系统往往存在如下问题:
1)仅仅针对代码修改进行测试,当系统运行环境发生改变,如数据库增删、新增依赖库、第三方组件升级等,需要另外人工测试或另外提供测试工具,来保证代码在新环境中运行正确。
2)要求构建测试任务的过程中,jenkins有权限在测试终端上拉取代码。这样无法做到权限分离,因为jenkins用户可能是产品经理、运营、美术等非技术人员,当代码要求严格保密时,jenkins用户不应有权限去拉取代码。
针对相关技术中代码或运行环境测试时权限管理操作不便的问题,目前尚未提出有效的解决方案。
技术实现要素:
本发明的主要目的在于提供一种测试用例处理方法和装置,以解决代码或运行环境测试时权限管理操作不便的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种测试用例处理方法,该方法包括:接收构建运行环境的请求;在接收到所述构建运行环境的请求之后,消息队列模块将所述构建运行环境的请求转发到运行环境管理模块;所述运行环境管理模块根据所述构建运行环境的请求中的代码分支信息构建测试环境;在构建测试环境完成后,通过所述消息队列模块将构建测试环境完成的请求转发到调度模块;根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例。
进一步地,在根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例之前,所述方法还包括:在所述运行环境管理模块构建测试环境完成之后,判断是否接收到运行环境更新请求;在接收到所述运行环境更新请求之后,执行测试运行环境的用例。
进一步地,根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例包括:在接收到消息队列模块发送的消息后,判断所述消息是环境构建完成请求还是环境更新请求;如果所述消息是环境构建完成请求,则上传并执行测试代码的用例;如果所述消息是环境更新请求,则上传并测试运行环境的用例。
进一步地,在接收构建运行环境的请求之前,所述方法还包括:在调度模块接收到代码提交事件后,向所述消息队列模块发送构建运行环境的请求,其中,所述消息队列模块通过rabbitmq构建运行环境队列和运行环境更新队列,所述运行环境队列用于存储所述调度模块发送的构建运行环境的请求,和,所述运行环境管理模块发送的运行环境构建成功的请求。
进一步地,所述运行环境管理模块通过使用dockerfile维护docker镜像,其中,所述dockerfile中携带有待构建的运行环境信息的指令。
为了实现上述目的,根据本发明的另一方面,还提供了一种测试用例处理装置,该装置包括:接收单元,用于接收构建运行环境的请求;第一转发单元,用于在接收到所述构建运行环境的请求之后,通过消息队列模块将所述构建运行环境的请求转发到运行环境管理模块;构建单元,用于通过所述运行环境管理模块根据所述构建运行环境的请求中的代码分支信息构建测试环境;第二转发单元,用于在构建测试环境完成后,通过所述消息队列模块将构建测试环境完成的请求转发到调度模块;第一执行单元,用于根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例。
进一步地,所述装置还包括:判断单元,用于在根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例之前,在所述运行环境管理模块构建测试环境完成之后,判断是否接收到运行环境更新请求;第二执行单元,用于在接收到所述运行环境更新请求之后,执行测试运行环境的用例。
进一步地,所述第一执行单元包括:判断模块,用于在接收到消息队列模块发送的消息后,判断所述消息是环境构建完成请求还是环境更新请求;第一上传模块,用于在所述消息是环境构建完成请求时,上传并执行测试代码的用例;第二上传模块,用于在所述消息是环境更新请求时,上传并测试运行环境的用例。
为了实现上述目的,根据本发明的另一方面,还提供了一种存储介质,包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行本发明所述的测试用例处理方法。
为了实现上述目的,根据本发明的另一方面,还提供了一种设备,至少包括一个处理器,以及与所述处理器连接的至少一个存储器、总线,其中,所述处理器、所述存储器通过所述总线完成相互间的通信,所述处理器用于调用所述存储器中的程序指令,以执行本发明所述的测试用例处理方法。
本发明通过接收构建运行环境的请求;在接收到构建运行环境的请求之后,消息队列模块将构建运行环境的请求转发到运行环境管理模块;运行环境管理模块根据构建运行环境的请求中的代码分支信息构建测试环境;在构建测试环境完成后,通过消息队列模块将构建测试环境完成的请求转发到调度模块;根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例,解决了代码或运行环境测试时权限管理操作不便的问题,进而达到了方便代码或运行环境测试时权限管理的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的测试用例处理方法的流程图;
图2是本发明实施例的测试代码与运行环境的方法的流程图;
图3是根据本发明实施例的设备框图。
图4是调度模块的流程图;
图5是消息队列模块的流程图;
图6是运行环境管理模块的流程图;
图7是根据本发明实施例的测试用例处理装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种测试用例处理方法。
图1是根据本发明实施例的测试用例处理方法的流程图,如图1所示,该方法包括以下步骤:
步骤s102:接收构建运行环境的请求;
步骤s104:在接收到构建运行环境的请求之后,消息队列模块将构建运行环境的请求转发到运行环境管理模块;
步骤s106:运行环境管理模块根据构建运行环境的请求中的代码分支信息构建测试环境;
步骤s108:在构建测试环境完成后,通过消息队列模块将构建测试环境完成的请求转发到调度模块;
步骤s110:根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例。
该实施例采用接收构建运行环境的请求;在接收到构建运行环境的请求之后,消息队列模块将构建运行环境的请求转发到运行环境管理模块;运行环境管理模块根据构建运行环境的请求中的代码分支信息构建测试环境;在构建测试环境完成后,通过消息队列模块将构建测试环境完成的请求转发到调度模块;根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例,解决了代码或运行环境测试时权限管理操作不便的问题,进而达到了方便代码或运行环境测试时权限管理的效果。
在本实施例中,构建运行环境的请求可以是调度模块发出的,调度模块向消息队列模块发送构建运行环境的请求,消息队列模块作为中介将请求转发到运行环境管理模块,运行环境管理模块基于请求中的代码分支信息在测试终端中构建测试环境,构建完成之后,消息队列模块再次将构建测试环境完成的请求转发到调度模块,调度模块在测试终端上,执行测试代码的用例,对代码进行测试,由于采用了消息队列模块作为中介对消息进行转发,因而可以将权限进行分离,调度模块的测试任务只需向消息队列模块发出请求,由运行环境管理模块负责拉取代码返回环境构建完成的请求,无需向调度模块用户提供拉取代码的权限,保证了代码的安全,解决了代码或运行环境测试时权限管理操作不便的问题。
可选地,在根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例之前,在运行环境管理模块构建测试环境完成之后,判断是否接收到运行环境更新请求;在接收到运行环境更新请求之后,执行测试运行环境的用例。
调度模块除了能够控制测试终端执行测试代码的用例之外,还可以控制测试终端执行测试运行环境的用例,收到运行环境更新请求之后执行测试运行环境的用例。
可选地,根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例包括:在接收到消息队列模块发送的消息后,判断消息是环境构建完成请求还是环境更新请求;如果消息是环境构建完成请求,则上传并执行测试代码的用例;如果消息是环境更新请求,则上传并测试运行环境的用例。
由于调度模块控制测试终端执行两种类型的测试用例,因此在执行时先判断时那种类型的请求,根据请求类型上传并测试不同的用例。
可选地,在接收构建运行环境的请求之前,在调度模块接收到代码提交事件后,向消息队列模块发送构建运行环境的请求,其中,消息队列模块通过rabbitmq构建运行环境队列和运行环境更新队列,运行环境队列用于存储调度模块发送的构建运行环境的请求,和,运行环境管理模块发送的运行环境构建成功的请求。
消息队列模块通过配置并启动rabbitmq维护两个队列。
可选地,运行环境管理模块通过使用dockerfile维护docker镜像,其中,dockerfile中携带有待构建的运行环境信息的指令。
本实施例还提供了一种优选实施方式。
本发明实施例提供了一种测试代码与运行环境的方法及装置,同时满足,代码测试与运行环境测试要求的系统,无需向jenkins提供拉取代码的权限,也能完成持续集成测试,能够复用同一套系统,测试代码与运行环境,并能做到无需向jenkins提供拉取代码的权限。
包括代码监听模块、调度模块、消息队列模块、运行环境管理模块,其中,四个模块可以分散设置,也可以集成设置。实际运行时,代码监听模块运行在git代码仓库所在的服务器a,调度模块行在服务器b,运行环境管理模块运行在服务器c,消息队列模块可单独运行在服务器d。除代码监听模块必须在git仓库上外,其他模块也可共用一个服务器。
代码监听模块:在git代码仓库设置webhook,监听代码提交事件pushevents,还可监听tagpushevents、issuesevents等。将监听到的代码提交事件发送给调度模块,发送的内容包括分支、提交者、提交时间等信息。
调度模块:使用持续集成软件如jenkins,进行测试任务的调度。接收代码监听模块发送来的代码改动消息,向消息队列模块发送构建运行环境的请求,请求包括代码分支信息。监听消息队列模块,处理运行环境构建完成的请求,构建完成的请求包括测试终端的地址信息,在返回的测试终端上,执行测试用例。监听消息队列模块,处理运行环境更新请求,更新请求包括测试终端的地址信息,在返回的测试终端上,执行测试用例。
消息队列模块:接收jenkins发送来的构建环境请求,等待运行环境管理模块处理。接收运行环境管理模块的构建完成请求,等待调度模块处理。接收运行环境管理模块的运行环境更新请求,等待调度模块处理。
运行环境管理模块:使用docker,管理运行环境。将所有运行环境信息如数据库、依赖库、依赖服务等,存储在docker镜像中,每次使用时新建docker容器作为测试用例执行的终端,终端包含所有运行环境。监听消息队列模块,处理构建运行环境的请求,处理过程为新建docker容器,在容器中安装对应git分支的代码,向消息队列模块,发送环境构建成功消息,消息包括测试终端地址。当镜像更新时,即运行环境更新时,新建docker容器,在容器中安装git分支的当前稳定版本代码,向消息队列模块,发送环境更新消息,消息包括测试终端地址。
本发明实施例通过消息队列模块,如rabbitmq,解决了同时满足代码测试与运行环境测试的问题。1)代码测试:由代码监听模块发起,触发jenkins发送构建运行环境消息到消息队列,运行环境管理模块处理该消息后,返回测试终端,jenkins在对应终端执行代码测试的测试用例。2)运行环境测试:由运行环境管理模块发起,当docker镜像更新,即运行环境更新时,按最新的镜像构建环境,发送更新运行环境消息到消息队列,jenkins处理该消息,在获得的终端执行测试用例,用以测试新的运行环境。
同时通过消息队列模块和运行环境管理模块,解决了无需向jenkins提供拉取代码的权限的问题。消息队列作为权限分离的中介,jenkins的测试任务,只需要向消息队列发出请求,运行环境管理模块从消息队列获取请求,最终会由运行环境管理模块负责拉取代码,返回有所需环境的测试终端给jenkins即可,环境管理模块也可拒绝jenkins不合理的请求,环境管理模块无需向jenkins提供任何接口和权限。
基于以上系统,本发明实施例可以在持续集成测试过程中,对代码与环境共同测试,节省成本,能够做到jenkins与代码的权限分离,保障代码安全。
下面对每个模块的执行内容进行进一步说明。
图2是本发明实施例的测试代码与运行环境的方法的流程图,如图2所示,代码测试和运行环境测试可以共用一套系统,1.1至1.7过程实现代码测试,2.1至2.4过程实现运行环境测试,两种测试共用一套系统。具体的测试过程如下:
1.1:代码仓库监听模块,向调度模块发送代码提交事件。
1.2:调度模块,向消息队列模块,发送构建运行环境请求。
1.3:运行环境管理模块,从消息队列模块取出,构建运行环境的请求。
1.4:运行环境管理模块,根据请求中的代码分支信息,构建测试环境。
1.5:运行环境管理模块,向消息队列模块,发送环境构建完成的请求。
1.6:调度模块,从消息队列模块取出,环境构建完成的请求,获得测试终端的地址。
1.7:调度模块,在测试终端上,执行测试代码的用例,对代码进行测试。
2.1:运行环境管理模块,通过守护进程监听到dockerfile的修改,使用稳定代码分支,构建测试环境。
2.2:运行环境管理模块,向消息队列模块,发送运行环境更新的请求。
2.3:调度模块,从消息队列模块取出,运行环境更新的请求,获得测试终端的地址。
2.4:调度模块,在测试终端上,执行测试运行环境的用例,对运行环境进行测试。
通过上述过程,本实施例可以无需向调度模块(即jenkins)提供拉取代码的权限,也能完成持续集成测试。
消息队列作为权限分离的中介,使用rabbitmq实现。调度模块的测试任务,只需要向消息队列发出请求,即步骤1.2,运行环境管理模块从消息队列获取请求,步骤1.3,最终会由运行环境管理模块负责拉取代码,步骤1.4,运行环境管理模块,返回环境构建完成请求,给消息队列模块,步骤1.5,调度模块,从消息队列模块,获取环境构建完成请求,包含测试终端地址给jenkins,步骤1.6,实际拉取代码的是运行环境管理模块,而无需向调度模块(jenkins)用户提供拉取代码的权限。环境管理模块也可拒绝jenkins不合理的请求,即检查消息队列模块中的构建运行环境请求,步骤1.3,若不合理就丢弃该请求,运行环境管理模无需向jenkins提供任何接口和权限,jenkins只能向消息队列模块发出请求,不能实际操作代码,保证了代码安全,而创建好的环境地址,也能通过消息队列模块,最终返回给jenkins用户使用,保证了持续集成测试的需求,整个过程对jenkins用户隐藏了代码内容。
代码仓库监听模块:本实施例中,在git代码仓库设置webhook,监听代码提交事件pushevents,还可监听tagpushevents、issuesevents等。webhook的回调地址,设置为调度模块地址,这样即可将监听到的代码提交事件发送给调度模块,发送的内容包括分支、提交者、提交时间等信息。图3是代码仓库监听模块的流程图,如图3所示:
s201:代码监听模块:在git上,设置webhook回调地址为调度模块地址,即jenkins监听任务的地址。
s202:代码监听模块:webhook监听git的代码提交事件。
s203:代码监听模块:发送git代码提交事件,到jenkins监听任务,包括代码分支、提交人、提交时间等信息。
调度模块:本实施例使用持续集成软件jenkins实现,进行测试任务的调度。接收代码监听模块发送来的代码改动消息,向消息队列模块发送构建运行环境的请求,请求包括代码分支信息。监听消息队列模块,处理运行环境构建完成的请求,构建完成的请求包括测试终端的地址信息,在返回的测试终端上,执行测试用例。监听消息队列模块,处理运行环境更新请求,更新请求包括测试终端的地址信息,在返回的测试终端上,执行测试用例。
图4是调度模块的流程图,如图4所示:
s301:配置jenkins任务,设置为当git有提交时触发。通过代码仓库监听模块的webhook回调,可以实现接收代码提交事件,触发jenkins任务。
s302:向消息队列发送构建环境请求。本实施例中,消息队列使用rabbitmq实现,s301中的任务,调用python脚本,使用pika库,使用blockingconnection函数连接rabbitmq,使用basic_publish函数向消息队列发送构建环境请求。
s303:监听消息队列,处理环境构建完成请求和环境更新请求。通过pika库的basic_consume函数,监听消息队列发送的环境构建完成请求和环境更新请求。
s304:接收到消息队列的消息后,判断是环境构建完成请求,还是环境更新请求。
s305:处理环境更新请求,从请求中获取测试终端地址,jenkins任务向测试终端,上传测试运行环境的用例,并执行。
s306:处理环境构建完成请求,从请求中获取测试终端地址,jenkins任务向测试终端,上传测试代码的用例,并执行。
消息队列模块:本实施例使用rabbitmq实现消息队列模块。消息队列接收jenkins发送来的构建环境请求,等待运行环境管理模块处理。接收运行环境管理模块的构建完成请求,等待调度模块处理。接收运行环境管理模块的运行环境更新请求,等待调度模块处理。
图5是消息队列模块的流程图,如图5所示:
s401:配置并启动rabbitmq,维护2个队列:构建运行环境队列和运行环境更新队列。
s402:构建运行环境队列,管理2类消息,1、接收调度模块发送的构建运行环境请求,等待运行环境管理模块处理2、接收运行环境管理模块,发送的运行环境构建成功请求,等待调度模块处理。
s403:运行环境更新队列,接收运行环境管理模块,发送的运行环境更新请求,等待调度模块处理。
运行环境管理模块:本实施例使用docker实现,管理运行环境。将所有运行环境信息如数据库、依赖库、依赖服务等,存储在docker镜像中,每次使用时新建docker容器作为测试用例执行的终端,终端包含所有运行环境。监听消息队列模块,处理构建运行环境的请求,处理过程为新建docker容器,在容器中安装对应git分支的代码,向消息队列模块,发送环境构建成功消息,消息包括测试终端地址。当镜像更新时,即运行环境更新时,新建docker容器,在容器中安装git分支的当前稳定版本代码,向消息队列模块,发送环境更新消息,消息包括测试终端地址。
图6是运行环境管理模块的流程图,如图6所示:
s501:使用dockerfile维护docker镜像,dockerfile中有各种环境信息的和指令,使用dockerfile来build镜像。镜像包括所有运行环境信息,如数据库、依赖库、依赖组件等。
s502:启动守护进程,监听消息队列的,构造运行环境的请求。接收到请求后,使用s501中docker镜像构造docker容器。
s503:根据s502中的请求中的代码分支信息,在docker容器中拉取对应分支代码。
s504:向消息队列发送环境构建完成请求,请求包括docker容器地址,作为测试终端地址。
s505:启动守护进程,监听:dockerfile的修改,有修改则认为是运行环境更新。使用dockerfile,builid新的镜像,然后使用新镜像构造docker容器。
s506:在docker容器中拉取当前稳定的分支代码,如当前外放版本的分支代码。
s506:向消息队列发送环境更新请求,请求包括docker容器地址,作为测试终端地址。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种测试用例处理装置,该装置可以用于执行本发明实施例的测试用例处理方法。
图7是根据本发明实施例的测试用例处理装置的示意图,如图7所示,该装置包括:
接收单元10,用于接收构建运行环境的请求;
第一转发单元20,用于在接收到构建运行环境的请求之后,通过消息队列模块将构建运行环境的请求转发到运行环境管理模块;
构建单元30,用于通过运行环境管理模块根据构建运行环境的请求中的代码分支信息构建测试环境;
第二转发单元40,用于在构建测试环境完成后,通过消息队列模块将构建测试环境完成的请求转发到调度模块;
第一执行单元50,用于根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例。
该实施例采用接收单元10,用于接收构建运行环境的请求;第一转发单元20,用于在接收到构建运行环境的请求之后,通过消息队列模块将构建运行环境的请求转发到运行环境管理模块;构建单元30,用于通过运行环境管理模块根据构建运行环境的请求中的代码分支信息构建测试环境;第二转发单元40,用于在构建测试环境完成后,通过消息队列模块将构建测试环境完成的请求转发到调度模块;第一执行单元50,用于根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例,从而解决了代码或运行环境测试时权限管理操作不便的问题,进而达到了方便代码或运行环境测试时权限管理的效果。
测试用例处理装置包括处理器和存储器,上述接收单元、第一转发单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
可选地,该装置还包括:判断单元,用于在根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例之前,在运行环境管理模块构建测试环境完成之后,判断是否接收到运行环境更新请求;第二执行单元,用于在接收到运行环境更新请求之后,执行测试运行环境的用例。
可选地,第一执行单元50包括:判断模块,用于在接收到消息队列模块发送的消息后,判断消息是环境构建完成请求还是环境更新请求;第一上传模块,用于在消息是环境构建完成请求时,上传并执行测试代码的用例;第二上传模块,用于在消息是环境更新请求时,上传并测试运行环境的用例。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来方便代码或运行环境测试时权限管理。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述测试用例处理方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述测试用例处理方法。
本发明实施例提供了一种设备,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的测试用例处理方法。本文中的设备可以是服务器、pc、pad、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收构建运行环境的请求;在接收到构建运行环境的请求之后,消息队列模块将构建运行环境的请求转发到运行环境管理模块;运行环境管理模块根据构建运行环境的请求中的代码分支信息构建测试环境;在构建测试环境完成后,通过消息队列模块将构建测试环境完成的请求转发到调度模块;根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
1.一种测试用例处理方法,其特征在于,包括:
接收构建运行环境的请求;
在接收到所述构建运行环境的请求之后,消息队列模块将所述构建运行环境的请求转发到运行环境管理模块;
所述运行环境管理模块根据所述构建运行环境的请求中的代码分支信息构建测试环境;
在构建测试环境完成后,通过所述消息队列模块将构建测试环境完成的请求转发到调度模块;
根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例。
2.根据权利要求1所述的方法,其特征在于,在根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例之前,所述方法还包括:
在所述运行环境管理模块构建测试环境完成之后,判断是否接收到运行环境更新请求;
在接收到所述运行环境更新请求之后,执行测试运行环境的用例。
3.根据权利要求2所述的方法,其特征在于,根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例包括:
在接收到消息队列模块发送的消息后,判断所述消息是环境构建完成请求还是环境更新请求;
如果所述消息是环境构建完成请求,则上传并执行测试代码的用例;
如果所述消息是环境更新请求,则上传并测试运行环境的用例。
4.根据权利要求3所述的方法,其特征在于,在接收构建运行环境的请求之前,所述方法还包括:
在调度模块接收到代码提交事件后,向所述消息队列模块发送构建运行环境的请求,
其中,所述消息队列模块通过rabbitmq构建运行环境队列和运行环境更新队列,所述运行环境队列用于存储所述调度模块发送的构建运行环境的请求,和,所述运行环境管理模块发送的运行环境构建成功的请求。
5.根据权利要求1所述的方法,其特征在于,所述运行环境管理模块通过使用dockerfile维护docker镜像,其中,所述dockerfile中携带有待构建的运行环境信息的指令。
6.一种测试用例处理装置,其特征在于,包括:
接收单元,用于接收构建运行环境的请求;
第一转发单元,用于在接收到所述构建运行环境的请求之后,通过消息队列模块将所述构建运行环境的请求转发到运行环境管理模块;
构建单元,用于通过所述运行环境管理模块根据所述构建运行环境的请求中的代码分支信息构建测试环境;
第二转发单元,用于在构建测试环境完成后,通过所述消息队列模块将构建测试环境完成的请求转发到调度模块;
第一执行单元,用于根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
判断单元,用于在根据消息队列模块发送的消息执行测试代码的用例或者测试运行环境的用例之前,在所述运行环境管理模块构建测试环境完成之后,判断是否接收到运行环境更新请求;
第二执行单元,用于在接收到所述运行环境更新请求之后,执行测试运行环境的用例。
8.根据权利要求7所述的装置,其特征在于,所述第一执行单元包括:
判断模块,用于在接收到消息队列模块发送的消息后,判断所述消息是环境构建完成请求还是环境更新请求;
第一上传模块,用于在所述消息是环境构建完成请求时,上传并执行测试代码的用例;
第二上传模块,用于在所述消息是环境更新请求时,上传并测试运行环境的用例。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任意一项所述的测试用例处理方法。
10.一种设备,其特征在于,所述设备至少包括一个处理器,以及与所述处理器连接的至少一个存储器、总线,其中,所述处理器、所述存储器通过所述总线完成相互间的通信,所述处理器用于调用所述存储器中的程序指令,以执行权利要求1至5中任意一项所述的测试用例处理方法。
技术总结