[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN108073400A - 软件自动化构建方法、服务器及存储介质 - Google Patents

软件自动化构建方法、服务器及存储介质 Download PDF

Info

Publication number
CN108073400A
CN108073400A CN201711323261.7A CN201711323261A CN108073400A CN 108073400 A CN108073400 A CN 108073400A CN 201711323261 A CN201711323261 A CN 201711323261A CN 108073400 A CN108073400 A CN 108073400A
Authority
CN
China
Prior art keywords
source code
software
default
pending
program
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
Application number
CN201711323261.7A
Other languages
English (en)
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.)
Hubei Sunshine Culture And Media Co Ltd
Original Assignee
Hubei Sunshine Culture And Media Co Ltd
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 Hubei Sunshine Culture And Media Co Ltd filed Critical Hubei Sunshine Culture And Media Co Ltd
Priority to CN201711323261.7A priority Critical patent/CN108073400A/zh
Publication of CN108073400A publication Critical patent/CN108073400A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种软件自动化构建方法、服务器及存储介质,本发明通过服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本,根据所述待处理源代码生成多个程序包,根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建,通过预设部署脚本对各程序包进行部署,能够不依赖外界工作环境而进行一套流程化的作业,避免了人工操作导致失误,能够有效提高软件开发过程的效率,缩短了开发周期,节约了开发成本,提升了用户体验。

Description

软件自动化构建方法、服务器及存储介质
技术领域
本发明涉及计算机软件应用程序领域,尤其涉及一种软件自动化构建方法、服务器及存储介质。
背景技术
随着科技的发展,如今个人电脑及智能手机得到了极大的普及,电脑和手机的功能也越来越多,越来越强大,而运行在电脑或手机上的应用软件也越来越多,因此软件开发也越来越重要,软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程,软件开发是一项包括需求捕捉,需求分析,设计,实现和测试的系统工程,软件一般是用某种程序设计语言来实现的,通常采用软件开发工具可以进行开发。
现有技术中一个软件项目的开发完成,需要部署到服务器上进行测试或对外发布,都是由开发人员通过本地的集成开发环境(Integrated Development Environment,IDE)工具手动打包,然后把打包好的文件(如jar格式的或war格式的程序包)拷贝到服务器上,再通过备份原有程序、停止服务、更新替换新版本程序、启动服务(启动服务的过程中需要实时查看启动日志)的流程一步一步的进行,但是对于多个项目需要同时部署时,不可避免会出现人为的错误或其他情况导致项目延期,影响软件开发过程的速度和效率的问题。
发明内容
本发明的主要目的在于一种软件自动化构建方法、服务器及存储介质,旨在解决现有技术中多个项目需要同时部署时,不可避免会出现人为的错误或其他情况导致项目延期,影响软件开发过程的速度和效率的技术问题。
为实现上述目的,本发明提供一种软件自动化构建方法,所述软件自动化构建方法包括以下步骤:
服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本;
根据所述待处理源代码生成多个程序包;
根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建。
优选地,所述根据所述待处理源代码生成多个程序包,具体包括:
对所述待处理源代码进行编译,并生成编译结果;
对所述编译结果进行测试,并生成测试报告;
根据所述测试报告将所述待处理源代码生成多个程序包。
优选地,所述对所述待处理源代码进行编译,并生成编译结果具体包括:
获取所述待处理源代码的类型,查找与所述待处理源代码的类型对应的运行环境;
将所述待处理源代码在对应的运行环境中进行编译,并生成所述编译结果。
优选地,所述对所述编译结果进行测试,并生成测试报告,具体包括:
获取预设单元测试码,根据所述预设单元测试码查找到与所述编译结果对应的测试点;
在所述测试点对所述编译结果进行测试,并生成所述测试报告。
优选地,所述根据所述测试报告将所述待处理源代码生成多个程序包,具体包括:
获取与所述待处理源代码对应的运行环境参数;
根据所述运行环境参数调用相应的配置参数;
将所述测试报告与预设测试要求进行比对分析并生成比对分析结果,根据所述比对分析结果将符合所述预设测试要求的所述待处理源代码作为目标代码;
根据所述预设配置参数将所述目标代码生成多个程序包。
优选地,所述根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建,具体包括:
从所述预设部署脚本中获取预设部署时间;
对当前运行的原程序进行备份,并停止运行所述原程序;
根据所述预设部署脚本将各程序包覆盖到所述原程序所在的目录下,并根据所述预设部署时间依次启动各程序包。
优选地所述根据所述预设部署脚本将各程序包覆盖到所述原程序所在的目录下,并根据所述预设部署时间依次启动各程序包之后,所述软件自动构建方法还包括:
获取各程序包运行的日志信息;
对所述日志信息进行分析,并生成分析结果。
优选地,所述服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本之前,所述软件自动化构建方法还包括:
建立所述源代码库,将符合预设项目信息的源文件保存至所述源代码库。
此外,为实现上述目的,本发明还提出一种服务器,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件自动化构建程序,所述软件自动化构建程序配置为实现如上文所述的软件自动化构建方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有软件自动化构建程序,所述软件自动化构建程序被处理器执行时实现如上文所述的软件自动化构建方法的步骤。
本发明提出的软件自动化构建方法,本发明通过服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本,根据所述待处理源代码生成多个程序包,根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建,通过预设部署脚本对各程序包进行部署,能够不依赖外界工作环境而进行一套流程化的作业,避免了人工操作导致失误,能够有效提高软件开发过程的效率,缩短了开发周期,节约了开发成本,提升了用户体验。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的服务器结构示意图;
图2为本发明软件自动构建方法第一实施例的流程示意图;
图3为本发明软件自动构建方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的解决方案主要是:通过服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本,根据所述待处理源代码生成多个程序包,根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建,通过预设部署脚本对各程序包进行部署,能够不依赖外界工作环境而进行一套流程化的作业,避免了人工操作导致失误,能够有效提高软件开发过程的效率,缩短了开发周期,节约了开发成本,提升了用户体验,解决了现有技术中多个项目需要同时部署时,不可避免会出现人为的错误或其他情况导致项目延期,影响软件开发过程的速度和效率的技术问题。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的服务器结构示意图。
如图1所示,该服务器可以包括:处理器1001,例如CPU,通信总线1002、用户端接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户端接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户端接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的服务器结构并不构成对该服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户端接口模块以及软件自动化构建程序。
本发明服务器通过处理器1001调用存储器1005中存储的软件自动化构建程序,并执行以下操作:
服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本;
根据所述待处理源代码生成多个程序包;
根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建。
进一步地,处理器1001可以调用存储器1005中存储的软件自动化构建程序,还执行以下操作:
对所述待处理源代码进行编译,并生成编译结果;
对所述编译结果进行测试,并生成测试报告;
根据所述测试报告将所述待处理源代码生成多个程序包。
进一步地,处理器1001可以调用存储器1005中存储的软件自动化构建程序,还执行以下操作:
获取所述待处理源代码的类型,查找与所述待处理源代码的类型对应的运行环境;
将所述待处理源代码在对应的运行环境中进行编译,并生成所述编译结果。
进一步地,处理器1001可以调用存储器1005中存储的软件自动化构建程序,还执行以下操作:
获取预设单元测试码,根据所述预设单元测试码查找到与所述编译结果对应的测试点;
在所述测试点对所述编译结果进行测试,并生成所述测试报告。
进一步地,处理器1001可以调用存储器1005中存储的软件自动化构建程序,还执行以下操作:
获取与所述待处理源代码对应的运行环境参数;
根据所述运行环境参数调用相应的配置参数;
将所述测试报告与预设测试要求进行比对分析并生成比对分析结果,根据所述比对分析结果将符合所述预设测试要求的所述待处理源代码作为目标代码;
根据所述预设配置参数将所述目标代码生成多个程序包。
进一步地,处理器1001可以调用存储器1005中存储的软件自动化构建程序,还执行以下操作:
从所述预设部署脚本中获取预设部署时间;
对当前运行的原程序进行备份,并停止运行所述原程序;
根据所述预设部署脚本将各程序包覆盖到所述原程序所在的目录下,并根据所述预设部署时间依次启动各程序包。
进一步地,处理器1001可以调用存储器1005中存储的软件自动化构建程序,还执行以下操作:
获取各程序包运行的日志信息;
对所述日志信息进行分析,并生成分析结果。
进一步地,处理器1001可以调用存储器1005中存储的软件自动化构建程序,还执行以下操作:
建立所述源代码库,将符合预设项目信息的源文件保存至所述源代码库。
本实施例通过上述方案,通过服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本,根据所述待处理源代码生成多个程序包,根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建,通过预设部署脚本对各程序包进行部署,能够不依赖外界工作环境而进行一套流程化的作业,避免了人工操作导致失误,能够有效提高软件开发过程的效率,缩短了开发周期,节约了开发成本,提升了用户体验。
基于上述硬件结构,提出本发明软件自动化构建方法实施例。
参照图2,图2为本发明软件自动化构建方法第一实施例的流程示意图。
在第一实施例中,所述软件自动化构建方法包括以下步骤:
步骤S10、服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本;
需要说明的是,所述源代码库为将所述源文件进行保存的数据库,所述源代码库用于将所有的源代码进行保存统一,让拥有相应权限的项目人员中都能从这里获取源代码,通过所述源代码库能够比较方便的获取需要的源代码,而不用通过寻找查询各个源代码地址来找寻需要的源代码数据,能够节省软件开发的时间成本,提升软件开发的效率。
可以理解的是,所述源文件包括所述待处理源代码和预设部署脚本,所述待处理源代码为正准备进行软件开发的源代码,需要即将用到的源代码,所述预设部署脚本为预先设置的用于部署程序包的脚本,可以是技术人员根据当前软件开发的环境定制的脚本,也可以是根据用户的要求定制的利于软件开发操作的脚本,还可以是通过大量数据训练和学习确定的适合软件开发的脚本,当然还可以是其他方式确定的脚本,本实施例对此不加以限制。
在具体实现中,所述源文件都保存至所述源代码库,所述源文件还可以包括自动化构建脚本和单元测试代码等数据文件,通常使用配置管理工具(Subversion,SVN)来从所述源代码库获取所述源文件,SVN采用了分支管理系统,它的设计目标就是取代(Concurrent Version System,CVS),CVS是一个C/S系统,是一个常用的代码版本控制软件,主要在开源软件管理中使用。与它相类似的代码版本控制软件有SVN,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的;当然还可以是通过其他配置管理工具来实现从所述源代码库获取所述源文件,本实施例对此不加以限制。
相应地,所述步骤S10之前,所述软件自动化构建方法还包括以下步骤:
建立所述源代码库,将符合预设项目信息的源文件保存至所述源代码库。
需要说明的是,所述预设项目信息为预先设置的当前软件项目的软件开发信息,可以是根据当前软件项目及时生成的项目信息,也可以是直接获取设置好的项目信息,当然还可以是通过其他方式确定的项目信息,本实施例对此不加以限制。
可以理解的是,符合预设项目信息的源文件即为符合当前软件项目的软件开发信息的源文件,即当前软件开发项目需要用到的源文件,通过将符合预设项目信息的源文件保存在所述源代码库,能够快速查找到开发当前软件项目对应的源文件信息,能够节省软件开发的时间成本,提升软件开发的效率。
步骤S20、根据所述待处理源代码生成多个程序包;
需要说明的是,根据所述待处理源代码生成多个程序包可以是通过预设的自动化构建脚本,对所述待处理代码进行编译、测试和打包等处理进而生成多个程序包,也可以是通过生成程序包的指令从所述待处理源代码中获取对应的各组源代码,根据生成程序包指令分别生成各自的程序包,当然还可以是通过其他方式根据所述待处理源代码生成多个程序包,本实施例对此不加以限制。
在具体实现中,一般是通过持续集成(Continuous integration,CI)工具对所述待处理源代码进行编译、测试和打包等处理,进而生成多个程序包,例如在计算机编程语言Java源代码的软件开发中,一般使用开源软件Jenkins工具进行开发,Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能,主要使用它的导管输送作业流程,通过导管输送插件开源把各个阶段例如,源代码编译,单元测试,打包,部署等进行整合成一套流水线,进而达到软件自动化构建的效果。
步骤S30、根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建。
需要说明的是,根据所述预设部署脚本对各程序包进行部署即为通过执行所述预设部署脚本对各程序包进行部署,将各程序包进行执行后,可以完成软件自动化构建。
可以理解的是,各程序包可以存放在仓库管理器中,所述仓库管理器用于存放第三方的静态库文件,或者项目中模块的程序包文件,针对不同的软件开发项目可以设置不同的仓库管理器来管理各程序包。
进一步地,所述步骤S30具体包括以下步骤:
从所述预设部署脚本中获取预设部署时间;
对当前运行的原程序进行备份,并停止运行所述原程序;
根据所述预设部署脚本将各程序包覆盖到所述原程序所在的目录下,并根据所述预设部署时间依次启动各程序包。
需要说明的是,根据所述预设部署脚本将各程序包进行部署,即根据所述预设部署脚本将各程序包发布到指定的服务器上,默认所述预设部署脚本中包含预设部署时间,所述预设部署时间为预先设定的部署各程序包的时间,即按照所述预设部署时间可以按照时间顺序依次将各程序包进行部署启动,所述预设部署时间可以是技术人员根据当前软件开发环境确定的时间,也可以是通过获取当前软件开发项目的项目信息确定的时间,还可以是通过大量实验或训练学习确定的一个比较合适的时间,当然也可以是通过其他方式确定的时间,本实施例对此不加以限制。
应当理解的是,对当前运行的原程序进行备份,可以将原程序对应的程序包或者代码存放在仓库管理器或者存放在所述源代码库中,将所述原程序进行备份后,可以立即停止运行所述原程序或者可以等待预设缓存时间截止时再停止运行所述原程序,通过将原程序备份和停止,能够为各程序包的运行创建比较合适的运行环境,便于加快软件开发的进程。
可以理解的是,根据所述预设部署脚本能够将各程序包覆盖在所述原程序所在的目录下,也可以是将各程序包覆盖在指定的目录下,根据所述预设部署脚本能够找到各程序包对应的运行目录下,进而将各程序包完成部署,方便服务器通过所述预设部署时间依次启动各程序包运行程序,从而节省软件开发的时间成本,提升软件开发的速度和效率。
相应地,所述根据所述预设部署脚本将各程序包覆盖到所述原程序所在的目录下,并根据所述预设部署时间依次启动各程序包之后,所述软件自动构建方法还包括:
获取各程序包运行的日志信息;
对所述日志信息进行分析,并生成分析结果。
需要说明的是,服务器在预设部署脚本将各程序包覆盖到所述原程序所在的目录下,并根据所述预设部署时间依次启动各程序包之后,能够通过日志收集服务,收集各程序包运行的日志信息,对所述日志信息进行分析后,生成分析结果,可以根据所述分析结果确定根据所述预设部署脚本对各程序包是否部署成功,并能够实时了解各程序包的实时运行情况,当出现异常时,能够及时生成异常告警信息,以快速对预设部署脚本进行调整,或对各程序包对应的源程序或代码进行修正,能够保证软件开发过程中软件的准确性和稳定性,提升用户体验。
本实施例通过上述方案,通过服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本,根据所述待处理源代码生成多个程序包,根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建,通过预设部署脚本对各程序包进行部署,能够不依赖外界工作环境而进行一套流程化的作业,避免了人工操作导致失误,能够有效提高软件开发过程的效率,缩短了开发周期,节约了开发成本,提升了用户体验。
进一步地,图3为本发明软件自动构建方法第二实施例的流程示意图,如图3所示,基于第一实施例提出本发明软件自动构建方法第二实施例,在本实施例中,所述步骤S20具体包括步骤:
步骤S21、对所述待处理源代码进行编译,并生成编译结果;
需要说明的是,对所述待处理源代码进行编译,即将所述待处理源代码进行初步处理使所述待处理源代码适应于当前软件开发的环境,在当前软件开发的环境中正常运行,通过将所述待处理源代码编译,并生成编译结果能方便后续检测所述待处理源代码的正确性,保证软件开发的软件质量,避免后期大量错误代码或运行错误造成软件开发时间的浪费和经济损失。
相应地,所述步骤S21具体包括以下步骤:
获取所述待处理源代码的类型,查找与所述待处理源代码的类型对应的运行环境;
将所述待处理源代码在对应的运行环境中进行编译,并生成所述编译结果。
可以理解的是,通过获取所述待处理源代码的类型,可以及时查找到所述待处理源代码适合的软件开发的运行环境,将所述待处理源代码在对应的运行环境中进行编译,并生成所述编译结果,能够提升软件开发的速度和效率。
在具体实现中,例如通过获取所述待处理源代码的类型为Java源代码,则查找与所述Java源代码对应的Java语言的软件开发工具包JDK环境中进行编译,生成所述编译结果,编译结果可以是class文件,通过将所述待处理源代码在对应的运行环境中进行编译,能够快速完成编译操作,且编译结果为服务器自动运行生成的结果,相对于人工编译,能够避免人工编译过程中的失误或者错误造成软件开发时间成本的增加,造成项目延期的问题出现。
步骤S22、对所述编译结果进行测试,并生成测试报告;
需要说明的是,对所述编译结果进行测试,并生成所述测试报告,能够及时发现所述待处理源代码中的错误,进而及时进行修订,能够避免错误代码造成程序运行错误的情况,有效提升了软件开发是速度和效率,保证了软件的正确率和质量。
相应地,所述步骤S22具体包括以下步骤:
获取预设单元测试码,根据所述预设单元测试码查找到与所述编译结果对应的测试点;
在所述测试点对所述编译结果进行测试,并生成所述测试报告。
可以理解的是,所述预设单元测试码为预先设定的单元测试码,可以是技术人员根据当前软件开发环境确定的测试码,也可以是通过获取当前软件开发项目的项目信息确定的测试码,还可以是通过大量实验或训练学习确定的一个比较合适的测试码,当然也可以是通过其他方式确定的测试码,本实施例对此不加以限制。
应当理解的是,通过所述预设单元测试码能够确定所述编译结果对应的测试点,所述测试点与所述编译结果中的各段代码一一对应,所述预设单元测试码与所述待处理源代码分别存放在所述源代码库中的不同目录中,即分别存储在不同的存储区域中,互不干扰。
在具体实现中,将所述待处理源代码进行编译后,生成编译结果,若所述待处理源代码的类型为Java源代码,则在Java语言的软件开发工具包JDK环境中进行编译后,可以是以class格式的文件将根据所述预设单元测试码进行测试,并生成相应的测试报告,当测试报告显示所述编译结果有错误或者有无法运行的地方,能够及时生成相应的反馈信息,并根据预设反馈方式进行反馈,所述反馈方式可以是通过邮件进行反馈,也可以是通过即时通讯的方式进行反馈,还可以是通过生成告警信息进行语音反馈,当然还可以是通过其他方式进行反馈,本实施例对此不加以限制。
步骤S23、根据所述测试报告将所述待处理源代码生成多个程序包。
应当理解的是,根据所述测试报告将所述待处理源代码生成多个程序包,即根据所述测试报告将所述待处理源代码中测试结果显示正常的待处理源代码生成程序包,将所述待处理源代码中测试结果显示异常的待处理源代码进行异常处理,例如直接反馈异常信息等,或者生成异常告警信息,本实施例对此不加以限制。
相应地,所述步骤S23具体包括以下步骤:
获取与所述待处理源代码对应的运行环境参数;
根据所述运行环境参数调用相应的配置参数;
将所述测试报告与预设测试要求进行比对分析并生成比对分析结果,根据所述比对分析结果将符合所述预设测试要求的所述待处理源代码作为目标代码;
根据所述预设配置参数将所述目标代码生成多个程序包。
需要说明的是,所述运行环境参数及为所述待处理源代码当前运行的运行环境对应的参数,不同的环境参数对应着不同的配置参数,用于将不同类型的待处理源代码配置生成为相应地程序包。
可以理解的是,所述预设测试要求为预先设定的表征所述测试报告中通过测试的待处理源代码的要求,可以是技术人员根据当前软件开发环境确定的要求,也可以是通过获取当前软件开发项目的项目信息确定的要求,还可以是通过大量实验或训练学习确定的一个比较合适的要求,当然也可以是通过其他方式确定的要求,本实施例对此不加以限制。
应当理解的是,根据所述测试报告将所述待处理源代码生成多个程序包的操作可以是通过执行预设自动化构建脚本来实现,通过将所述测试报告与所述预设测试要求记性比对分析,能够获取符合预设测试要求的待处理源代码,加快软件开发的速度和效率。
在具体实现中,若所述待处理源代码的类型为Java源代码时,将所述Java源代码在Java语言的软件开发工具包JDK环境中进行编译后,可以是以class格式的文件将根据所述预设单元测试码进行测试,并生成相应的测试报告,根据获取的与所述待处理源代码对应的运行环境参数查找到相应的配置参数,根据所述配置参数将符合所述预设测试要求的待处理源代码生成多个程序包,所述程序包的格式可以是jar格式或者war格式,各程序包可以存放在相应的仓库管理器中,当然也可以是存放在所述源代码库中,本实施例对此不加以限制。
本实施例通过上述方案,通过对所述待处理源代码进行编译,并生成编译结果,对所述编译结果进行测试,并生成测试报告,根据所述测试报告将所述待处理源代码生成多个程序包,通过将所述待处理源代码编译,并生成编译结果能方便后续检测所述待处理源代码的正确性,保证软件开发的软件质量,避免后期大量错误代码或运行错误造成软件开发时间的浪费和经济损失,对所述编译结果进行测试,并生成所述测试报告,能够及时发现所述待处理源代码中的错误,进而及时进行修订,能够避免错误代码造成程序运行错误的情况,有效提升了软件开发是速度和效率,保证了软件的正确率和质量,根据所述测试报告将所述待处理代码生成多个程序包,加快了软件开发的速度,提高了软件开发的效率,提升了用户体验。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有软件自动化构建程序,所述软件自动化构建程序被处理器执行时实现如下操作:
服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本;
根据所述待处理源代码生成多个程序包;
根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建。
进一步地,所述软件自动化构建程序被处理器执行时还实现如下操作:
对所述待处理源代码进行编译,并生成编译结果;
对所述编译结果进行测试,并生成测试报告;
根据所述测试报告将所述待处理源代码生成多个程序包。
进一步地,所述软件自动化构建程序被处理器执行时还实现如下操作:
获取所述待处理源代码的类型,查找与所述待处理代码的类型对应的运行环境;
将所述待处理源代码在对应的运行环境中进行编译,并生成所述编译结果。
进一步地,所述软件自动化构建程序被处理器执行时还实现如下操作:
获取预设单元测试码,根据所述预设单元测试码查找到与所述编译结果对应的测试点;
在所述测试点对所述编译结果进行测试,并生成所述测试报告。
进一步地,所述软件自动化构建程序被处理器执行时还实现如下操作:
获取与所述待处理源代码对应的运行环境参数;
根据所述运行环境参数调用相应的配置参数;
将所述测试报告与预设测试要求进行比对分析并生成比对分析结果,根据所述比对分析结果将符合所述预设测试要求的所述待处理源代码作为目标代码;
根据所述预设配置参数将所述目标代码生成多个程序包。
进一步地,所述软件自动化构建程序被处理器执行时还实现如下操作:
从所述预设部署脚本中获取预设部署时间;
对当前运行的原程序进行备份,并停止运行所述原程序;
根据所述预设部署脚本将各程序包覆盖到所述原程序所在的目录下,并根据所述预设部署时间依次启动各程序包。
进一步地,所述软件自动化构建程序被处理器执行时还实现如下操作:
获取各程序包运行的日志信息;
对所述日志信息进行分析,并生成分析结果。
进一步地,所述软件自动化构建程序被处理器执行时还实现如下操作:
建立所述源代码库,将符合预设项目信息的源文件保存至所述源代码库。
本实施例通过上述方案,通过服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本,根据所述待处理源代码生成多个程序包,根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建,通过预设部署脚本对各程序包进行部署,能够不依赖外界工作环境而进行一套流程化的作业,避免了人工操作导致失误,能够有效提高软件开发过程的效率,缩短了开发周期,节约了开发成本,提升了用户体验。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种软件自动化构建方法,其特征在于,所述软件自动化构建方法包括:
服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本;
根据所述待处理源代码生成多个程序包;
根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建。
2.如权利要求1所述的软件自动化构建方法,其特征在于,所述根据所述待处理源代码生成多个程序包,具体包括:
对所述待处理源代码进行编译,并生成编译结果;
对所述编译结果进行测试,并生成测试报告;
根据所述测试报告将所述待处理源代码生成多个程序包。
3.如权利要求2所述的软件自动化构建方法,其特征在于,所述对所述待处理源代码进行编译,并生成编译结果具体包括:
获取所述待处理源代码的类型,查找与所述待处理源代码的类型对应的运行环境;
将所述待处理源代码在对应的运行环境中进行编译,并生成所述编译结果。
4.如权利要求2所述的软件自动化构建方法,其特征在于,所述对所述编译结果进行测试,并生成测试报告,具体包括:
获取预设单元测试码,根据所述预设单元测试码查找到与所述编译结果对应的测试点;
在所述测试点对所述编译结果进行测试,并生成所述测试报告。
5.如权利要求2所述的软件自动化构建方法,其特征在于,所述根据所述测试报告将所述待处理源代码生成多个程序包,具体包括:
获取与所述待处理源代码对应的运行环境参数;
根据所述运行环境参数调用相应的配置参数;
将所述测试报告与预设测试要求进行比对分析并生成比对分析结果,根据所述比对分析结果将符合所述预设测试要求的所述待处理源代码作为目标代码;
根据所述预设配置参数将所述目标代码生成多个程序包。
6.如权利要求1-5中任一项所述的软件自动构建方法,其特征在于,所述根据所述预设部署脚本对各程序包进行部署,以实现软件自动化构建,具体包括:
从所述预设部署脚本中获取预设部署时间;
对当前运行的原程序进行备份,并停止运行所述原程序;
根据所述预设部署脚本将各程序包覆盖到所述原程序所在的目录下,并根据所述预设部署时间依次启动各程序包。
7.如权利要求4所述的软件自动构建方法,其特征在于,所述根据所述预设部署脚本将各程序包覆盖到所述原程序所在的目录下,并根据所述预设部署时间依次启动各程序包之后,所述软件自动构建方法还包括:
获取各程序包运行的日志信息;
对所述日志信息进行分析,并生成分析结果。
8.如权利要求1-5中任一项所述的软件自动化构建方法,其特征在于,所述服务器从源代码库获取源文件,所述源文件包括待处理源代码和预设部署脚本之前,所述软件自动化构建方法还包括:
建立所述源代码库,将符合预设项目信息的源文件保存至所述源代码库。
9.一种服务器,其特征在于,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件自动化构建程序,所述软件自动化构建程序配置为实现如权利要求1至8中任一项所述的软件自动化构建方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有软件自动化构建程序,所述软件自动化构建程序被处理器执行时实现如权利要求1至8中任一项所述的软件自动化构建方法的步骤。
CN201711323261.7A 2017-12-07 2017-12-07 软件自动化构建方法、服务器及存储介质 Pending CN108073400A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711323261.7A CN108073400A (zh) 2017-12-07 2017-12-07 软件自动化构建方法、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711323261.7A CN108073400A (zh) 2017-12-07 2017-12-07 软件自动化构建方法、服务器及存储介质

Publications (1)

Publication Number Publication Date
CN108073400A true CN108073400A (zh) 2018-05-25

Family

ID=62158306

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711323261.7A Pending CN108073400A (zh) 2017-12-07 2017-12-07 软件自动化构建方法、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN108073400A (zh)

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032625A (zh) * 2018-09-04 2018-12-18 山东浪潮云投信息科技有限公司 一种软件持续集成方法及装置
CN109189400A (zh) * 2018-08-07 2019-01-11 北京趣拿软件科技有限公司 程序发布方法及装置、存储介质、处理器
CN109189415A (zh) * 2018-08-31 2019-01-11 郑州云海信息技术有限公司 部署服务器的装置、方法、系统及计算机可读存储介质
CN109240667A (zh) * 2018-09-14 2019-01-18 五八有限公司 一种应用软件的开发方法、装置、存储介质及终端
CN109324789A (zh) * 2018-11-01 2019-02-12 广州南洋理工职业学院 一种软件开发方法
CN109343878A (zh) * 2018-09-19 2019-02-15 北京英视睿达科技有限公司 一种代码部署方法
CN109492073A (zh) * 2018-10-31 2019-03-19 北京达佳互联信息技术有限公司 日志搜索方法、日志搜索装置和计算机可读存储介质
CN109542774A (zh) * 2018-11-02 2019-03-29 平安医疗健康管理股份有限公司 脚本编码格式批量检测方法、装置、终端及可读存储介质
CN109783084A (zh) * 2019-01-18 2019-05-21 广州思坦德计算机信息科技有限公司 一种计算机代码自动生成方法、系统、装置和存储介质
CN109800016A (zh) * 2018-12-13 2019-05-24 平安普惠企业管理有限公司 工程自动部署方法、装置、计算机设备和存储介质
CN109933337A (zh) * 2019-03-25 2019-06-25 北京易链天下技术服务有限公司 一种单机多服务的一键部署策略方法
CN110018964A (zh) * 2019-04-12 2019-07-16 广东电网有限责任公司信息中心 一种面向电力行业研发测试流水线构建方法
CN110221859A (zh) * 2019-06-05 2019-09-10 软通智慧科技有限公司 一种应用的部署上线管理方法、装置、设备和存储介质
CN110286915A (zh) * 2019-06-27 2019-09-27 公安部第一研究所 互联网和可信身份认证平台下的自动化部署系统及方法
CN110308911A (zh) * 2019-07-09 2019-10-08 西安点告网络科技有限公司 软件程序交付方法、装置、终端及存储介质
CN110597553A (zh) * 2019-09-10 2019-12-20 浙江大搜车软件技术有限公司 任务执行方法、装置、计算机设备和可读存储介质
CN110727439A (zh) * 2019-09-02 2020-01-24 深圳壹账通智能科技有限公司 软件安装包构建方法、装置、计算机设备及存储介质
CN110795125A (zh) * 2019-10-21 2020-02-14 上海器魂智能科技有限公司 基于DevOps框架的软件更新方法、系统、设备及可读存储介质
CN111190638A (zh) * 2019-12-26 2020-05-22 航天信息股份有限公司企业服务分公司 一种用于对开发资源进行自动化处理的方法及系统
CN111313545A (zh) * 2020-01-08 2020-06-19 国网内蒙古东部电力有限公司检修分公司 基于大数据的超特高压输电线路在线监测平台
CN111399845A (zh) * 2020-03-12 2020-07-10 北京字节跳动网络技术有限公司 断言的方法、装置、电子设备及计算机可读介质
CN111708706A (zh) * 2020-06-19 2020-09-25 重庆赛宝工业技术研究院 工业互联网app自动化测试系统和测试方法
CN111708549A (zh) * 2020-06-19 2020-09-25 浪潮云信息技术股份公司 全生命周期的运维管理平台实现方法
CN111782523A (zh) * 2020-06-29 2020-10-16 平安国际智慧城市科技股份有限公司 云端服务部署测试方法、装置、电子设备和存储介质
CN111813379A (zh) * 2019-04-11 2020-10-23 阿里巴巴集团控股有限公司 应用部署方法及装置、电子设备、计算机可读存储介质
CN112860274A (zh) * 2019-11-27 2021-05-28 华为技术有限公司 程序包部署的方法、装置、终端设备和存储介质
CN113111000A (zh) * 2021-04-28 2021-07-13 北京中祥英科技有限公司 持续集成自动化测试系统和方法、电子设备、存储介质
CN113342644A (zh) * 2021-05-31 2021-09-03 中国工商银行股份有限公司 基于语法分析技术的测试脚本自动生成方法及装置
CN113391827A (zh) * 2021-08-17 2021-09-14 湖南省佳策测评信息技术服务有限公司 一种基于自动化脚本的应用软件发布方法及系统
CN113849184A (zh) * 2021-08-25 2021-12-28 武汉搜卡科技有限公司 业务项目运维方法、装置、设备及存储介质
CN114253562A (zh) * 2021-12-06 2022-03-29 广东佳米科技有限公司 一种服务器软件包的管理及部署方法及其系统
CN115086287A (zh) * 2022-06-21 2022-09-20 华迪计算机集团有限公司 一种软件产品自动部署方法及系统
CN115373699A (zh) * 2022-07-07 2022-11-22 北京三维天地科技股份有限公司 自动化部署方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970818A (zh) * 2017-03-27 2017-07-21 深圳市中博睿存信息技术有限公司 一种用于Linux平台的软件持续集成方法及装置
US9720800B2 (en) * 2015-08-28 2017-08-01 International Business Machines Corporation Auto-generating representational state transfer (REST) services for quality assurance

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720800B2 (en) * 2015-08-28 2017-08-01 International Business Machines Corporation Auto-generating representational state transfer (REST) services for quality assurance
CN106970818A (zh) * 2017-03-27 2017-07-21 深圳市中博睿存信息技术有限公司 一种用于Linux平台的软件持续集成方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
匿名: ""用Fabric实现自动化部署"", 《HTTPS://WEB.ARCHIVE.ORG/WEB/20170414052401/HTTP://LIYANGLIANG.ME/POSTS/2015/06/DEPLOY-APPLICATIONS-USING-FABRIC/》 *

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109189400A (zh) * 2018-08-07 2019-01-11 北京趣拿软件科技有限公司 程序发布方法及装置、存储介质、处理器
CN109189415A (zh) * 2018-08-31 2019-01-11 郑州云海信息技术有限公司 部署服务器的装置、方法、系统及计算机可读存储介质
CN109032625A (zh) * 2018-09-04 2018-12-18 山东浪潮云投信息科技有限公司 一种软件持续集成方法及装置
CN109240667A (zh) * 2018-09-14 2019-01-18 五八有限公司 一种应用软件的开发方法、装置、存储介质及终端
CN109343878A (zh) * 2018-09-19 2019-02-15 北京英视睿达科技有限公司 一种代码部署方法
CN109492073A (zh) * 2018-10-31 2019-03-19 北京达佳互联信息技术有限公司 日志搜索方法、日志搜索装置和计算机可读存储介质
CN109324789A (zh) * 2018-11-01 2019-02-12 广州南洋理工职业学院 一种软件开发方法
CN109542774A (zh) * 2018-11-02 2019-03-29 平安医疗健康管理股份有限公司 脚本编码格式批量检测方法、装置、终端及可读存储介质
CN109542774B (zh) * 2018-11-02 2023-10-17 深圳平安医疗健康科技服务有限公司 脚本编码格式批量检测方法、装置、终端及可读存储介质
CN109800016A (zh) * 2018-12-13 2019-05-24 平安普惠企业管理有限公司 工程自动部署方法、装置、计算机设备和存储介质
CN109783084A (zh) * 2019-01-18 2019-05-21 广州思坦德计算机信息科技有限公司 一种计算机代码自动生成方法、系统、装置和存储介质
CN109933337A (zh) * 2019-03-25 2019-06-25 北京易链天下技术服务有限公司 一种单机多服务的一键部署策略方法
CN111813379A (zh) * 2019-04-11 2020-10-23 阿里巴巴集团控股有限公司 应用部署方法及装置、电子设备、计算机可读存储介质
CN111813379B (zh) * 2019-04-11 2024-05-31 阿里巴巴集团控股有限公司 应用部署方法及装置、电子设备、计算机可读存储介质
CN110018964A (zh) * 2019-04-12 2019-07-16 广东电网有限责任公司信息中心 一种面向电力行业研发测试流水线构建方法
CN110221859A (zh) * 2019-06-05 2019-09-10 软通智慧科技有限公司 一种应用的部署上线管理方法、装置、设备和存储介质
CN110286915A (zh) * 2019-06-27 2019-09-27 公安部第一研究所 互联网和可信身份认证平台下的自动化部署系统及方法
CN110308911A (zh) * 2019-07-09 2019-10-08 西安点告网络科技有限公司 软件程序交付方法、装置、终端及存储介质
CN110727439A (zh) * 2019-09-02 2020-01-24 深圳壹账通智能科技有限公司 软件安装包构建方法、装置、计算机设备及存储介质
CN110597553A (zh) * 2019-09-10 2019-12-20 浙江大搜车软件技术有限公司 任务执行方法、装置、计算机设备和可读存储介质
CN110795125A (zh) * 2019-10-21 2020-02-14 上海器魂智能科技有限公司 基于DevOps框架的软件更新方法、系统、设备及可读存储介质
CN112860274A (zh) * 2019-11-27 2021-05-28 华为技术有限公司 程序包部署的方法、装置、终端设备和存储介质
CN111190638A (zh) * 2019-12-26 2020-05-22 航天信息股份有限公司企业服务分公司 一种用于对开发资源进行自动化处理的方法及系统
CN111190638B (zh) * 2019-12-26 2024-03-08 航天信息股份有限公司企业服务分公司 一种用于对开发资源进行自动化处理的方法及系统
CN111313545A (zh) * 2020-01-08 2020-06-19 国网内蒙古东部电力有限公司检修分公司 基于大数据的超特高压输电线路在线监测平台
CN111399845A (zh) * 2020-03-12 2020-07-10 北京字节跳动网络技术有限公司 断言的方法、装置、电子设备及计算机可读介质
CN111708706A (zh) * 2020-06-19 2020-09-25 重庆赛宝工业技术研究院 工业互联网app自动化测试系统和测试方法
CN111708549A (zh) * 2020-06-19 2020-09-25 浪潮云信息技术股份公司 全生命周期的运维管理平台实现方法
CN111782523B (zh) * 2020-06-29 2024-06-04 深圳赛安特技术服务有限公司 云端服务部署测试方法、装置、电子设备和存储介质
CN111782523A (zh) * 2020-06-29 2020-10-16 平安国际智慧城市科技股份有限公司 云端服务部署测试方法、装置、电子设备和存储介质
CN113111000B (zh) * 2021-04-28 2023-05-12 北京中祥英科技有限公司 持续集成自动化测试系统和方法、电子设备、存储介质
CN113111000A (zh) * 2021-04-28 2021-07-13 北京中祥英科技有限公司 持续集成自动化测试系统和方法、电子设备、存储介质
CN113342644A (zh) * 2021-05-31 2021-09-03 中国工商银行股份有限公司 基于语法分析技术的测试脚本自动生成方法及装置
CN113342644B (zh) * 2021-05-31 2024-03-26 中国工商银行股份有限公司 基于语法分析技术的测试脚本自动生成方法及装置
CN113391827B (zh) * 2021-08-17 2021-11-02 湖南省佳策测评信息技术服务有限公司 一种基于自动化脚本的应用软件发布方法及系统
CN113391827A (zh) * 2021-08-17 2021-09-14 湖南省佳策测评信息技术服务有限公司 一种基于自动化脚本的应用软件发布方法及系统
CN113849184A (zh) * 2021-08-25 2021-12-28 武汉搜卡科技有限公司 业务项目运维方法、装置、设备及存储介质
CN114253562A (zh) * 2021-12-06 2022-03-29 广东佳米科技有限公司 一种服务器软件包的管理及部署方法及其系统
CN115086287A (zh) * 2022-06-21 2022-09-20 华迪计算机集团有限公司 一种软件产品自动部署方法及系统
CN115373699B (zh) * 2022-07-07 2023-03-31 北京三维天地科技股份有限公司 自动化部署方法和系统
CN115373699A (zh) * 2022-07-07 2022-11-22 北京三维天地科技股份有限公司 自动化部署方法和系统

Similar Documents

Publication Publication Date Title
CN108073400A (zh) 软件自动化构建方法、服务器及存储介质
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
CN102693183B (zh) 一种实现软件自动化测试的方法及系统
CN105302554B (zh) 一种Android系统自动化程序构建方法及系统
US8875105B2 (en) Efficiently developing software using test cases to check the conformity of the software to the requirements
CN110554965B (zh) 自动化模糊测试方法及相关设备、计算机可读存储介质
CN109426516A (zh) 软件版本管理方法及装置
US20130275946A1 (en) Systems and methods for test development process automation for a test harness
US20020198868A1 (en) System and method for specification tracking in a Java compatibility testing environment
US9274930B2 (en) Debugging system using static analysis
CN100401265C (zh) 关键字驱动的自动化测试系统及方法
CN103631720A (zh) 测试用例的生成方法和装置
CN106407100A (zh) 一种实现持续集成测试的方法及装置
CN107463500A (zh) 测试脚本的调试方法、介质、系统和计算设备
CN111143228B (zh) 基于决策表法的测试代码生成方法及装置
CN112463588A (zh) 一种自动化测试系统及方法、存储介质、计算设备
CN112131116A (zh) 一种嵌入式软件自动化回归测试方法
CN111061639A (zh) 一种高效多系统测试代码覆盖率的管理方法
CN112052037A (zh) 一种应用软件开发方法、装置、设备及介质
CN103197947A (zh) 脚本处理方法及装置
Samuel et al. A novel test case design technique using dynamic slicing of UML sequence diagrams
CA2719782A1 (en) Improving code breakage detection using source code history background
CN113138937A (zh) 测试方法和装置
CN112527312A (zh) 一种嵌入式系统的测试方法和测试装置
CN110362463A (zh) 一种自动挑选测试用例进行回归测试的方法和装置

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180525