发明内容
本发明实施例提供了一种版本的构建系统及方法,以解决现有的版本构建时间长的问题。
本发明实施例提供了一种版本的构建系统,该系统包括主控服务器、与所述主控服务器相连的版本构建服务器以及与所述版本构建服务器相连的版本构建机,其中:
所述主控服务器,用于根据获得的请求生成控制命令,将所述控制命令对应下发至所述版本构建服务器,以及根据所述版本构建服务器上报的构建信息生成回执信息,所述控制命令包括版本构建命令;
所述版本构建服务器,用于向所述版本构建机下发来自所述主控服务器的版本构建命令或完整流程命令,以及向所述主控服务器上报所述版本构建机反馈的构建信息;
所述版本构建机,用于根据接收的来自所述版本构建服务器的版本构建命令或完整流程命令进行软硬件版本的构建,并向所述版本构建服务器反馈所述构建信息。
优选地,所述控制命令还包括版本测试命令,所述系统还包括与所述主控服务器相连的版本测试服务器以及与所述版本测试服务器相连的测试机;
所述主控服务器,还用于将所述版本测试命令对应下发至所述版本测试服务器,以及根据所述版本测试服务器上报的测试信息生成回执信息;
所述版本测试服务器,用于向所述测试机下发来自所述主控服务器的版本测试命令,以及,向所述主控服务器上报所述测试机反馈的测试信息;
所述测试机,用于根据接收的来自所述版本测试服务器的版本测试命令进行软硬件版本的测试,并向所述版本测试服务器反馈所述测试信息。
优选地,所述控制命令还包括完整流程命令;所述主控服务器,还用于将所述完整流程命令对应下发至所述版本构建服务器,以及在接收所述版本构建服务器上报的所述构建信息后,向所述版本测试服务器下发所述版本测试命令。
优选地,所述控制命令还包括版本提交命令,所述主控服务器,还用于根据所述版本提交命令将当前软硬件版本提交至目标路径。
优选地,所述主控服务器,具体用于根据本地输入的所述请求或者接收客户端输入的所述请求或者接收终端发送的所述请求生成所述控制命令。
优选地,所述版本构建机包括多系统的版本构建机;所述版本构建服务器,具体用于接收所述主控服务器发送的所述版本构建命令,为所述版本构建命令分配版本构建机,将所述版本构建命令下发至对应的版本构建机。
优选地,所述测试机包括多系统的测试机;所述版本测试服务器,具体用于接收所述主控服务器发送的所述版本测试命令,为所述版本测试命令分配测试机,将所述版本测试命令下发至对应的测试机。
优选地,所述主控服务器包括逻辑控制模块、基于互联网的控制模块和基于短信的控制模块,其中:
所述基于互联网的控制模块,用于接收用户通过客户端输入的用户请求或业务请求,对所述用户请求或所述业务请求进行解析后发送给所述逻辑控制模块,所述业务请求包括二次开发业务请求;
所述基于短信的控制模块,用于接收用户通过终端发送的短信,对所述短信进行解析后发送给所述逻辑控制模块;
所述逻辑控制模块,用于接收本地输入的所述用户请求、所述基于互联网的控制模块发送的解析结果或基于短信的控制模块发送的解析结果,根据所述基于互联网的控制模块发送的解析结果、基于短信的控制模块发送的解析结果或本地输入的所述用户请求实时或定时生成所述控制命令。
优选地,所述逻辑控制模块,还用于为所述用户请求或业务请求分配标识,以及根据所述标识对应保存用户上传的文件或所述主控服务器生成的所述回执信息。
本发明实施例还提供了一种版本的构建方法,该方法包括:
主控服务器根据输入的请求生成控制命令;
当所述控制命令为版本构建命令时,所述主控服务器向版本构建服务器发送所述控制命令,接收所述版本构建服务器根据所述控制命令上报的构建信息,并根据所述构建信息生成回执信息。
优选地,所述方法还包括:
当所述控制命令为版本测试命令时,所述主控服务器向版本测试服务器发送所述控制命令,接收所述版本测试服务器根据所述控制命令上报的测试信息,并根据所述测试信息生成回执信息;或者
当所述控制命令为完整流程命令时,所述主控服务器向版本构建服务器发送所述控制命令,接收所述版本构建服务器根据所述控制命令上报的构建信息后向所述版本测试服务器发送所述控制命令,接收所述版本测试服务器根据所述控制命令上报的测试信息,并根据所述测试信息生成回执信息;或者
当所述控制命令为版本提交命令时,所述主控服务器根据所述控制命令将当前软硬件版本提交至目标路径。
优选地,所述主控服务器根据输入的请求生成控制命令包括:
所述主控服务器根据本地输入或远端输入的用户请求生成所述控制命令;或者,所述主控服务器根据远端输入的业务请求生成所述控制命令,所述业务请求包括二次开发业务请求。
上述版本的构建系统及方法,有利于提高效率,缩短开发周期,实现全天候自动化的版本构建和自动化测试服务,有效地保证了所构建版本的质量。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例通过对自动化构建和自动化测试业务的深入分析,提出了一种可以执行自动化构建和自动化测试的系统,依托此系统,可以更加方便和有效地获得高质量的软件安装版本。同时确保了在任何时候任何地方,只要有版本构建的需要,就可以通过本发明的系统实现全天候、全自动的版本构建和自动化测试功能,缩短了版本构建周期、人员交互周期同时缩减了成本开销提升了工作效率。
本发明实施例提供了一种版本的构建系统,该系统包括主控服务器、与所述主控服务器相连的版本构建服务器以及与所述版本构建服务器相连的版本构建机,其中:
所述主控服务器,用于根据获得的请求生成控制命令,将所述控制命令对应下发至所述版本构建服务器,以及根据所述版本构建服务器上报的构建信息生成回执信息,所述控制命令包括版本构建命令;
所述版本构建服务器,用于向所述版本构建机下发来自所述主控服务器的版本构建命令或完整流程命令,以及向所述主控服务器上报所述版本构建机反馈的构建信息;
所述版本构建机,用于根据接收的来自所述版本构建服务器的版本构建命令或完整流程命令进行软硬件版本的构建,并向所述版本构建服务器反馈所述构建信息。
另外,所述控制命令还可以包括版本测试命令,所述系统还包括与所述主控服务器相连的版本测试服务器以及与所述版本测试服务器相连的测试机;所述主控服务器,还用于将所述版本测试命令对应下发至所述版本测试服务器,以及根据所述版本测试服务器上报的测试信息生成回执信息;所述版本测试服务器,用于向所述测试机下发来自所述主控服务器的版本测试命令,以及,向所述主控服务器上报所述测试机反馈的测试信息;所述测试机,用于根据接收的来自所述版本测试服务器的版本测试命令进行软硬件版本的测试,并向所述版本测试服务器反馈所述测试信息。
进一步地,所述控制命令还可以包括完整流程命令;所述主控服务器,还用于将所述完整流程命令对应下发至所述版本构建服务器,以及在接收所述版本构建服务器上报的所述构建信息后,向所述版本测试服务器下发所述版本测试命令。
如图1所示,为本发明实施例中的自动化构建和自动化测试系统的整体结构图,该系统包括主控服务器101、分别与所述主控服务器101相连的版本构建服务器102和版本测试服务器103、与所述版本构建服务器102相连的版本构建机以及与所述版本测试服务器103相连的测试机,其中:
所述主控服务器,用于根据获得的请求生成控制命令,将所述控制命令对应下发至所述版本构建服务器和/或所述版本测试服务器,以及根据所述版本构建服务器上报的构建信息或所述版本测试服务器上报的测试信息生成回执信息,所述控制命令包括完整流程命令、版本构建命令和版本测试命令;
所述版本构建服务器,用于向所述版本构建机下发来自所述主控服务器的版本构建命令或完整流程命令,以及向所述主控服务器上报所述版本构建机反馈的构建信息;
所述版本构建机,用于根据接收的来自所述版本构建服务器的版本构建命令或完整流程命令进行软硬件版本的构建,并向所述版本构建服务器反馈所述构建信息;
所述版本测试服务器,用于向所述测试机下发来自所述主控服务器的版本测试命令,以及,向所述主控服务器上报所述测试机反馈的测试信息;
所述测试机,用于根据接收的来自所述版本测试服务器的版本测试命令进行软硬件版本的测试,并向所述版本测试服务器反馈所述测试信息。
另外,所述控制命令还包括版本提交命令,所述主控服务器,还用于根据所述版本提交命令将当前软硬件版本提交至目标路径。
上述请求包括用户请求和业务请求,用户请求指版本构建请求、版本测试请求等;业务请求指二次开发业务请求等;
在上述系统中,主控服务器是一个总的控制命令响应、下发、结果反馈的装置,主控服务器将从本地、互联网、短信来的用户请求经过解析生成具体的控制指令,或者将从互联网来的业务请求解析生成具体的控制指令,并根据这些具体的指令向版本构建服务器或版本测试服务器进行命令下发。待下方的版本构建或测试服务器反馈后,根据具体结果由主控服务器生成回执消息,经由本地、网络、短信控制模块反馈给用户。
上述主控服务器包括逻辑控制模块、基于互联网(Internet)的控制模块和基于短信的控制模块;基于Internet的控制模块的作用是允许用户通过Internet访问来实现对主控服务器的控制和信息察看;用户通过带有登陆口令控制的客户端经Internet连接到主控服务器,向主控服务器发送请求,主控服务器收到请求后进行解析展开相关的业务。用户可以通过互联网客户端实时察看过程信息和相关LOG信息。基于短信的控制模块的作用是允许用户通过短信平台来实现对主控服务器的控制和信息察看;用户通过手机短信向主控服务器的短信控制模块的号码发送请求,根据主控服务器短信模块的短信回复来进行选择,进而触发版本构建和版本测试业务;同时相关的结果信息和LOG信息通过短信发送到用户的手机号码上。该逻辑控制模块的作用是提供本地的实时控制和本地的可编辑异步控制,实时控制允许用户实时地对主控服务器做出操作,可以进行版本构建和自动化测试等实时操作;可编辑异步控制,允许用户编辑配置文件,设置运行脚本,定时运行,例如用户可以设置在下班后进行自动构建和自动化测试,同时提交版本和报告。用户可以实时地查看各个活跃任务的相关进度和有关日志(LOG)信息。
其中,所述主控服务器,具体用于根据本地输入的所述请求或者接收客户端输入的所述请求或者接收终端发送的所述请求生成所述控制命令。上述客户端可以为基于浏览器的客户端,允许用户使用客户端登陆到主控服务器,客户端上有登录界面,经过身份核对的授权用户登录到主控服务器后,将可以建立和使用已经建立的用户数据进行版本的构建和相关文件的上传工作,同时也是远端主控服务器结果和版本的反馈终端,从客户端上可以看到版本构建的过程结果和相关的LOG文件,通过客户端可以下载主控服务器上完成构建的版本。
上述版本构建服务器用来接收主控服务器的版本构建请求,并发地处理版本构建的相关业务。当主控服务器的版本构建请求到达,版本构建服务器根据请求的相关数据解析出版本构建所需的外部信息。针对本次构建建立相关的数据和文件,分配版本构建机启动版本构建过程;以及接收版本构建机生成的最新版本和相关LOG,放在适合的数据文件中,发送至主控服务器。
上述版本构建机是一个机器群落,包含了多台版本构建机器。因为同时能进行多个版本的构建,有些构建对系统某些资源是独占的,因此预备多台机器可以处理并发构建的需求。同时这个机器群落包含了windows、mac、linux等多个系统的机器,目的就是满足版本构建的多系统的要求。每个版本构建机都与版本构建服务器连接可以与之进行通信,以便及时传送回所构建的版本和LOG信息。
上述版本测试服务器用来接收主控服务器的自动化测试请求,并发地处理自动化测试的相关业务。当主控服务器的自动化测试请求到达,版本测试服务器根据请求建立相关的数据和文件,分配测试机,启动自动化测试程序进行自动化测试。当测试结束接收测试机的自动化测试报告和相关LOG,放在适合的数据文件中,发送至主控服务器。
上述测试机是一个机器群落,包含了多台测试机器。测试机群落里面包含了windows、mac和linux等系统的测试机器各若干台。目的是为了满足多个测试任务的并发执行。每个测试机都与版本测试服务器连接可以与之进行通信,以便及时传送回自动化测试报告和相关LOG。
上述系统在研发和制造领域构建软件版本和测试时可以实现自动化的版本构建和自动化的软件测试,缩短了开发周期;同时对于异地用户,还可以提供基于Internet的服务,对于环境不便没有Internet网络的用户可以提供基于短信的服务,使得对于软件版本的构建和版本质量的保证方面做到了全天候的全地域的支持;也可以快速响应远端和本地的需求,节省人员交互沟通的成本,提高生产率和产品质量。上述系统,对于高端用户和高端用户团体可以根据自己的喜好对软件进行自定义的开发和扩展,同时还可以通过授权登录到主控制服务器,完成用户自定义软件从文件到软件版本的过程。
本发明实施例还提供了一种软硬件版本的构建和测试方法,该方法包括:
步骤一、主控服务器根据输入的请求生成控制命令;
该步骤可以包括:所述主控服务器根据本地输入或远端输入的用户请求生成所述控制命令;或者,所述主控服务器根据远端输入的业务请求生成所述控制命令,所述业务请求包括二次开发业务请求。
步骤二、当所述控制命令为版本构建命令时,所述主控服务器向版本构建服务器发送所述控制命令,接收所述版本构建服务器根据所述控制命令上报的构建信息,并根据所述构建信息生成回执信息。
另外,该方法还可以包括:当所述控制命令为版本测试命令时,所述主控服务器向版本测试服务器发送所述控制命令,接收所述版本测试服务器根据所述控制命令上报的测试信息,并根据所述测试信息生成回执信息;或者,当所述控制命令为完整流程命令时,所述主控服务器向版本构建服务器发送所述控制命令,接收所述版本构建服务器根据所述控制命令上报的构建信息后向所述版本测试服务器发送所述控制命令,接收所述版本测试服务器根据所述控制命令上报的测试信息,并根据所述测试信息生成回执信息;或者,当所述控制命令为版本提交命令时,所述主控服务器根据所述控制命令将当前软硬件版本提交至目标路径。
如图2所示,本发明自动化构建和自动化测试系统进行业务的流程图,该主控服务器包括逻辑控制模块、基于Internet的控制模块和基于短信的控制模块,本地逻辑逻辑控制模块是主控服务器的核心控制模块,基于Internet的控制模块和基于短信的控制模块都依赖于逻辑控制模块的逻辑控制。该系统进行业务的过程包括以下步骤:
S201、逻辑控制模块作为主控服务器本地运行的逻辑控制模块,它接受本地的版本构建和自动化测试请求,并且负责显示日志等信息,同时它还接受本地的预约式的配置运行方式,用户通过编辑配置文件可以使得逻辑控制模块在某一时刻进行某项操作,比如在晚上1点构建某一版本并且进行自动化测试,结束后将版本提交至某路经;
另外,该模块还可以接收上传的数据文件,并且负责日志等信息的收集,同时还负责建立用户数据库,存储用户上传的代码和配置文件,保存用户版本构建请求,为每一个版本构建请求建立一个唯一的标识,客户端将通过这个唯一的标识来访问对应的数据和信息。
S202、基于Internet的控制模块,属于B/S结构中的服务器端,它接受用户使用浏览器(Browser)发送的请求,将请求解析后通过本地的逻辑控制模块进行处理;
该请求包括版本构建请求、版本测试请求和业务请求等,业务请求如二次开发业务请求;
S203、基于短信的控制模块在主控服务器上有个短信收发终端,能够接收外部短信的同时向外部发送短信,当用户向主控服务器的短信终端发送短信的时候短信终端将根据接收的内容对短信进行解析,根据解析的内容通过本地的逻辑控制模块进行处理;
S204、本地的逻辑控制模块解析本地、Internet、短信的请求生成控制命令,该控制命令主要由如下四类组成:完整流程命令、版本构建命令、版本测试命令和版本提交命令;
核心编译解释和图形化环境肩负运行跨平台可视化软件安装包的责任,它饱含了一组最小集的软件安装包运行所需要的文件。
S205、判断生成的控制命令是否是完整流程命令,如果是完整流程命令,则转向S206,如果不是完整流程命令,则转向S207;
S206、根据控制命令生成可下达的版本构建命令,转向步骤208;
S207、判断该控制命令是否是版本构建命令,如果是,则转向S206,如果不是,则转向S210;
S208、版本构建服务器接受版本构建命令,协调统筹版本构建过程,同时向主控服务器返回版本和日志信息;
S209、主控服务器接受提交的信息生成回执信息;结束;
主控服务器从版本构建服务器上得到构建好的版本同时根据传递的日志信息,根据分析生成回执信息;从版本测试服务器上得到的测试报告,根据分析生成回执信息;
用户根据回执信息就可以查看主控服务器对于用户请求的处理情况和结果。
S210、判断该控制命令是否是版本测试命令,如果是版本测试命令,则转向S211,否则转向S213;
S211、根据控制命令生成可下达的版本测试命令,下达至版本测试服务器;
S212、版本测试服务器接受版本测试命令,协调统筹版本测试过程,同时向主控服务器返回测试报告和日志信息;并转向步骤209;
S213、确定该控制命令是版本提交命令,将S208主控服务器收到的版本提交至相关路径,转向步骤209。
完整流程命令将执行从版本构建、自动化测试到版本提交的全部过程。而版本构建命令仅进行版本构建活动,版本测试命令仅进行自动化版本测试活动,版本提交命令仅进行版本提交活动。
如图3所示,为本发明实施例中基于浏览器的客户端进行业务的流程图,该过程包括以下步骤:
S301、登录验证,对于这种附加的软件功能和业务,由于牵扯后台维护的工作,往往这些业务的展开都是有偿的,只有获取相关的权限才能展开该业务。因此,高端用户、用户团体或者二次开发者可以通过相关渠道获取到登录主控服务器授权。登录之后就可以转到S302或者S303执行;
S302、如果是初次用户登录可以选择建立用户数据,通过浏览器填充相关表单,提交给主控服务器中基于Internet的控制模块。基于Internet的控制模块根据用户提交的内容经由逻辑控制模块建立当前用户的数据信息;
S303、如果用户之前已经建立过用户数据,则可以通过此过程察看相关数据和已经提交的文件信息和版本构建信息等;
无论是S302还是S303都可以通过S304过程上传和删除文件、代码以及构建相关配置项。
S304、文件数据上传,用户可以通过此过程将修改的代码,配置文件,资源文件等上传至主控服务器的相关用户数据库中,同时还可以将版本构建请求等控制信息和配置项上传至主控服务器;
S305、完成远端版本构建过程,当用户提交了版本构建所需的相关项之后,就可以启动远端的版本构建过程,主控服务器收到版本构建请求之后将开辟新的版本构建进程对用户的远端版本构建命令进行响应。最终生成新的软件安装版本和日志文件,存放于相应的登录用户的数据库中,供用户提取;
S306、版本和日志获取,当S305过程结束之后服务器上用户数据库中将会有最终软件版本和日志信息。用户可以通过数据察看界面察看到相关文件信息,下载生成的新的软件版本和日志。
如图4所示,为本发明实施例中版本构建服务器进行业务的流程图,该过程包括以下步骤:
S401、由主控服务器将下达的版本构建命令传递到版本构建服务器;
版本构建服务器通过版本构建命令可以确定一个版本构建任务,以及所需要的所有外部输入。版本构建服务器可能同时接收到多个版本构建指令,版本构建服务器将可以产生多个版本构建进程来控制并发的版本构建过程。
S402、版本构建服务器收到版本构建指令后,维护自身的版本构建进程队列,协调其控制的各个版本构建机;当分配了版本构建资源后,版本构建服务器就会向相关的版本构建机发送版本构建指令,转到S403、S404、S405执行;
当剩余的版本构建机资源允许进行当前版本构建任务时,版本构建服务器会产生新的版本构建进程并分配相关的版本构建资源。当剩余版本构建资源不允许进行当前版本构建任务时,版本构建服务器会将当前版本构建任务加入等待队列,当有版本构建资源释放时,会再次检查队列中等待任务,当有满足任务时,从等待队列中将此任务取出,建立版本构建进程并分配相关资源。
S403、windows版本构建机群构建windows版本;
S404、mac版本构建机群构建mac版本;
S405、linux版本构建机群构建linux版本;
版本构建服务器根据当前构建版本的类型和当前类型版本构建机器的使用情况选择具体的版本构建机器进行版本构建。每一个版本构建机上都有相应版本构建的所需的自动化构建工具和相关的下载上传工具。
S406、版本构建机将构建好的版本发送至版本构建服务器,由版本构建服务器决定后续的操作。
后续操作一般包括将多平台软件版本生成三合一或者二合一软件包,或者直接将软件版本提交至主控服务器。
如图5所示,为本发明实施例中版本测试服务器进行业务的流程图,该过程包括以下步骤:
S501、由主控服务器将下达的版本测试命令传递到版本测试服务器;
版本测试服务器通过版本测试命令可以确定一个版本测试任务,以及所需要的所有外部输入。版本测试服务器可能同时接收到多个版本测试指令,版本测试服务器将可以产生多个版本测试进程来控制并发的版本测试过程。
S502、版本测试服务器收到版本测试指令后,维护自身的版本测试进程队列,协调其控制的各个测试机;当分配了版本测试资源后,版本测试服务器就会向相关的测试机发送版本测试指令,转到S503、S504、S505执行;
当剩余的测试机资源允许进行当前版本测试任务时,版本测试服务器会产生新的版本测试进程并分配相关的资源。当剩余版本测试资源不允许进行当前版本测试任务时,版本测试服务器会将当前版本测试任务加入等待队列,当有版本测试资源释放时,会再次检查队列中等待任务,当有满足任务时,从等待队列中将此任务取出,建立版本测试进程并分配相关资源。
S503、windows测试机对windows版本进行测试;
S504、mac测试机对mac版本进行测试;
S505、linux测试机对linux版本进行测试;
版本测试服务器根据当前测试任务选择具体的测试机器进行自动化测试。每一个测试机上都有相应版本测试所需的自动化测试工具和相关的下载上传工具。
S506、生成测试报告,自动化测试的目的就是测试软件版本的质量,其重要的输出就是测试报告。自动化测试工具完成自动化测试后会生成测试报告,上传至版本测试服务器。
将有利于提高效率,缩短开发周期,实现全天候自动化的版本构建和自动化测试服务,有效的保证了所构建版本的质量。
上述软硬件版本的构建和测试方法,有利于提高效率,缩短开发周期,实现全天候自动化的版本构建和自动化测试服务,有效地保证了所构建版本的质量。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,上述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。