CN104978191B - 应用部署方法和服务器 - Google Patents

应用部署方法和服务器 Download PDF

Info

Publication number
CN104978191B
CN104978191B CN201510353829.4A CN201510353829A CN104978191B CN 104978191 B CN104978191 B CN 104978191B CN 201510353829 A CN201510353829 A CN 201510353829A CN 104978191 B CN104978191 B CN 104978191B
Authority
CN
China
Prior art keywords
application deployment
deployment
test case
application
compiling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510353829.4A
Other languages
English (en)
Other versions
CN104978191A (zh
Inventor
沈建荣
谭国斌
窦锦帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiaomi Inc
Original Assignee
Xiaomi Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiaomi Inc filed Critical Xiaomi Inc
Priority to CN201510353829.4A priority Critical patent/CN104978191B/zh
Publication of CN104978191A publication Critical patent/CN104978191A/zh
Application granted granted Critical
Publication of CN104978191B publication Critical patent/CN104978191B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本公开是关于一种应用部署方法和服务器,该方法包括:接收应用部署指令,获取待部署应用,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;获取与所述待部署应用对应的测试用例;对所述待部署应用进行编译,将编译后的待部署应用和所述测试用例发送给各业务服务器,以使所述各业务服务器将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,并运行所述测试用例对所述编译后的待部署应用进行测试。该自动部署和测试过程中,无需人工干预,避免人工部署、测试容易出错的问题,提高应用部署和测试效率的同时,保证了应用部署和测试的可靠性。

Description

应用部署方法和服务器
技术领域
本公开涉及通信技术领域,尤其涉及一种应用部署方法和服务器。
背景技术
随着分布式***在不同行业的广泛应用,在信息技术领域,为了保证***工作的健壮性、稳定性,服务提供商一般会将提供某种服务的应用部署在分布式***中,以供广大用户使用。其中,分布式***中往往包含有多台用于部署一种或多种应用的服务器。
发明内容
为克服相关技术中存在的问题,本公开提供一种应用部署方法和服务器,用以实现应用在分布式***中的自动部署、测试,以提高应用部署、测试效率和可靠性。
根据本公开实施例的第一方面,提供一种应用部署方法,包括:
接收应用部署指令,获取待部署应用,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
获取与所述待部署应用对应的测试用例;对所述待部署应用进行编译;
将编译后的待部署应用和所述测试用例发送给各业务服务器,以使所述各业务服务器将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,并运行所述测试用例对所述编译后的待部署应用进行测试。
其中,所述应用部署指令中包括所述待部署应用的应用标识、版本号和描述文件;所述获取与所述待部署应用对应的测试用例,包括:
确定是否存在与所述待部署应用对应的历史应用,所述历史应用是应用标识与所述待部署应用的应用标识相同且版本号低于所述待部署应用的版本号的应用;
若存在与所述待部署应用对应的历史应用,则获取与所述历史应用对应的历史描述文件,所述历史描述文件是所述历史应用的描述文件;
根据所述历史描述文件与所述待部署应用的描述文件,获取与所述待部署应用对应的测试用例。
具体来说,所述根据所述历史描述文件与所述待部署应用的描述文件,获取与所述待部署应用对应的测试用例,包括:
通过比较所述历史描述文件与所述待部署应用的描述文件,确定所述待部署应用中是否存在模块功能与所述历史应用的各功能模块不同的差异功能模块;
若不存在所述差异功能模块,则获取所述历史应用对应的测试用例作为与所述待部署应用对应的测试用例;
若存在所述差异功能模块,则获取与所述差异功能模块对应的差异测试用例,并根据所述差异测试用例更新所述历史应用对应的测试用例,将更新后的历史应用对应的测试用例作为与所述待部署应用对应的测试用例。
进一步地,所述方法还包括:
所述对所述待部署应用进行编译之前,接收编译指令,所述编译指令中包括操作者的认证信息;
根据所述认证信息对所述操作者进行身份认证,若认证通过,则执行所述对所述待部署应用进行编译的步骤。
根据本公开实施例的第二方面,提供另一种应用部署方法,包括:
接收管理服务器发送的编译后的待部署应用以及与所述待部署应用对应的测试用例;其中,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录。
将所述编译后的待部署应用和所述测试用例存入到所述部署目录下。
运行所述测试用例对所述编译后的待部署应用进行测试。
其中,所述部署目录包括临时目录和正式目录;所述将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,包括:
将所述编译后的待部署应用和所述测试用例存入到所述临时目录下。
所述运行所述测试用例对所述编译后的待部署应用进行测试,包括:
在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试。
进一步地,所述方法还包括:
若在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试通过,则将所述编译后的待部署应用存入到所述正式目录下,并删除存入到所述临时目录中的所述编译后的待部署应用和所述测试用例。
其中,所述测试用例包括单元测试用例和基础环境测试用例。
具体来说,所述运行所述测试用例对所述编译后的待部署应用进行测试,包括:
运行所述基础环境测试用例,对所述待部署应用的基础运行环境进行测试。
若所述基础环境测试用例测试通过,则运行所述单元测试用例,对所述待部署应用的各功能模块进行测试。
根据本公开实施例的第三方面,提供一种应用部署管理服务器,包括:
第一接收模块,被配置为接收应用部署指令。
第一获取模块,被配置为获取待部署应用,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录。
第二获取模块,被配置为获取与所述待部署应用对应的测试用例。
编译模块,被配置为对所述待部署应用进行编译。
发送模块,被配置为将编译后的待部署应用和所述测试用例发送给各业务服务器,以使所述各业务服务器将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,并运行所述测试用例对所述编译后的待部署应用进行测试。
其中,所述应用部署指令中包括所述待部署应用的应用标识、版本号和描述文件。
所述第二获取模块包括:
第一确定子模块,被配置为确定是否存在与所述待部署应用对应的历史应用,所述历史应用是应用标识与所述待部署应用的应用标识相同且版本号低于所述待部署应用的版本号的应用。
第一获取子模块,被配置为在存在与所述待部署应用对应的历史应用时,获取与所述历史应用对应的历史描述文件,所述历史描述文件是所述历史应用的描述文件。
第二获取子模块,被配置为根据所述历史描述文件与所述待部署应用的描述文件,获取与所述待部署应用对应的测试用例。
具体地,所述第二获取子模块包括:
确定子模块,被配置为通过比较所述历史描述文件与所述待部署应用的描述文件,确定所述待部署应用中是否存在模块功能与所述历史应用的各功能模块不同的差异功能模块。
第一获取子模块,被配置为在不存在所述差异功能模块时,获取所述历史应用对应的测试用例作为与所述待部署应用对应的测试用例。
第二获取子模块,被配置为在存在所述差异功能模块时,获取与所述差异功能模块对应的差异测试用例,并根据所述差异测试用例更新所述历史应用对应的测试用例,将更新后的历史应用对应的测试用例作为与所述待部署应用对应的测试用例。
进一步地,所述管理服务器还包括:
第二接收模块,被配置为所述编译模块对所述待部署应用进行编译之前,接收编译指令,所述编译指令中包括操作者的认证信息。
认证模块,被配置为根据所述认证信息对所述操作者进行身份认证;在认证通过时,触发所述编译模块。
根据本公开实施例的第四方面,提供一种应用部署业务服务器,包括:
接收模块,被配置为接收管理服务器发送的编译后的待部署应用以及与所述待部署应用对应的测试用例;其中,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录。
存储模块,被配置为将所述编译后的待部署应用和所述测试用例存入到所述部署目录下。
测试模块,被配置为运行所述测试用例对所述编译后的待部署应用进行测试。
其中,所述部署目录包括临时目录和正式目录;所述存储模块包括:
第一存储子模块,被配置为将所述编译后的待部署应用和所述测试用例存入到所述临时目录下。
所述测试模块,被配置为在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试。
进一步地,所述存储模块还包括:
第二存储子模块,被配置为在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试通过时,将所述编译后的待部署应用存入到所述正式目录下。
所述业务服务器还包括:
删除模块,被配置为删除存入到所述临时目录中的所述编译后的待部署应用和所述测试用例。
其中,所述测试用例包括单元测试用例和基础环境测试用例。
其中,所述测试模块包括:
第一测试子模块,被配置为运行所述基础环境测试用例,对所述待部署应用的基础运行环境进行测试。
第二测试子模块,被配置为在所述基础环境测试用例测试通过时,运行所述单元测试用例,对所述待部署应用的各功能模块进行测试。
根据本公开实施例的第五方面,提供另一种应用部署管理服务器,包括:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收应用部署指令,获取待部署应用,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
获取与所述待部署应用对应的测试用例;对所述待部署应用进行编译;
将编译后的待部署应用和所述测试用例发送给各业务服务器,以使所述各业务服务器将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,并运行所述测试用例对所述编译后的待部署应用进行测试。
根据本公开实施例的第六方面,提供另一种应用部署业务服务器,包括:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收管理服务器发送的编译后的待部署应用以及与所述待部署应用对应的测试用例;其中,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
将所述编译后的待部署应用和所述测试用例存入到所述部署目录下;
运行所述测试用例对所述编译后的待部署应用进行测试。
本公开的实施例提供的技术方案可以包括以下有益效果:
通过在应用的配置文件中设置该应用部署在分布式***的各业务服务器中的部署目录,使得各业务服务器自动部署该应用在该部署目录下,保证了该应用在所有业务服务器中的部署路径一致;而且,通过获取与该应用对应的测试用例,并将测试用例也发送给各业务服务器,使得各业务服务器将该测试用例和该应用一并存入上述部署目录中,各业务服务器自动启动运行该测试用例对该应用进行测试。该自动部署和测试过程中,无需人工干预,避免人工部署、测试容易出错的问题,提高应用部署和测试效率的同时,保证了应用部署和测试的可靠性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开一示例性实施例示出的应用场景示意图;
图2是根据一示例性实施例示出的一种应用部署方法实施例一的流程图;
图3是根据一示例性实施例示出的一种应用部署方法实施例二的流程图;
图4是根据一示例性实施例示出的一种应用部署方法的实施例三的流程图;
图5是根据一示例性实施例示出的一种应用部署方法的实施例四的流程图;
图6是根据一示例性实施例示出的一种应用部署方法的实施例五的流程图;
图7是根据一示例性实施例示出的一种应用部署方法的信令交互图;
图8是根据一示例性实施例示出的一种应用部署管理服务器实施例一的框图;
图9是根据一示例性实施例示出的一种应用部署管理服务器实施例二的框图;
图10是根据一示例性实施例示出的一种应用部署管理服务器实施例三的框图;
图11是根据一示例性实施例示出的一种应用部署业务服务器实施例一的框图;
图12是根据一示例性实施例示出的一种应用部署业务服务器实施例二的框图;
图13是根据一示例性实施例示出的一种应用部署管理服务器的框图;
图14是根据一示例性实施例示出的一种应用部署业务服务器的框图;
图15是根据一示例性实施例示出的一种应用部署管理服务器的框图;
图16是根据一示例性实施例示出的一种应用部署业务服务器的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先,先介绍本公开各实施例所适用的应用场景。
图1是本公开一示例性实施例示出的应用场景示意图,如图1所示,本公开各实施例提高的应用部署方法是适用于分布式***中的应用分布式部署场景。该分布式***中包括如图1所示的N个业务服务器和一个管理服务器,其中N为大于1的整数。其中,该管理服务器从功能上可以拆分为两个独立的服务器,分别为代码服务器和编译服务器。这两个服务器可以分别独立设置,也可以集成设置在一起构成上述管理服务器。由于该管理服务器的具体实现形式对本公开实施例的应用部署方法影响不大,因此,以下各实施例中除图2所示实施例中特别说明外,均以管理服务器整体的形式来描述,不具体区分为代码服务器和编译服务器。
下面结合各个具体的实施例对本公开应用部署方法进行详细介绍。
图2是根据一示例性实施例示出的一种应用部署方法实施例一的流程图,如图2所示,本实施例涉及的应用部署方法可以由图1所示中的管理服务器来执行。具体的,该应用部署方法包括以下步骤:
在步骤S101中,接收应用部署指令,获取待部署应用,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录。
在步骤S102中,获取与所述待部署应用对应的测试用例。
在步骤S103中,对所述待部署应用进行编译。
在步骤S104中,将编译后的待部署应用和所述测试用例发送给各业务服务器,以使所述各业务服务器将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,并运行所述测试用例对所述编译后的待部署应用进行测试。
目前,各个应用服务提供商总是不断推陈出新各种各样的网络应用,比如目前用于人们即时通信的微信,论坛、微博等等。每当应用的开发人员完成相关应用的开发之后,需要将该应用部署在上述分布式***中的业务服务器中,以提供给广大用户访问使用。
具体来说,应用开发人员可以将开发完成的应用发送到分布式***中的管理服务器中。
本实施例中,以管理服务器包括图1所示的代码服务器和编译服务器对管理服务器的工作过程进行细致说明。但是,可以理解的是,该管理服务器也可以集成上述两个服务器的功能,作为唯一的整体执行本实施例中的工作过程。
在具体介绍本实施例前,首先,值得说明的是,上述步骤S102和步骤S103之间不具有严格的时序限定关系,即既可以先获取测试用例,之后再对待部署应用进行编译;也可以先对待部署应用进行编译,再获取测试用例;还可以在获取测试用例的同时,对待部署应用进行编译,此时分别由上述管理服务器的两个进程或者分别由上述代码服务器和编译服务器执行不同的操作。
具体来说,本实施例中,代码服务器可以用于接收应用开发人员发送的应用部署指令,该应用部署指令中包括已经开发完成的待部署应用。因此,代码服务器接收并存储应用开发人员发送的待部署应用。运维人员登录编译服务器后,通过与代码服务器进行交互,可以从代码服务器中获取当前需要部署的应用即待部署应用。
本实施例中,该待部署应用中除了包含有该应用的源代码之外,还包括该应用的配置文件。
其中,应用的配置文件中包含应用程序特定的设置。该文件包含公共语言运行库读取的配置设置(如程序集绑定策略、远程处理对象等等),以及应用程序可以读取的设置。
本实施例中,该配置文件中包含有该待部署应用在各业务服务器中的部署目录,该部署目录可以预先设定。
如前所述,为了保证应用在各业务服务器中部署之后能够正常运行,从而为广大用户提供相应的服务,需要预先对该应用进行测试,比如需要对该应用进行业务服务器基础环境测试、单元测试等等。
其中,单元测试(unit testing):是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。其中,由于该应用在开发过程中,很可能是基于某些公共组件、某些第三方组件或者是某些架构进行开发的。为了使得该应用能够正常运行使用,需要部署该应用的各业务服务器能够支持这些公共组件、第三方组件、架构,即各业务服务器需要提供该应用所必须的基础环境。因此,需要对各业务服务器是否提供这些基础环境进行测试。
为了实现对该应用的自动测试,本实施例中,管理服务器,具体是上述代码服务器需要先获得与该应用对应的测试用例,其中,该测试用例便包括用于进行单元测试的单元测试用例,以及用于对各业务服务器的基础运行环境进行测试的基础环境测试用例。
值得说明的是,上述测试用例的生成方式不是本公开所要保护的重点,因此不过多描述该测试用例的生成过程。而在实际中,测试用例一般是由专门的应用测试人员预先编写设计完成的。因此,本实施例中,假设与上述待部署的应用的测试用例进行设计完成并存储在一个比如测试用例数据库,则代码服务器可以查询获得与该应用对应的测试用例。比如说,代码服务器通过以该应用的标识信息为索引在测试用例数据库中查询匹配的测试用例。相应的,可以理解的是,应用开发人员除了将该待部署应用发送给代码服务器外,还携带有该应用的标识信息,比如该应用的名称等。
从而,在代码服务器获得了与该待部署的应用对应的测试用例之后,将该待部署应用与该测试用例关联存储。
在实际的应用部署过程中,需要先将待部署的应用进行编译,编译通过后才进行向各业务服务器中部署的处理。因此,在管理服务器以独自的一个整体表示的情况下,管理服务器在接收到运维人员针对该待部署应用的编译指令之后,进行该应用的编译过程。其中,编译是指利用编译程序从源语言编写的源程序(源代码)产生目标程序的过程。
在管理服务器以上述代码服务器和编译服务器表示的情况下,编译服务器需从代码服务器中获得该待部署应用以及对应的测试用例,进而对该应用进行编译处理。具体的,该代码服务器可以在获得与该待部署应用对应的测试用例之后,自动触发向编译服务器发送该应用和该测试用例;或者,编译服务器可以周期性地向代码服务器发送查询请求,以查询代码服务器中是否存在需要部署的应用,如果有,则该代码服务器反馈给编译服务器相应的待部署应用以及对应的测试用例。
如果该待部署应用编译通过,则该编译服务器将该编译后的应用和对应的测试用例发送给各业务服务器,各业务服务器将接收到的应用和测试用例存储在该应用的配置文件中所描述的部署目录下,从而,各个业务服务器自动将该应用和测试用例均部署在相同的目录下,并启动运行该测试用例以完成对该应用能够正常运行的测试。如果测试通过,则部署完成,否则反馈给编译服务器告警提示,以使得运维人员对测试异常的业务服务器进行检测维护。
本实施例中,通过在应用的配置文件中设置该应用部署在分布式式***的各业务服务器中的部署目录,使得各业务服务器自动部署该应用在该部署目录下,保证了该应用在所有业务服务器中的部署路径一致;而且,在获得与该应用对应的测试用例之后,将测试用例也发送给各业务服务器,使得各业务服务器将该测试用例与该应用一并存入上述部署目录中,各业务服务器自动启动运行该测试用例对该应用进行测试。该自动部署和测试过程中,无需人工干预,避免人工部署、测试容易出错的问题,提高应用部署和测试效率的同时,保证了应用部署和测试的可靠性。
图3是根据一示例性实施例示出的一种应用部署方法实施例二的流程图,本实施例对图2所示实施例中的步骤102给出另一种实现方式。如图3所示,本实施例提供的所述应用部署方法具体可以包括如下步骤:
在步骤201中,接收应用部署指令,获取待部署应用,所述应用部署指令中包括所述待部署应用的应用标识、版本号和描述文件。
在步骤202中,确定是否存在与所述待部署应用对应的历史应用,所述历史应用是应用标识与所述待部署应用的应用标识相同且版本号低于所述待部署应用的版本号的应用,若存在与所述待部署应用对应的历史应用,则执行步骤203。
在步骤203中,获取与所述历史应用对应的历史描述文件,所述历史描述文件是所述历史应用的描述文件。
在步骤204中,根据所述历史描述文件与所述待部署应用的描述文件,获取与所述待部署应用对应的测试用例。
本实施例中,在管理服务器接收到的应用部署指令中包括除了包括待部署应用外,还可以包括该应用的应用标识、版本号和描述文件。
其中,该应用标识和版本号用于唯一表示该应用,因为应用会有升级、更新,同一个应用会有不同的版本号。其中,该应用的描述文件是对该应用所提供的功能,该应用中包含的各个功能模块的描述。
另外,在管理服务器中保存有已经部署过的已部署应用的应用标识、版本号、描述文件、测试用例的信息,这些信息可以存储在一个数据库中。
因此,当管理服务器接收到上述应用部署指令后,根据当前待部署应用的应用标识和版本号从上述数据库中查询是否存在与该当前待部署应用的应用标识相同,且版本号低于当前待部署应用的版本号的历史应用即已部署应用。
其中,值得说明的是,如果上述数据库中存储有一个应用的多个版本,则上述查询的过程中,尤其是查询获得比当前待部署应用的版本号低一个版本号的对应历史应用。
如果管理服务器查询确定不存在与待部署应用对应的历史应用,则可以与测试用例生成平台交互以获得与待部署应用对应的测试用例;如果管理服务器查询确定存在与待部署应用对应的历史应用,则其从上述数据库中获取该历史应用的描述文件即历史描述文件。
进而,管理服务器通过比较该历史描述文件和待部署应用的描述文件,以确定两个描述文件是否一致,并根据比较结果采用不同的方式获取与待部署应用对应的测试用例。
具体来说,如果两个描述文件中所描述的应用功能、包含的功能模块、每个功能模块的作用或实现方式都一致,即如果确定待部署应用中不存在模块功能与该历史应用的各功能模块不同的差异功能模块,则说明可以采用该历史应用对应的测试用例作为与待部署应用对应的测试用例。否则,若待部署应用与该历史应用中存在差异功能模块,则通过获取增量测试用例的方式获取该待部署应用所对应的测试用例。
具体地,管理服务器首先通过上述数据库获得该历史应用的测试用例,再获取与差异功能模块对应的差异测试用例,进而根据差异测试用例更新历史应用对应的测试用例,将更新后的历史应用对应的测试用例作为与待部署应用对应的测试用例。
其中,获取与差异功能模块对应的差异测试用例,比如可以通过与测试用例生成平台交互来获得。通过向测试用例生成平台发送上述差异功能模块,使得测试用例设计人员设计完成与该差异功能模块测试对应的差异测试用例,并通过测试用例生成平台反馈给管理服务器。
其中,根据差异测试用例更新历史应用对应的测试用例,具体包括:如果差异功能模块是相对于历史应用而附加的功能模块,则将该差异测试用例添加到历史应用对应的测试用例中,完成更新;如果差异功能模块是相对于历史应用中的某已有功能模块的改变,则从历史应用对应的测试用例中添加该差异测试用例,同时可以将历史应用对应的测试用例中用于测试与该差异功能模块对应的功能模块的测试用例删除,完成更新。
本实施例中,管理服务器中存储有已部署的各应用的相关信息,从而使得在后续部署升级的应用时,能够借助对应的已部署应用的测试用例,通过获取差异测试用例的方式降低针对每个应用需要进行独立的全部测试用例的设计所带来的工作量,能够进一步提高应用部署的效率。
图4是根据一示例性实施例示出的一种应用部署方法实施例三的流程图,在上述实施例的基础上,如图4所示,本实施例中,在上述步骤103对所述待部署应用进行编译之前,还包括如下步骤:
在步骤301中,接收编译指令,所述编译指令中包括编译操作者的认证信息;
在步骤302中,根据所述认证信息对所述编译操作者进行身份认证,确定认证是否通过,若认证通过,则执行步骤103,若认证不通过,则结束。
由于上述运维人员作为编译操作者以及向各业务服务器发送编译通过后的应用和测试用例的操作者,由于该应用对于应用提供商来说具有重要价值,因此,为了避免非授权人员的恶意操作,可以对运维人员进行身份认证。
具体来说,管理服务器中可以预先存储已授权人员的认证信息,该认证信息比如是登录账号和密码。因此,当运维人员即当前操作者登录管理服务器时,如果其输入的登录账号和密码为已授权的账号和密码中的一个,则认为该操作者通过认证。
可以理解的是,该身份认证方式比如还可以是验证码、指纹等方式,不做具体限定。
以上,从管理服务器的角度介绍了在分布式***的各业务服务器中部署应用的过程,下面结合几个实施例从各业务服务器的角度,介绍应用部署的具体过程。
图5是根据一示例性实施例示出的一种应用部署方法的实施例四的流程图,如图5所示,该应用部署方法包括如下步骤:
在步骤401中,接收管理服务器发送的编译后的待部署应用以及与所述待部署应用对应的测试用例;其中,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录。
在步骤402中,将所述编译后的待部署应用和所述测试用例存入到所述部署目录下。
在步骤403中,运行所述测试用例对所述编译后的待部署应用进行测试。
如前述各实施例中所述的,管理服务器在接收到应用部署指令后,获得与待部署应用对应的测试用例,在完成对待部署应用的编译等处理之后,将待部署应用和测试用例发送给各业务服务器,其中,待部署应用的配置文件中包含待部署应用的部署目录。
从而,各业务服务器在接收到管理服务器发送的上述编译后的待部署应用和测试用例之后,将该编译后的待部署应用和测试用例存入到该部署目录下,从而,每个业务服务器都将待部署应用和测试用例部署在相同的部署目录下,避免人工部署时容易出错的问题,比如存错目录、对待部署应用或测试用例进行了误操作等。
进而,每个业务服务器从该部署目录中启动运行测试用例,已完成对该待部署应用能否正常运行的测试。
其中,本实施例中,测试用例主要包括单元测试用例和基础环境测试用例。这两个测试用例的执行顺序是,优先执行基础环境测试用例,对所述待部署应用的基础运行环境进行测试,如果基础环境测试通过,则执行单元测试用例,对所述待部署应用的各功能模块进行测试;如果基础环境测试用例测试未通过,则向管理服务器发出告警提示,以提示运维人员出现了什么样的测试问题。相应的,如果在执行单元测试用例时,单元测试通过,则说明该待部署应用能够在业务服务器中正常运行,部署结束,如果单元测试没有通过,则向管理服务器发出告警提示,以提示运维人员出现了什么样的单元测试问题。
本实施例中,各业务服务器在接收到管理服务器发送的携带有部署目标的待部署应用及其对应的测试用例后,自动将该待部署应用存入即部署到该目录下,并自动运行测试用例对该应用进行测试。该自动部署和测试过程中,无需人工干预,避免人工部署、测试容易出错的问题,提高应用部署和测试效率的同时,保证了应用部署和测试的可靠性。
图6是根据一示例性实施例示出的一种应用部署方法的实施例五的流程图,如图6所示,该方法具体包括如下的步骤:
在步骤501中,接收管理服务器发送的编译后的待部署应用以及与所述待部署应用对应的测试用例;其中,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录,所述部署目录包括临时目录和正式目录。
在步骤502中,将所述编译后的待部署应用和所述测试用例存入到所述临时目录下。
在步骤503中,在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试。
在步骤504中,若在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试通过,则将所述编译后的待部署应用存入到所述正式目录下,并删除存入到所述临时目录中的所述编译后的待部署应用和所述测试用例。
本实施例中,之所以设置临时目录和正式目录是基于以下的考虑,其中,正式目录是与临时目录不同的目录。
由于在运行测试用例对待部署应用进行测试的过程中,会产生很多临时性文件、***碎片等垃圾文件,这些垃圾文件不但会占用业务服务器一定的存储空间,也会导致后续应用正式运行使用时运行环境不干净。因此,为了保证后续的应用正式使用时的高效可靠,本实施例中采用了设置两个目录的方式。
具体来说,首先,各业务服务器将待部署应用和测试用例都存储在临时目录中,其中,该临时目录的选择依据是,选择业务服务器的操作***在重启后便会消失的目录,即非永久性目录。进而,业务服务器在该临时目录下运行测试用例完成对待部署应用的测试,如果测试通过,即如果基础环境测试通过、单元测试也通过,则业务服务器将该待部署应用转存到正式目录中,进而可以重启业务服务器,激活应用可以正式使用。该正式目录与临时目录相对,是永久性目录。并且,业务服务器删除存入到临时目录中的待部署应用和测试用例,从而将产生的上述大部分垃圾文件均删除掉,保证应用正式运行时运行环境的干净。
以上分别从管理服务器和业务服务器的角度对本公开提供的应用部署方法进行了说明,下面结合图7,简单介绍本公开在分布式***中部署应用时,管理服务器与业务服务器的主要交互过程,其中,本实施例中以管理服务器包括代码服务器和编译服务器为例说明。
图7是根据一示例性实施例示出的一种应用部署方法的信令交互图,如图7所示,该交互过程包括:
在步骤601中,代码服务器接收应用部署指令,该应用部署指令中包括待部署应用,该待部署应用中包括源代码和配置文件,配置文件中包括待部署应用的部署目录。
在步骤602中,代码服务器获取与该待部署应用对应的测试用例。
在步骤603中,编译服务器从代码服务器中获得所述待部署应用和所述测试用例。
在步骤604中,编译服务器接收操作者的编译指令,根据该编译指令编译所述待部署应用。
在步骤605中,编译服务器将编译后的待部署应用和所述测试用例分别发送给各业务服务器。
在步骤606中,各业务服务器将编译后的待部署应用和所述测试用例存储在部署目录中,并运行所述测试用例。
综上所述,管理服务器通过获取携带有部署目录的待部署应用以及其对应的测试用例,进而将该待部署应用和测试用例分别发给各业务服务器,使得各业务服务器自动部署该应用在该部署目录下,保证了该应用在所有业务服务器中的部署路径一致;而且,通过将与该应用对应的测试用例一并发送给各业务服务器,使得各业务服务器将该测试用例一并存入上述部署目录中,各业务服务器自动启动运行该测试用例对该应用进行测试。该自动部署和测试过程中,无需人工干预,避免人工部署、测试容易出错的问题,提高应用部署和测试效率的同时,保证了应用部署和测试的可靠性。
以上描述了应用部署方法的实现过程,该过程可以由分布式***中的管理服务器和业务服务器来实现,以下将对管理服务器和业务服务器的内部功能和结构进行说明。
图8是根据一示例性实施例示出的一种应用部署管理服务器实施例一的框图,如图8所示,该管理服务器包括:第一接收模块11、第一获取模块12、第二获取模块13、编译模块14和发送模块15。
第一接收模块11,被配置为接收应用部署指令。
第一获取模块12,被配置为获取待部署应用,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录。
第二获取模块13,被配置为获取与所述待部署应用对应的测试用例。
编译模块14,被配置为对所述待部署应用进行编译。
发送模块15,被配置为将编译后的待部署应用和所述测试用例发送给各业务服务器,以使所述各业务服务器将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,并运行所述测试用例对所述编译后的待部署应用进行测试。
图9是根据一示例性实施例示出的一种应用部署管理服务器实施例二的框图,如图9所示,在图8所示实施例的基础上,所述应用部署指令中还包括所述待部署应用的应用标识、版本号和描述文件。所述第二获取模块13包括:第一确定子模块131、第一获取子模块132和第二获取子模块133,其中,所述第二获取子模块133包括:确定子模块1331、第一获取子模块1332和第二获取子模块1333。
第一确定子模块131,被配置为确定是否存在与所述待部署应用对应的历史应用,所述历史应用是应用标识与所述待部署应用的应用标识相同且版本号低于所述待部署应用的版本号的应用。
第一获取子模块132,被配置为在存在与所述待部署应用对应的历史应用时,获取与所述历史应用对应的历史描述文件,所述历史描述文件是所述历史应用的描述文件。
第二获取子模块133,被配置为根据所述历史描述文件与所述待部署应用的描述文件,获取与所述待部署应用对应的测试用例。
其中,确定子模块1331,被配置为通过比较所述历史描述文件与所述待部署应用的描述文件,确定所述待部署应用中是否存在模块功能与所述历史应用的各功能模块不同的差异功能模块。
第一获取子模块1332,被配置为在不存在所述差异功能模块时,获取所述历史应用对应的测试用例作为与所述待部署应用对应的测试用例。
第二获取子模块1333,被配置为在存在所述差异功能模块时,获取与所述差异功能模块对应的差异测试用例,并根据所述差异测试用例更新所述历史应用对应的测试用例,将更新后的历史应用对应的测试用例作为与所述待部署应用对应的测试用例。
图10是根据一示例性实施例示出的一种应用部署管理服务器实施例三的框图,如图10所示,在图8所示实施例的基础上,所述管理服务器还包括:第二接收模块21和认证模块22。
第二接收模块21,被配置为所述编译模块14对所述待部署应用进行编译之前,接收编译指令,所述编译指令中包括操作者的认证信息;
认证模块22,被配置为根据所述认证信息对所述操作者进行身份认证;
在认证通过时,触发所述编译模块13。
综上所述,本公开实施例提供的应用部署管理服务器,能够实现对待部署应用及其测试用例的获取、存储、编译以及向各业务服务器的分发部署,实现对应用部署过程的统一自动调度,无需人工逐一地在各业务服务器中部署应用以及对应用进行测试。而且,该管理服务器能够基于自身中存储的已部署应用,进行待部署应用的测试用例的差异化获取,进一步提高应用部署效率。
图11是根据一示例性实施例示出的一种应用部署业务服务器实施例一的框图,如图11所示,该业务服务器包括:接收模块31、存储模块32和测试模块33。
接收模块31,被配置为接收管理服务器发送的编译后的待部署应用以及与所述待部署应用对应的测试用例;其中,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录。
存储模块32,被配置为将所述编译后的待部署应用和所述测试用例存入到所述部署目录下。
测试模块33,被配置为运行所述测试用例对所述编译后的待部署应用进行测试。
图12是根据一示例性实施例示出的一种应用部署业务服务器实施例二的框图,如图12所示,在图11所示实施例的基础上,所述部署目录包括临时目录和正式目录,所述存储模块32包括:第一存储子模块321和第二存储子模块322。
第一存储子模块321,被配置为将所述编译后的待部署应用和所述测试用例存入到所述临时目录下。
所述测试模块33,被配置为在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试。
第二存储子模块322,被配置为在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试通过时,将所述编译后的待部署应用存入到所述正式目录下。
所述业务服务器还包括:删除模块34。
删除模块34,被配置为删除存入到所述临时目录中的所述编译后的待部署应用和所述测试用例。
其中,所述测试用例包括单元测试用例和基础环境测试用例。
所述测试模块33包括:第一测试子模块331和第二测试子模块332。
第一测试子模块331,被配置为运行所述基础环境测试用例,对所述待部署应用的基础运行环境进行测试。
第二测试子模块332,被配置为在所述基础环境测试用例测试通过时,运行所述单元测试用例,对所述待部署应用的各功能模块进行测试。
综上所述,本公开实施例提供的各应用部署业务服务器,能够基于管理服务器的统一分发,将待部署应用自动存入相应的部署目录下,并自动运行测试用例完成对该应用的自动测试,提高了应用部署效率。另外,设置了临时目录和正式目录,将待部署应用和测试用例在临时目录中存储并测试,进而将测试通过的该应用和测试用例从临时目录中删除,将待部署应用转存在正式目录中,进一步保证业务服务器运行应用时运行环境的干净,提高应用运行效率。
关于上述实施例中的装置,其中各个模块、子模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上描述了应用部署管理服务器的内部功能和结构,如图13所示,实际中,该管理服务器可实现为:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收应用部署指令,获取待部署应用,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
获取与所述待部署应用对应的测试用例;对所述待部署应用进行编译;
将编译后的待部署应用和所述测试用例发送给各业务服务器,以使所述各业务服务器将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,并运行所述测试用例对所述编译后的待部署应用进行测试。
以上描述了应用部署业务服务器的内部功能和结构,如图14所示,实际中,该管理服务器可实现为:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收管理服务器发送的编译后的待部署应用以及与所述待部署应用对应的测试用例;其中,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
将所述编译后的待部署应用和所述测试用例存入到所述部署目录下;
运行所述测试用例对所述编译后的待部署应用进行测试。
图15是根据一示例性实施例示出的一种应用部署管理服务器1500的框图。参照图15,该管理服务器1500包括处理组件1522,其进一步包括一个或处理器,以及由存储器1532所代表的存储器资源,用于存储可由处理组件1522的执行的指令,例如应用程序。存储器1532中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1522被配置为执行指令,以执行上述方法:
接收应用部署指令,获取待部署应用,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
获取与所述待部署应用对应的测试用例;对所述待部署应用进行编译;
将编译后的待部署应用和所述测试用例发送给各业务服务器,以使所述各业务服务器将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,并运行所述测试用例对所述编译后的待部署应用进行测试。
管理服务器1500还可以包括一个电源组件1526被配置为执行管理服务器1500的电源管理,一个有线或无线网络接口1550被配置为将管理服务器1500连接到网络,和一个输入输出(I/O)接口1558。管理服务器1500可以操作基于存储在存储器1532的操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
图16是根据一示例性实施例示出的一种应用部署业务服务器1600的框图。参照图16,该管理服务器1600包括处理组件1622,其进一步包括一个或处理器,以及由存储器1632所代表的存储器资源,用于存储可由处理组件1622的执行的指令,例如应用程序。存储器1632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1622被配置为执行指令,以执行上述方法:
接收管理服务器发送的编译后的待部署应用以及与所述待部署应用对应的测试用例;其中,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
将所述编译后的待部署应用和所述测试用例存入到所述部署目录下;
运行所述测试用例对所述编译后的待部署应用进行测试。
管理服务器1600还可以包括一个电源组件1626被配置为执行管理服务器1600的电源管理,一个有线或无线网络接口1650被配置为将管理服务器1600连接到网络,和一个输入输出(I/O)接口1658。管理服务器1600可以操作基于存储在存储器1632的操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (20)

1.一种应用部署方法,其特征在于,应用于分布式***中的管理服务器,所述分布式***中还包括N个业务服务器,N为大于1的整数,所述方法包括:
接收应用部署指令,获取待部署应用,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
获取与所述待部署应用对应的测试用例;对所述待部署应用进行编译;
将编译后的待部署应用和所述测试用例发送给各业务服务器,以使所述各业务服务器将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,并运行所述测试用例对所述编译后的待部署应用进行测试。
2.根据权利要求1所述的方法,其特征在于,所述应用部署指令中包括所述待部署应用的应用标识、版本号和描述文件;
所述获取与所述待部署应用对应的测试用例,包括:
确定是否存在与所述待部署应用对应的历史应用,所述历史应用是应用标识与所述待部署应用的应用标识相同且版本号低于所述待部署应用的版本号的应用;
若存在与所述待部署应用对应的历史应用,则获取与所述历史应用对应的历史描述文件,所述历史描述文件是所述历史应用的描述文件;
根据所述历史描述文件与所述待部署应用的描述文件,获取与所述待部署应用对应的测试用例。
3.根据权利要求2所述的方法,其特征在于,所述根据所述历史描述文件与所述待部署应用的描述文件,获取与所述待部署应用对应的测试用例,包括:
通过比较所述历史描述文件与所述待部署应用的描述文件,确定所述待部署应用中是否存在模块功能与所述历史应用的各功能模块不同的差异功能模块;
若不存在所述差异功能模块,则获取所述历史应用对应的测试用例作为与所述待部署应用对应的测试用例;
若存在所述差异功能模块,则获取与所述差异功能模块对应的差异测试用例,并根据所述差异测试用例更新所述历史应用对应的测试用例,将更新后的历史应用对应的测试用例作为与所述待部署应用对应的测试用例。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述对所述待部署应用进行编译之前,接收编译指令,所述编译指令中包括操作者的认证信息;
根据所述认证信息对所述操作者进行身份认证,若认证通过,则执行所述对所述待部署应用进行编译的步骤。
5.一种应用部署方法,其特征在于,应用于分布式***中的业务服务器,所述分布式***中包括N个业务服务器和一个管理服务器,N为大于1的整数,所述方法包括:
接收管理服务器发送的编译后的待部署应用以及与所述待部署应用对应的测试用例;其中,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
将所述编译后的待部署应用和所述测试用例存入到所述部署目录下;
运行所述测试用例对所述编译后的待部署应用进行测试。
6.根据权利要求5所述的方法,其特征在于,所述部署目录包括临时目录和正式目录;
所述将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,包括:
将所述编译后的待部署应用和所述测试用例存入到所述临时目录下;
所述运行所述测试用例对所述编译后的待部署应用进行测试,包括:
在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试通过,则将所述编译后的待部署应用存入到所述正式目录下,并删除存入到所述临时目录中的所述编译后的待部署应用和所述测试用例。
8.根据权利要求5至7中任一项所述的方法,其特征在于,所述测试用例包括单元测试用例和基础环境测试用例。
9.根据权利要求8所述的方法,其特征在于,所述运行所述测试用例对所述编译后的待部署应用进行测试,包括:
运行所述基础环境测试用例,对所述待部署应用的基础运行环境进行测试;
若所述基础环境测试用例测试通过,则运行所述单元测试用例,对所述待部署应用的各功能模块进行测试。
10.一种应用部署管理服务器,其特征在于,应用于分布式***,所述分布式***还包括N个业务服务器,N为大于1的整数,所述管理服务器包括:
第一接收模块,被配置为接收应用部署指令;
第一获取模块,被配置为获取待部署应用,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
第二获取模块,被配置为获取与所述待部署应用对应的测试用例;
编译模块,被配置为对所述待部署应用进行编译;
发送模块,被配置为将编译后的待部署应用和所述测试用例发送给各业务服务器,以使所述各业务服务器将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,并运行所述测试用例对所述编译后的待部署应用进行测试。
11.根据权利要求10所述的管理服务器,其特征在于,所述应用部署指令中包括所述待部署应用的应用标识、版本号和描述文件;
所述第二获取模块包括:
第一确定子模块,被配置为确定是否存在与所述待部署应用对应的历史应用,所述历史应用是应用标识与所述待部署应用的应用标识相同且版本号低于所述待部署应用的版本号的应用;
第一获取子模块,被配置为在存在与所述待部署应用对应的历史应用时,获取与所述历史应用对应的历史描述文件,所述历史描述文件是所述历史应用的描述文件;
第二获取子模块,被配置为根据所述历史描述文件与所述待部署应用的描述文件,获取与所述待部署应用对应的测试用例。
12.根据权利要求11所述的管理服务器,其特征在于,所述第二获取子模块包括:
确定子模块,被配置为通过比较所述历史描述文件与所述待部署应用的描述文件,确定所述待部署应用中是否存在模块功能与所述历史应用的各功能模块不同的差异功能模块;
第一获取子模块,被配置为在不存在所述差异功能模块时,获取所述历史应用对应的测试用例作为与所述待部署应用对应的测试用例;
第二获取子模块,被配置为在存在所述差异功能模块时,获取与所述差异功能模块对应的差异测试用例,并根据所述差异测试用例更新所述历史应用对应的测试用例,将更新后的历史应用对应的测试用例作为与所述待部署应用对应的测试用例。
13.根据权利要求10所述的管理服务器,其特征在于,所述管理服务器还包括:
第二接收模块,被配置为所述编译模块对所述待部署应用进行编译之前,接收编译指令,所述编译指令中包括操作者的认证信息;
认证模块,被配置为根据所述认证信息对所述操作者进行身份认证;在认证通过时,触发所述编译模块。
14.一种应用部署业务服务器,其特征在于,应用于分布式***,所述分布式***包括N个业务服务器和一个管理服务器,N为大于1的整数,所述业务服务器包括:
接收模块,被配置为接收管理服务器发送的编译后的待部署应用以及与所述待部署应用对应的测试用例;其中,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
存储模块,被配置为将所述编译后的待部署应用和所述测试用例存入到所述部署目录下;
测试模块,被配置为运行所述测试用例对所述编译后的待部署应用进行测试。
15.根据权利要求14所述的业务服务器,其特征在于,所述部署目录包括临时目录和正式目录;
所述存储模块包括:
第一存储子模块,被配置为将所述编译后的待部署应用和所述测试用例存入到所述临时目录下;
所述测试模块,被配置为在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试。
16.根据权利要求15所述的业务服务器,其特征在于,所述存储模块还包括:
第二存储子模块,被配置为在所述临时目录下运行所述测试用例对所述编译后的待部署应用进行测试通过时,将所述编译后的待部署应用存入到所述正式目录下;
所述业务服务器还包括:
删除模块,被配置为删除存入到所述临时目录中的所述编译后的待部署应用和所述测试用例。
17.根据权利要求14至16中任一项所述的业务服务器,其特征在于,所述测试用例包括单元测试用例和基础环境测试用例。
18.根据权利要求17所述的业务服务器,其特征在于,所述测试模块包括:
第一测试子模块,被配置为运行所述基础环境测试用例,对所述待部署应用的基础运行环境进行测试;
第二测试子模块,被配置为在所述基础环境测试用例测试通过时,运行所述单元测试用例,对所述待部署应用的各功能模块进行测试。
19.一种应用部署管理服务器,其特征在于,应用于分布式***,所述分布式***还包括N个业务服务器,N为大于1的整数,包括:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收应用部署指令,获取待部署应用,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
获取与所述待部署应用对应的测试用例;对所述待部署应用进行编译;
将编译后的待部署应用和所述测试用例发送给各业务服务器,以使所述各业务服务器将所述编译后的待部署应用和所述测试用例存入到所述部署目录下,并运行所述测试用例对所述编译后的待部署应用进行测试。
20.一种应用部署业务服务器,其特征在于,应用于分布式***,所述分布式***包括N个业务服务器和一个管理服务器,N为大于1的整数,包括:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收管理服务器发送的编译后的待部署应用以及与所述待部署应用对应的测试用例;其中,所述待部署应用中包括源代码和配置文件,所述配置文件中包含所述待部署应用的部署目录;
将所述编译后的待部署应用和所述测试用例存入到所述部署目录下;
运行所述测试用例对所述编译后的待部署应用进行测试。
CN201510353829.4A 2015-06-24 2015-06-24 应用部署方法和服务器 Active CN104978191B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510353829.4A CN104978191B (zh) 2015-06-24 2015-06-24 应用部署方法和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510353829.4A CN104978191B (zh) 2015-06-24 2015-06-24 应用部署方法和服务器

Publications (2)

Publication Number Publication Date
CN104978191A CN104978191A (zh) 2015-10-14
CN104978191B true CN104978191B (zh) 2018-06-19

Family

ID=54274729

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510353829.4A Active CN104978191B (zh) 2015-06-24 2015-06-24 应用部署方法和服务器

Country Status (1)

Country Link
CN (1) CN104978191B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528404B (zh) * 2016-09-30 2019-03-29 腾讯科技(深圳)有限公司 移动应用程序测试方法和装置
CN107943486B (zh) * 2017-12-19 2020-12-18 北京微网通联股份有限公司 一种多语言代码编译方法、分发方法、装置和***
CN108228452B (zh) * 2017-12-28 2021-04-06 微梦创科网络科技(中国)有限公司 一种基于简单工厂模式的测试方法及测试装置
CN110392080B (zh) * 2018-04-20 2023-06-06 杭州海康威视***技术有限公司 一种基于分布式***的部署方法、装置及分布式***
CN108959086B (zh) * 2018-06-29 2023-02-03 北京金山数字娱乐科技有限公司 程序包测试部署方法、装置、***、电子设备及存储介质
CN109120432B (zh) * 2018-07-18 2021-10-15 北京奇艺世纪科技有限公司 一种故障服务器定位方法及装置
CN109032643A (zh) * 2018-07-26 2018-12-18 北京百度网讯科技有限公司 软件更新的方法和装置
CN109614109B (zh) * 2018-11-16 2022-02-01 中国银行股份有限公司 应用部署方法、装置和***
CN109885476A (zh) * 2018-12-14 2019-06-14 平安万家医疗投资管理有限责任公司 自动化测试方法及装置、终端和计算机可读存储介质
CN109858226A (zh) * 2019-01-31 2019-06-07 叶春林 联网存储安全的保障***
CN109814874B (zh) * 2019-02-20 2023-03-24 湖南国科微电子股份有限公司 一种编译结果输出控制方法、***及应用
US10908892B2 (en) 2019-03-12 2021-02-02 International Business Machines Corporation Generating and deploying object code files compiled on build machines
CN111124934A (zh) * 2019-12-31 2020-05-08 中国银行股份有限公司 Java应用部署状态检测方法及装置
CN111242577A (zh) * 2020-01-13 2020-06-05 中国建设银行股份有限公司 Rpa流程自动化机器人部署方法、装置及电子设备
CN111414172B (zh) * 2020-03-18 2023-03-31 时时同云科技(成都)有限责任公司 应用软件自动部署发布***及方法
CN114924755A (zh) * 2022-05-23 2022-08-19 深圳微言科技有限责任公司 一种应用部署方法和***
CN116541308B (zh) * 2023-07-03 2023-10-24 芯耀辉科技有限公司 一种回归测试方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420325A (zh) * 2008-11-21 2009-04-29 华为技术有限公司 一种软件包的自动部署方法、装置和***
CN103198010A (zh) * 2012-01-06 2013-07-10 腾讯科技(深圳)有限公司 软件测试方法、装置及***
CN103581247A (zh) * 2012-07-30 2014-02-12 杭州洱海科技有限公司 一种基于云计算环境的分布式Web测试方法
CN104391795A (zh) * 2014-12-03 2015-03-04 北京京东尚科信息技术有限公司 一种分布式***中自动化测试覆盖率的测试方法及***
CN104598382A (zh) * 2015-01-30 2015-05-06 北京京东尚科信息技术有限公司 一种测试控制方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050289536A1 (en) * 2004-06-23 2005-12-29 International Business Machines Coporation Automated deployment of an application

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420325A (zh) * 2008-11-21 2009-04-29 华为技术有限公司 一种软件包的自动部署方法、装置和***
CN103198010A (zh) * 2012-01-06 2013-07-10 腾讯科技(深圳)有限公司 软件测试方法、装置及***
CN103581247A (zh) * 2012-07-30 2014-02-12 杭州洱海科技有限公司 一种基于云计算环境的分布式Web测试方法
CN104391795A (zh) * 2014-12-03 2015-03-04 北京京东尚科信息技术有限公司 一种分布式***中自动化测试覆盖率的测试方法及***
CN104598382A (zh) * 2015-01-30 2015-05-06 北京京东尚科信息技术有限公司 一种测试控制方法和装置

Also Published As

Publication number Publication date
CN104978191A (zh) 2015-10-14

Similar Documents

Publication Publication Date Title
CN104978191B (zh) 应用部署方法和服务器
CN109840429B (zh) 智能合约部署、调用方法和装置
US9588752B2 (en) Performing unattended software installation
CN102413022B (zh) 一种应用调试方法和***
CN109492053B (zh) 用于访问数据的方法和装置
US9658846B2 (en) Software configuration control wherein containers are associated with physical storage of software application versions in a software production landscape
CN107678748B (zh) 一种源代码文件编译方法及装置
WO2020015191A1 (zh) 业务规则的发布管理方法、电子装置及可读存储介质
CN113434158B (zh) 一种大数据组件的自定义管理方法、装置、设备及介质
CN109460358B (zh) 基于Cmdb的配置管理方法及***
CN110865824A (zh) 一种基于无障碍服务实现缄默安装的安卓渗透方法和装置
CN106656927A (zh) 将Linux账号加入AD域的方法及装置
CN111966738A (zh) 一种通过选择前端配置自动实现后端编程的***
CN111881042A (zh) 自动化测试脚本的生成方法、装置和电子设备
KR102352265B1 (ko) 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법
CN108897588B (zh) 一种用于模块间通信的路由方法和路由装置
CN105550342B (zh) 一种全透明的分布式数据库的数据处理方法
US20110307855A1 (en) Software project management apparatuses and methods thereof
CN110825370B (zh) 移动端应用开发方法、装置及***
CN110187890A (zh) 项目部署的方法、电子设备、存储介质
CN109144595A (zh) 基于插件框架启动组件的方法及装置
CN105610908B (zh) 一种基于安卓设备的samba服务实现方法及***
CN116739397B (zh) 一种新能源指标的动态管理方法
CN108536449A (zh) Web项目部署方法及装置
CN116578651B (zh) 数据表结构同步方法、***及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant