CN109725911A - 一种多环境项目部署方法、装置、存储介质及处理器 - Google Patents
一种多环境项目部署方法、装置、存储介质及处理器 Download PDFInfo
- Publication number
- CN109725911A CN109725911A CN201711046103.1A CN201711046103A CN109725911A CN 109725911 A CN109725911 A CN 109725911A CN 201711046103 A CN201711046103 A CN 201711046103A CN 109725911 A CN109725911 A CN 109725911A
- Authority
- CN
- China
- Prior art keywords
- code
- environment
- item code
- disposed
- project
- 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.)
- Pending
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种多环境项目部署方法、装置、存储介质及处理器,该方法包括:获得项目配置文件;基于获得的项目配置文件,创建配置库;获得待部署的项目代码,所述项目代码具有代码版本号;以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码;从所述配置库中获取与所述待部署的项目代码的代码版本号相对应的项目配置文件;将满足所述测试规则的待部署的项目代码与其关于所述代码版本号相对应的项目配置文件进行打包,得到包文件;将所述包文件传输到待部署的部署环境的部署服务器,触发所述部署服务器将所述包文件中待部署的项目代码及项目配置文件部署到web服务器上。
Description
技术领域
本发明涉及软件开发技术领域,特别涉及一种多环境项目部署方法、装置、存储介质及处理器。
背景技术
在现代软件开发流程中,敏捷开发是目前最受欢迎的。在敏捷开发中,最重要的原则是增量交付与持续集成,一般敏捷开发的周期为2~4周,在短时间内,需要开发团队完成产品迭代,需要经过需求讨论、设计、开发、测试与部署等环节,如何高质量、高效率的交付项目的增量产品,成为每个敏捷开发的团队需要共同面对的问题。
因此,如何快速实现多环境项目部署及自动化测试,成为急需解决且能大大节省时间的环节。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的多环境项目部署方法、装置、存储介质及处理器。
本申请提供了一种多环境项目部署方法,包括:
获得项目配置文件,所述项目配置文件为需要根据不同部署环境进行修改的项目配置文件;
基于获得的项目配置文件,创建配置库,所述配置库中至少包括:不同的部署环境所绑定的项目配置文件;
获得待部署的项目代码,所述项目代码具有代码版本号;
以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码;
从所述配置库中获取与所述代码版本号相对应的项目配置文件;
将满足所述测试规则的待部署的项目代码与其关于所述代码版本号相对应的项目配置文件进行打包,得到包文件;
将所述包文件传输到待部署的部署环境的部署服务器,触发所述部署服务器将所述包文件中待部署的项目代码及项目配置文件部署到web服务器上。
上述方法,优选的,以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码,包括:
确定部署环境为开发环境及所述开发环境对应的代码质量检测与单元测试的测试方式;
以所述代码质量检测与单元测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
上述方法,优选的,以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码,包括:
确定部署环境为测试环境及所述测试环境对应的代码安全检测与集成测试的测试方式;
以所述代码安全检测与集成测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
上述方法,优选的,以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码,包括:
确定部署环境为验收环境或生产环境及所述验收环境或所述生成环境对应的回归测试方式;
以所述回归测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
本申请还提供了一种多环境项目部署装置,包括:
配置获取单元,用于获得项目配置文件,所述项目配置文件为需要根据不同部署环境进行修改的项目配置文件;
配置库创建单元,用于基于获得的项目配置文件,创建配置库,所述配置库中至少包括:不同的部署环境所绑定的项目配置文件;
代码获取单元,用于获得待部署的项目代码,所述项目代码具有代码版本号;
项目测试单元,用于以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码;
文件获取单元,用于从所述配置库中获取与所述代码版本号相对应的项目配置文件;
文件打包单元,用于将满足所述测试规则的待部署的项目代码与其关于所述代码版本号相对应的项目配置文件进行打包,得到包文件;
文件传输单元,用于将所述包文件传输到待部署的部署环境的部署服务器,触发所述部署服务器将所述包文件中待部署的项目代码及项目配置文件部署到web服务器上。
上述装置,优选的,所述项目测试单元至少包括:
第一测试子单元,用于确定部署环境为开发环境及所述开发环境对应的代码质量检测与单元测试的测试方式,以所述代码质量检测与单元测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
上述装置,优选的,所述项目测试单元至少包括:
第二测试子单元,用于确定部署环境为测试环境及所述测试环境对应的代码安全检测与集成测试的测试方式,以所述代码安全检测与集成测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
上述装置,优选的,所述项目测试单元至少包括:
第三测试子单元,用于确定部署环境为验收环境或生产环境及所述验收环境或所述生成环境对应的回归测试方式,以所述回归测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
本申请还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任意一项所述的多环境项目部署方法。
本申请还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的多环境项目部署方法。
借由上述技术方案,本发明提供的一种多环境项目部署方法、装置、存储介质及处理器,在项目代码部署到相应的部署环境之前,通过对项目代码针对不同的部署环境进行相应的测试,从而将满足测试规则的项目代码再进行部署,减少开发人员与测试人员的沟通次数,节省测试人员做回归测试的工作量,进而优化开发与发布流程,缩短开发人员的部署和自测的时间,提高系统的稳定性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例提供的一种多环境项目部署方法的实现流程图;
图2为本申请实施例提供的一种多环境项目部署方法的部分流程图;
图3为本申请实施例的应用示例图;
图4为本申请实施例提供的一种多环境项目部署方法的另一部分流程图;
图5为本申请实施例的另一应用示例图;
图6为本申请实施例提供的一种多环境项目部署方法的又一部分流程图;
图7为本申请实施例的又一应用示例图;
图8为本申请实施例提供的一种多环境项目部署装置的结构示意图;
图9为本申请实施例提供的一种多环境项目部署装置的部分结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参考图1,为本申请实施例提供的一种多环境项目部署方法的实现流程图,在本实施例中,该部署方法用于将待部署的项目代码通过部署服务器部署到相应的部署环境中,如开发环境、测试环境、生产环境(正式环境)、验收环境等。
在本实施例中,该方法可以包括以下步骤:
步骤101:获得项目配置文件,所述项目配置文件为需要根据不同部署环境进行修改的项目配置文件。
其中,开发人员可以通过各种输入终端将项目配置文件输入到开发系统中,这些项目配置文件为针对具有不同代码版本号的项目代码的配置文件,本实施例中对这些项目配置文件进行获取,并提取出其中需要根据不同的部署环境进行修改配置的项目配置文件,也就是剔除适配多种部署环境无需修改配置的项目配置为文件,保留需要修改的项目配置文件。这一过程中,保留项目配置文件中的原始项目目录结构,并按照项目目录结构存放配置文件,其中,最外层文件夹为项目名称。
步骤102:基于获得的项目配置文件,创建配置库。所述配置库中至少包括:不同的部署环境所绑定的项目配置文件。
其中,本实施例中可以依次根据不同的部署环境修改提取出的项目配置文件,为每个部署环境绑定对应的项目配置文件,从而创建配置库,并将项目配置文件提交到配置库中。
需要说明的是,配置库中可以采用与代码库相同的管理工具,而代码库即为存储有各种版本号的项目代码的库,配置库中的项目配置文件为针对具有不同代码版本号的项目代码的配置文件。
步骤103:获得待部署的项目代码,所述项目代码具有代码版本号。
其中,所述项目代码具有代码版本号。本实施例中可以利用自动化构建工具,从代码库中检出需要部署的指定代码版本号的项目代码,并对待部署的项目代码进行编译。
步骤104:以不同的部署环境各自所对应的代码测试方式,对待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
例如,确定生产环境或者开发环境所对应的代码测试方式,再以所述代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
步骤105:从所述配置库中获取与所述待部署的项目代码的代码版本号相对应的项目配置文件。
具体的,本实施例中利用自动化构建工具从步骤102所创建的配置库中检出与步骤103中所构建的项目代码对应的代码版本号的全部项目配置文件,并编写脚本。
步骤106:将满足所述测试规则的待部署的项目代码与其关于代码版本号相对应的项目配置文件进行打包,得到包文件。
其中,本实施例中是将编译好的项目代码与对应部署环境的项目配置文件打包在一起,此时可以不合并项目配置文件与项目代码,项目代码在包文件中是相互独立的,只是在同一个包中。
步骤107:将所述包文件传输到待部署的部署环境的部署服务器,触发所述部署服务器进行项目部署,如将所述包文件中待部署的项目代码及项目配置文件部署到web服务器上。
其中,本实施例中将打包好的包文件传输到部署系统的仓库中,并分发到相应的部署服务器上。需要说明的是,在分发包文件时,分发只传输需要部署的项目代码的包文件,而不是全部。
而相应的,在部署服务器接收到包文件之后,将包文件进行解压,拷贝包文件中待部署的项目代码及项目配置文件到相应的web服务器的指定目录下。其中,部署服务器在部署时,先部署项目代码文件到web服务器,再替换web服务器上的项目配置文件,最后再启动web服务器,实现项目代码的部署。
由上述技术方案,本发明实施例提供的一种多环境项目部署方法,在项目代码部署到相应的部署环境之前,通过对项目代码针对不同的部署环境进行相应的测试,从而将满足测试规则的项目代码再进行部署,减少开发人员与测试人员的沟通次数,节省测试人员做回归测试的工作量,进而优化开发与发布流程,缩短开发人员的部署和自测的时间,提高系统的稳定性。
在一种实现方式中,步骤104中可以通过以下方式实现,如图2中所示:
步骤201:将当前部署环境确定为开发环境,并确定所述开发环境对应的代码质量检测的测试方式与单元测试的测试方式。
其中,开发环境的部署环境是指开发人员专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告和测试工具,是最基础的环境。开发环境的分支,一般是feature分支。
其中,单元测试Unit Test是指:由开发人员写,测试的应该是小段代码,目的是开发人员确定源代码做了希望它做的事。单元测试有一个覆盖率的问题。就是指这些单元测试调用了被测试类中多少代码。
步骤202:以所述代码质量检测的测试方式与单元测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
如图3中所示,本实施例中,使用自动化构建工具结合代码检测工具,如声纳(SonarQube,sonar)等检测工具,设置相应的代码质量检测规则对项目代码进行代码质量检测,其中的代码质量检测规则可以为代码中变量的命名规则、首字母规定等,本实施例中,通过对项目代码中的代码是否符合这些代码质量检测规则进行判断,当不符合某些规则的数量大于预设的阈值时,停止进行下一个检测步骤,汇总相关的信息通过邮件发给提交该feature分支的开发人员,以对项目代码进行相应的修改,使得最终项目代码满足这些代码质量检测规则;之后,本实施例中使用自动化构建工具结合单元测试工具,如Nunit等对项目代码进行单元测试,只有当所有的单元测试都通过时,才进行下一个步骤,否则,汇总相关的失败信息通过邮件发送给提交该feature分支的开发人员,以对项目代码进行相应的修改,使得最终项目代码通过单元测试。
在一种实现方式中,步骤104中可以通过以下方式实现,如图4中所示:
步骤401:将部署环境确定为验收环境或生产环境,并确定所述验收环境或所述生产环境对应的回归测试方式。
其中,验收环境主要是用来作为客户体验的环境,验收环境基本上与生产环境一模一样。部署分支一般为release分支。对于不需要用户验收的软件,此环境也可以省略。而生产环境指正式提供对外服务的,一般会关掉错误报告,打开错误日志,是最重要的环境。部署分支一般为master分支。回归测试Regression Test为了覆盖系统新发生的变化而进行的测试。回归测试可以由测试人员编写,也可以由开发人员编写。
步骤402:以所述回归测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
如图5中所示,本实施例中可以使用自动化构建工具结合单元测试工具,比如QTP(Quick Test Professional)等对项目代码进行回归测试,只有当所有的回归测试都通过时,才进行下一个步骤,否则,汇总相关的失败信息发送邮件给提交该feature分支的开发人员,以对项目代码进行相应的修改,使得最终项目代码通过回归测试。
在一种实现方式中,步骤104中可以通过以下方式实现,如图6中所示:
步骤601:将部署环境确定为测试环境,并确定所述测试环境对应的代码安全检测的测试方式与集成测试的测试方式;
其中,测试环境是指克隆一份生产环境的配置,一个程序(项目代码)在测试环境工作不正常,那么肯定不能把它发布到生产服务器上,测试环境是开发环境到生产环境的过度环境。测试环境的分支一般是develop分支,部署到企业私有的服务器或者局域网服务器上,主要用于测试是否存在bug,一般会不让用户和其他人看到,并且测试环境会尽量与生产环境相似。在资源比较紧张时,测试环境也可以充当程序员们的开发环境。
其中,集成测试Integration Test通常会在指定的环境运行集成测试,目的旨在测试各个组件间是否能互相配合,正常工作。和单元测试一样,集成测试也是为了看代码是否按"设计或期望的方式"工作。集成测试的范围比较宽泛:范围可以很小,如果在一个单元测试中涉及了多个类,就可以认为这是集成测试。也可以大到整个系统,从后台到前端所有组件。集成测试往往会涉及外部组件,如数据库,硬件,网络等等。集成测试通常应由专门的测试人员完成。
步骤602:以所述代码安全检测的测试方式与集成测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
如图7中所示,本实施例中可以使用自动化构建工具结合代码安全工具,如fortify静态代码分析器(Fortify Static Code Analyzer,Fortify SCA)等对项目代码进行代码安全检测,当发现项目代码存在严重安全漏洞时,停止下一个步骤,汇总相关的漏洞信息发送邮件给提交该feature分支的开发人员,以对项目代码进行相应的修改,使得最终项目代码通过代码安全检测;之后,本实施例中再使用自动化构建工具结合单元测试工具,如loadrunner等对项目代码进行集成测试,只有当所有的集成测试都通过时,才进行下一个步骤,否则汇总相关的失败信息并发送邮件给提交该feature分支的开发人员,以对项目代码进行相应的修改,使得最终项目代码通过集成测试。
参考图8,为本申请实施例提供的一种多环境项目部署装置的结构示意图,该装置用于将待部署的项目代码通过部署服务器部署到相应的部署环境中,如开发环境、测试环境、生产环境(正式环境)、验收环境等。
在本实施例中,该装置可以包括以下结构:
配置获取单元801,用于获得项目配置文件,所述项目配置文件为需要根据不同部署环境进行修改的项目配置文件。
其中,开发人员可以通过各种输入终端将项目配置文件输入到开发系统中,这些项目配置文件为针对具有不同代码版本号的项目代码的配置文件,本实施例中对这些项目配置文件进行获取,并提取出其中需要根据不同的部署环境进行修改配置的项目配置文件,也就是剔除适配多种部署环境无需修改配置的项目配置为文件,保留需要修改的项目配置文件。这一过程中,保留项目配置文件中的原始项目目录结构,并按照项目目录结构存放配置文件,其中,最外层文件夹为项目名称。
配置库创建单元802,用于基于获得的项目配置文件,创建配置库,所述配置库中至少包括:不同的部署环境所绑定的项目配置文件。
其中,本实施例中可以依次根据不同的部署环境修改提取出的项目配置文件,为每个部署环境绑定对应的项目配置文件,从而创建配置库,并将项目配置文件提交到配置库中。
需要说明的是,配置库中可以采用与代码库相同的管理工具,而代码库即为存储有各种版本号的项目代码的库,配置库中的项目配置文件为针对具有不同代码版本号的项目代码的配置文件。
代码获取单元803,用于获得待部署的项目代码,所述项目代码具有代码版本号。
其中,所述项目代码具有代码版本号。本实施例中可以利用自动化构建工具,从代码库中检出需要部署的指定代码版本号的项目代码,并对待部署的项目代码进行编译。
项目测试单元804,用于以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
例如,确定生产环境或者开发环境所对应的代码测试方式,再以所述代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
在一种实现方式中,所述项目测试单元804可以包括有以下结构,如图9中所示:
第一测试子单元901,用于将部署环境确定为开发环境,并确定所述开发环境对应的代码质量检测的测试方式与单元测试的测试方式,以所述代码质量检测的测试方式与单元测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
第二测试子单元902,用于将部署环境确定为测试环境,并确定所述测试环境对应的代码安全检测的测试方式与集成测试的测试方式,以所述代码安全检测的测试方式与集成测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
第三测试子单元903,用于将部署环境确定为验收环境或生产环境,并确定所述验收环境或所述生成环境对应的回归测试方式,以所述回归测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
文件获取单元805,用于从所述配置库中获取与所述待部署的项目代码的代码版本号相对应的项目配置文件。
具体的,本实施例中利用自动化构建工具从配置库创建单元802所创建的配置库中检出与代码获取单元803中所构建的项目代码对应的代码版本号的全部项目配置文件,并编写脚本。
文件打包单元806,用于将满足所述测试规则的待部署的项目代码与其关于所述代码版本号相对应的项目配置文件进行打包,得到包文件。
其中,本实施例中是将编译好的项目代码与对应部署环境的项目配置文件打包在一起,此时不合并项目配置文件与项目代码,项目代码在包文件中是相互独立的,只是在同一个包中而已。
文件传输单元807,用于将所述包文件传输到待部署的部署环境的部署服务器,触发所述部署服务器将所述包文件中待部署的项目代码及项目配置文件部署到web服务器上。
其中,本实施例中将打包好的包文件传输到部署系统的仓库中,并分发到相应的部署服务器上。需要说明的是,在分发包文件时,分发只传输需要部署的项目代码的包文件,而不是全部。
而相应的,在部署服务器接收到包文件之后,将包文件进行解压,拷贝包文件中待部署的项目代码及项目配置文件到相应的web服务器的指定目录下。其中,部署服务器在部署时,先部署项目代码文件到web服务器,再替换web服务器上的项目配置文件,最后再启动web服务器,实现项目代码的部署。
其中,本实施例中的多环境项目部署装置可以包括有处理器和存储器实现,上述配置获取单元801、配置库创建单元802、代码获取单元803、项目测试单元804、文件获取单元805、文件打包单元806和文件传输单元807等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
而处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来在项目代码部署到相应的部署环境之前,通过对项目代码针对不同的部署环境进行相应的测试,从而将满足测试规则的项目代码再进行部署,减少开发人员与测试人员的沟通次数,节省测试人员做回归测试的工作量,进而优化开发与发布流程,缩短开发人员的部署和自测的时间,提高系统的稳定性。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
由上述技术方案,本发明实施例提供的一种多环境项目部署装置,在项目代码部署到相应的部署环境之前,通过对项目代码针对不同的部署环境进行相应的测试,从而将满足测试规则的项目代码再进行部署,减少开发人员与测试人员的沟通次数,节省测试人员做回归测试的工作量,进而优化开发与发布流程,缩短开发人员的部署和自测的时间,提高系统的稳定性。
本发明实施例提供了一种存储介质,其上存储有程序,该程序在运行时控制该存储介质所在的设备(包括处理器)执行时实现所述多环境项目部署方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述多环境项目部署方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获得项目配置文件,所述项目配置文件为需要根据不同部署环境进行修改的项目配置文件,所述项目配置文件为针对具有不同代码版本号的项目代码的配置文件;基于获得的项目配置文件,创建配置库,所述配置库中至少包括:不同的部署环境所绑定的项目配置文件;获得待部署的项目代码,所述项目代码具有代码版本号;以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码;从所述配置库中获取与所述待部署的项目代码的代码版本号相对应的项目配置文件;将满足所述测试规则的待部署的项目代码与其关于所述代码版本号相对应的项目配置文件进行打包,得到包文件;将所述包文件传输到待部署的部署环境的部署服务器,触发所述部署服务器将所述包文件中待部署的项目代码及项目配置文件部署到web服务器上。而以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码,包括:将部署环境确定为开发环境,并确定所述开发环境对应的代码质量检测的测试方式与单元测试的测试方式,以所述代码质量检测的测试方式与单元测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码;将部署环境确定为测试环境,并确定所述测试环境对应的代码安全检测的测试方式与集成测试的测试方式,以所述代码安全检测的测试方式与集成测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码;将部署环境确定为验收环境或生产环境,并确定所述验收环境或所述生产环境对应的回归测试方式,以所述回归测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获得项目配置文件,所述项目配置文件为需要根据不同部署环境进行修改的项目配置文件,所述项目配置文件为针对具有不同代码版本号的项目代码的配置文件;基于获得的项目配置文件,创建配置库,所述配置库中至少包括:不同的部署环境所绑定的项目配置文件;获得待部署的项目代码,所述项目代码具有代码版本号;以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码;从所述配置库中获取与所述待部署的项目代码的代码版本号相对应的项目配置文件;将满足所述测试规则的待部署的项目代码与其关于所述代码版本号相对应的项目配置文件进行打包,得到包文件;将所述包文件传输到待部署的部署环境的部署服务器,触发所述部署服务器将所述包文件中待部署的项目代码及项目配置文件部署到web服务器上。而以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码,包括:将部署环境确定为开发环境,并确定所述开发环境对应的代码质量检测的测试方式与单元测试的测试方式,以所述代码质量检测的测试方式与单元测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码;将部署环境确定为测试环境,并确定所述测试环境对应的代码安全检测的测试方式与集成测试的测试方式,以所述代码安全检测的测试方式与集成测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码;将部署环境确定为验收环境或生产环境,并确定所述验收环境或所述生产环境对应的回归测试方式,以所述回归测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种多环境项目部署方法,其特征在于,包括:
获得项目配置文件,所述项目配置文件为需要根据不同部署环境进行修改的项目配置文件,所述项目配置文件为针对具有不同代码版本号的项目代码的配置文件;
基于获得的项目配置文件,创建配置库,所述配置库中至少包括:不同的部署环境所绑定的项目配置文件;
获得待部署的项目代码,所述项目代码具有代码版本号;
以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码;
从所述配置库中获取与所述待部署的项目代码的代码版本号相对应的项目配置文件;
将满足所述测试规则的待部署的项目代码与其关于所述代码版本号相对应的项目配置文件进行打包,得到包文件;
将所述包文件传输到待部署的部署环境的部署服务器,触发所述部署服务器将所述包文件中待部署的项目代码及项目配置文件部署到web服务器上。
2.根据权利要求1所述的方法,其特征在于,以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码,包括:
将部署环境确定为开发环境,并确定所述开发环境对应的代码质量检测的测试方式与单元测试的测试方式;
以所述代码质量检测的测试方式与单元测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
3.根据权利要求1所述的方法,其特征在于,以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码,包括:
将部署环境确定为测试环境,并确定所述测试环境对应的代码安全检测的测试方式与集成测试的测试方式;
以所述代码安全检测的测试方式与集成测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
4.根据权利要求1所述的方法,其特征在于,以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码,包括:
将部署环境确定为验收环境或生产环境,并确定所述验收环境或所述生产环境对应的回归测试方式;
以所述回归测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
5.一种多环境项目部署装置,其特征在于,包括:
配置获取单元,用于获得项目配置文件,所述项目配置文件为需要根据不同部署环境进行修改的项目配置文件,所述项目配置文件为针对具有不同代码版本号的项目代码的配置文件;
配置库创建单元,用于基于获得的项目配置文件,创建配置库,所述配置库中至少包括:不同的部署环境所绑定的项目配置文件;
代码获取单元,用于获得待部署的项目代码,所述项目代码具有代码版本号;
项目测试单元,用于以不同的部署环境各自所对应的代码测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码;
文件获取单元,用于从所述配置库中获取与所述待部署的项目代码的代码版本号相对应的项目配置文件;
文件打包单元,用于将满足所述测试规则的待部署的项目代码与其关于所述代码版本号相对应的项目配置文件进行打包,得到包文件;
文件传输单元,用于将所述包文件传输到待部署的部署环境的部署服务器,触发所述部署服务器将所述包文件中待部署的项目代码及项目配置文件部署到web服务器上。
6.根据权利要求5所述的装置,其特征在于,所述项目测试单元至少包括:
第一测试子单元,用于将部署环境确定为开发环境,并确定所述开发环境对应的代码质量检测的测试方式与单元测试的测试方式,以所述代码质量检测的测试方式与单元测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
7.根据权利要求5所述的装置,其特征在于,所述项目测试单元至少包括:
第二测试子单元,用于将部署环境确定为测试环境,并确定所述测试环境对应的代码安全检测的测试方式与集成测试的测试方式,以所述代码安全检测的测试方式与集成测试的测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
8.根据权利要求5所述的装置,其特征在于,所述项目测试单元至少包括:
第三测试子单元,用于将部署环境确定为验收环境或生产环境,并确定所述验收环境或所述生产环境对应的回归测试方式,以所述回归测试方式对所述待部署的项目代码进行测试,以得到满足预设的测试规则的项目代码。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至4中任意一项所述的多环境项目部署方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至4中任意一项所述的多环境项目部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711046103.1A CN109725911A (zh) | 2017-10-31 | 2017-10-31 | 一种多环境项目部署方法、装置、存储介质及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711046103.1A CN109725911A (zh) | 2017-10-31 | 2017-10-31 | 一种多环境项目部署方法、装置、存储介质及处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109725911A true CN109725911A (zh) | 2019-05-07 |
Family
ID=66294246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711046103.1A Pending CN109725911A (zh) | 2017-10-31 | 2017-10-31 | 一种多环境项目部署方法、装置、存储介质及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109725911A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110308911A (zh) * | 2019-07-09 | 2019-10-08 | 西安点告网络科技有限公司 | 软件程序交付方法、装置、终端及存储介质 |
CN110765011A (zh) * | 2019-10-15 | 2020-02-07 | 卡斯柯信号有限公司 | 一种配置库内测试运维数据自动获取和校验装置及方法 |
CN111078302A (zh) * | 2019-11-19 | 2020-04-28 | 许昌许继软件技术有限公司 | 一种配网监控平台系统的自动化部署方法及终端 |
CN111158655A (zh) * | 2019-12-31 | 2020-05-15 | 中国银行股份有限公司 | 软件运行环境的部署方法及装置 |
CN111414172A (zh) * | 2020-03-18 | 2020-07-14 | 时时同云科技(成都)有限责任公司 | 应用软件自动部署发布系统及方法 |
CN111666081A (zh) * | 2020-04-30 | 2020-09-15 | 平安科技(深圳)有限公司 | 基于Git的项目版本发布方法、装置、设备及介质 |
CN111813439A (zh) * | 2020-07-17 | 2020-10-23 | 前海人寿保险股份有限公司 | 发布材料质量控制方法、装置、设备和计算机存储介质 |
CN111857722A (zh) * | 2020-06-23 | 2020-10-30 | 远光软件股份有限公司 | 一种基于三库模式的DevOps质量保障系统及方法 |
CN112764753A (zh) * | 2020-12-31 | 2021-05-07 | 北京知因智慧科技有限公司 | 一种项目的部署方法、装置、电子设备及存储介质 |
CN113110992A (zh) * | 2021-04-06 | 2021-07-13 | 四川新网银行股份有限公司 | 一种管理测试环境的方法 |
CN113296796A (zh) * | 2020-02-24 | 2021-08-24 | 京东安联财产保险有限公司 | 项目发布方法、装置、系统、存储介质、电子设备 |
CN113312040A (zh) * | 2021-06-15 | 2021-08-27 | 浪潮云信息技术股份公司 | 低代码开发平台应用发布的实现方法及存储介质 |
CN113504939A (zh) * | 2021-07-08 | 2021-10-15 | 建信金融科技有限责任公司 | 项目版本发布的管理方法、装置、电子设备及计算机可读介质 |
CN113791977A (zh) * | 2021-09-09 | 2021-12-14 | 上海仙塔智能科技有限公司 | 代码开发的处理方法、装置、电子设备与存储介质 |
CN115016785A (zh) * | 2022-08-09 | 2022-09-06 | 杭州湛联科技有限公司 | 一种用于多环境共用的前端项目打包方法及装置 |
CN115576573A (zh) * | 2022-10-26 | 2023-01-06 | 杭州谐云科技有限公司 | 一种基于信创环境的交付方法及系统 |
CN116893977A (zh) * | 2023-09-08 | 2023-10-17 | 中国空气动力研究与发展中心计算空气动力研究所 | 分布式仿真测试环境自动部署方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130047036A1 (en) * | 2011-08-15 | 2013-02-21 | Jirí Pechanec | Self validating applications |
CN105095089A (zh) * | 2015-09-14 | 2015-11-25 | 北京金山安全软件有限公司 | 一种测试应用软件性能的方法及装置 |
CN105373401A (zh) * | 2015-10-27 | 2016-03-02 | 上海钢富电子商务有限公司 | 软件包自动发布方法和系统 |
CN106815052A (zh) * | 2017-01-10 | 2017-06-09 | 南威软件股份有限公司 | 一种适配多环境配置的快速部署系统的方法 |
-
2017
- 2017-10-31 CN CN201711046103.1A patent/CN109725911A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130047036A1 (en) * | 2011-08-15 | 2013-02-21 | Jirí Pechanec | Self validating applications |
CN105095089A (zh) * | 2015-09-14 | 2015-11-25 | 北京金山安全软件有限公司 | 一种测试应用软件性能的方法及装置 |
CN105373401A (zh) * | 2015-10-27 | 2016-03-02 | 上海钢富电子商务有限公司 | 软件包自动发布方法和系统 |
CN106815052A (zh) * | 2017-01-10 | 2017-06-09 | 南威软件股份有限公司 | 一种适配多环境配置的快速部署系统的方法 |
Non-Patent Citations (3)
Title |
---|
单维锋,白灵编: "《ASP.NET WEB应用程序设计教程》", 30 January 2010, 清华大学出版社,北京交通大学出版社 * |
朱东杰,孙玉山: "《软件测试与质量保证》", 31 July 2017, 哈尔滨工业大学出版社 * |
王洪俭: "软件测试技术及其应用", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110308911A (zh) * | 2019-07-09 | 2019-10-08 | 西安点告网络科技有限公司 | 软件程序交付方法、装置、终端及存储介质 |
CN110765011B (zh) * | 2019-10-15 | 2023-04-07 | 卡斯柯信号有限公司 | 一种配置库内测试运维数据自动获取和校验装置及方法 |
CN110765011A (zh) * | 2019-10-15 | 2020-02-07 | 卡斯柯信号有限公司 | 一种配置库内测试运维数据自动获取和校验装置及方法 |
CN111078302A (zh) * | 2019-11-19 | 2020-04-28 | 许昌许继软件技术有限公司 | 一种配网监控平台系统的自动化部署方法及终端 |
CN111158655A (zh) * | 2019-12-31 | 2020-05-15 | 中国银行股份有限公司 | 软件运行环境的部署方法及装置 |
CN111158655B (zh) * | 2019-12-31 | 2023-09-22 | 中国银行股份有限公司 | 软件运行环境的部署方法及装置 |
CN113296796A (zh) * | 2020-02-24 | 2021-08-24 | 京东安联财产保险有限公司 | 项目发布方法、装置、系统、存储介质、电子设备 |
CN111414172A (zh) * | 2020-03-18 | 2020-07-14 | 时时同云科技(成都)有限责任公司 | 应用软件自动部署发布系统及方法 |
CN111666081A (zh) * | 2020-04-30 | 2020-09-15 | 平安科技(深圳)有限公司 | 基于Git的项目版本发布方法、装置、设备及介质 |
CN111666081B (zh) * | 2020-04-30 | 2024-04-05 | 平安科技(深圳)有限公司 | 基于Git的项目版本发布方法、装置、设备及介质 |
CN111857722A (zh) * | 2020-06-23 | 2020-10-30 | 远光软件股份有限公司 | 一种基于三库模式的DevOps质量保障系统及方法 |
CN111813439A (zh) * | 2020-07-17 | 2020-10-23 | 前海人寿保险股份有限公司 | 发布材料质量控制方法、装置、设备和计算机存储介质 |
CN111813439B (zh) * | 2020-07-17 | 2024-03-29 | 前海人寿保险股份有限公司 | 发布材料质量控制方法、装置、设备和计算机存储介质 |
CN112764753B (zh) * | 2020-12-31 | 2024-04-12 | 北京知因智慧科技有限公司 | 一种项目的部署方法、装置、电子设备及存储介质 |
CN112764753A (zh) * | 2020-12-31 | 2021-05-07 | 北京知因智慧科技有限公司 | 一种项目的部署方法、装置、电子设备及存储介质 |
CN113110992A (zh) * | 2021-04-06 | 2021-07-13 | 四川新网银行股份有限公司 | 一种管理测试环境的方法 |
CN113312040B (zh) * | 2021-06-15 | 2022-09-27 | 浪潮云信息技术股份公司 | 低代码开发平台应用发布的实现方法及存储介质 |
CN113312040A (zh) * | 2021-06-15 | 2021-08-27 | 浪潮云信息技术股份公司 | 低代码开发平台应用发布的实现方法及存储介质 |
CN113504939A (zh) * | 2021-07-08 | 2021-10-15 | 建信金融科技有限责任公司 | 项目版本发布的管理方法、装置、电子设备及计算机可读介质 |
CN113791977A (zh) * | 2021-09-09 | 2021-12-14 | 上海仙塔智能科技有限公司 | 代码开发的处理方法、装置、电子设备与存储介质 |
CN115016785A (zh) * | 2022-08-09 | 2022-09-06 | 杭州湛联科技有限公司 | 一种用于多环境共用的前端项目打包方法及装置 |
CN115576573A (zh) * | 2022-10-26 | 2023-01-06 | 杭州谐云科技有限公司 | 一种基于信创环境的交付方法及系统 |
CN115576573B (zh) * | 2022-10-26 | 2024-03-12 | 杭州谐云科技有限公司 | 一种基于信创环境的交付方法及系统 |
CN116893977A (zh) * | 2023-09-08 | 2023-10-17 | 中国空气动力研究与发展中心计算空气动力研究所 | 分布式仿真测试环境自动部署方法、装置、设备及介质 |
CN116893977B (zh) * | 2023-09-08 | 2024-01-16 | 中国空气动力研究与发展中心计算空气动力研究所 | 分布式仿真测试环境自动部署方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109725911A (zh) | 一种多环境项目部署方法、装置、存储介质及处理器 | |
US10277622B2 (en) | Enterprise level cybersecurity automatic remediation | |
CN110532189B (zh) | 一种持续集成系统、方法及装置 | |
US10216509B2 (en) | Continuous and automatic application development and deployment | |
CN110187914B (zh) | 应用开发方法、系统及装置 | |
Gallaba et al. | Use and misuse of continuous integration features: An empirical study of projects that (mis) use Travis CI | |
US10671381B2 (en) | Continuous integration with reusable context aware jobs | |
US10148752B2 (en) | Enterprise level security orchestration | |
US20090019420A1 (en) | Software development | |
Shahriar et al. | Testing of memory leak in android applications | |
US20030204784A1 (en) | System and method for automatic test case generation | |
US7512933B1 (en) | Method and system for associating logs and traces to test cases | |
CN110704061A (zh) | 基于微服务的部署交付件的运行方法及装置 | |
US10514898B2 (en) | Method and system to develop, deploy, test, and manage platform-independent software | |
CN107678938A (zh) | 一种应用程序的调试方法及设备 | |
US9971582B2 (en) | Selecting application wrapper logic components based on features of a mobile application to be wrapped | |
CN108897548A (zh) | 程序包生产部署方法、装置、系统、电子设备及存储介质 | |
US10241902B2 (en) | Systems and methods for benchmark based cross platform service demand prediction | |
CN106873960A (zh) | 一种应用软件的更新方法和设备 | |
US20180060046A1 (en) | Co-existential wrapping system for mobile applications | |
Hudson et al. | libEnsemble users manual | |
US11531763B1 (en) | Automated code generation using analysis of design diagrams | |
US10394793B1 (en) | Method and system for governed replay for compliance applications | |
US11151020B1 (en) | Method and system for managing deployment of software application components in a continuous development pipeline | |
WO2020220217A1 (en) | Method and apparatus for security assurance automation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190507 |
|
RJ01 | Rejection of invention patent application after publication |