CN105117329B - 一种应用程序自动上线方法及系统 - Google Patents
一种应用程序自动上线方法及系统 Download PDFInfo
- Publication number
- CN105117329B CN105117329B CN201510484033.2A CN201510484033A CN105117329B CN 105117329 B CN105117329 B CN 105117329B CN 201510484033 A CN201510484033 A CN 201510484033A CN 105117329 B CN105117329 B CN 105117329B
- Authority
- CN
- China
- Prior art keywords
- application program
- test
- operational order
- operation platform
- module
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种应用程序自动上线方法及系统,所述方法包括:在运维平台上创建需要上线的至少一个应用程序,并从预先配置的操作指令集合中为创建的每一个所述应用程序选择对应的操作指令;为创建的每一个所述应用程序分配测试主机,并在分配的所述测试主机上执行该应用程序的测试;将测试通过的应用程序进行发布更新。通过本发明提供的方法,能够实现各应用程序的自动测试上线,加快和提高了应用程序上线的速度和质量,扭转了现有长期以来人工上线存在的效率低、频出错的局面。
Description
技术领域
本发明涉及应用上线技术领域,具体涉及一种应用程序自动上线方法及系统。
背景技术
目前的应用程序上线主要是采用人工上线方式,对应用程序人工上线存在以下问题:
(1)直接登录生产主机进行操作,有可能造成误操作,导致系统崩溃;
(2)程序多:各应用需部署执行的脚本较多,重新停启的进程较多;
(3)经常熬夜通宵:每次上线,所有开发人员、测试人员、用户都要通宵熬夜,极其损耗体力和精力,长期以往,有害身体健康;
(4)错误反复多:因人工操作主机多,总会出现错误,反反复复;
(5)文件溯源性差:对于原来的文件备份命名上没有规律性,根本分不清是谁做的需求,没法在第一时间找到责任人进行修复和调整;
(6)上线后恢复慢:如果遇到上线出错情况,需要逐台登录主机手工恢复原状态,非常耗时;
(7)测试时间长:上线以后需要对每台机子每个端口进行测试,非常耗费时间。
发明内容
本发明所要解决的技术问题是提供一种应用程序自动上线方法及系统,解决目前人工上线存在效率低、频出错的局面。
本发明解决上述技术问题的技术方案如下:
一方面,本发明提供了一种应用程序自动上线方法,所述方法包括:
S1、在运维平台上创建需要上线的至少一个应用程序,并从预先配置的操作指令集合中为每一个所述应用程序选择对应的操作指令;S2、为创建的每一个所述应用程序分配测试主机,并在分配的所述测试主机上执行该应用程序的测试;
S3、将测试通过的应用程序进行发布更新。
另一方面,本发明提供了一种应用程序自动上线系统,所述系统包括运维平台和多个测试主机;
所述运维平台包括:
应用程序创建模块,用于新建需要上线的至少一个应用程序;
操作指令选择模块,用于从预先配置的操作指令集合中为每一个所述应用程序选择对应的操作指令以创建所述至少一个应用程序;
测试主机分配模块,用于为创建的每一个所述应用程序分配测试主机;
应用程序发布模块,用于将测试通过的应用程序进行发布更新;
所述测试主机包括:
测试执行模块,用于对分配的应用程序执行测试。
本发明提供的一种应用程序自动上线方法及系统,创建需要上线的应用程序,并为创建的每一个应用程序配置对应的操作指令,然后为每一个应用程序配置对应的测试主机,以使应用程序在对应的测试主机上执行测试,对于测试通过的应用程序,则对其进行发布。本发明能够实现各个应用程序的自动测试上线,加快和提高了应用程序上线的速度和质量,扭转了现有长期以来人工上线存在的效率低、频出错的局面。
附图说明
图1为本发明实施例以的一种应用程序自动上线方法流程图;
图2为本发明实施例一中配置各操作指令流程图;
图3为本发明实施例一中创建需求上线的应用程序流程图;
图4为本发明实施例一中对创建的应用程序进行编辑修改示意图;
图5为本发明实施例一中各应用程序在对应的测试主机上执行测试流程图;
图6为本发明实施例一中对测试通过的应用程序进行发布流程图;
图7为本发明实施例一中对已发布的应用程序配置其操作权限流程图;
图8为本发明实施例二的一种应用程序自动上线系统示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例一、一种应用程序自动上线方法。下面结合图1-图7对本实施例提供的方法进行详细说明。
图1中,S1、在运维平台上创建需要上线的至少一个应用程序,并从预先配置的操作指令集合中为每一个所述应用程序选择对应的操作指令。
具体的,若需要对众多个应用程序上线时,由于每一个应用程序均包含若干个操作指令,参见图2,首先在运维平台(也可以称为自动化上线系统)上配置需要最终执行的各类操作指令。比如,可以配置如下类型的操作指令:停进程、程序代码上传、配置文件更新、启动服务、业务监测、系统回退以及系统资源监测等。首先打开配置操作指令的页面,输入操作指令名称,然后在编辑框内输入该操作指令内容,最后进行保存入库,重复配置所有的操作指令。
每一类操作指令,对应一串系统命令,对各类操作指令进行配置时,相当于配置操作指令模板,由具体调用者传入参数,生成最终可执行的操作指令。比如,配置如下类型的操作指令:
(1)备份:关联已经注册的备份指令序列。
(2)停进程:关联已经注册的停进程指令序列。
(3)代码上传:将要更新的程序打包,从svn获取到本地,上传到运维平台指定目录,选择上传文件到生产主机目标目录sftp(安全文件传送协议)更新(支持多主机)。
(4)对于电子渠道,备份文件不允许出现在生产主机,需要备份到准生产环境,文件上传也需要从准生产取到运维平台,然后上传到生产主机,因此,需要增加几个指令,如从准生产取文件到运维平台,从运维平台上传文件到生产。
(5)编译:关联已注册的编译指令。
(6)配置文件更新:系统配置文件预先一次配置好,当有更新操作时,支持选择操作类型(增加,修改,删除)。
(7)数据库配置更新:支持执行sq l脚本文件,修改数据库配置。操作完成后,对修改的结果进行返回展现。
(8)调度更新:支持通过在线修改,同时支持命令序列执行修改,选择对应主机及用户的crontab,选择操作类型,输入修改内容。源内容可以通过在线查看。
(9)启服务:配置服务启用要进行的操作,多主机多用户串行操作,提示每步的操作结果。
(10)业务监测:配置业务监测要执行的指令集合。
当对各类操作指令进行配置后,形成操作指令集合,将配置的操作指令按照预定命名规则进行命名,比如,本实施例采用“各操作指令的功能名称+开发人员名称+时间”的方式对各操作指令进行命名,并将命名好的各个操作指令存储于运维平台。
随后,参见图3,创建需要测试上线的各应用程序,并从预先配置的操作指令集合中为每一个新建的应用程序选择若干个操作指令组成一个应用程序实例,至此,创建需要测试上线的每一个应用程序完毕。
另外,当配置完各个操作指令后,还可以根据对各操作指令的操作权限对各操作指令进行相应的操作,参见图4,比如,在该应用程序中增加操作指令或者对修改某操作指令或删除某操作指令。
S2、为创建的每一个所述应用程序分配测试主机,并在分配的所述测试主机上执行该应用程序的测试。
具体的,当步骤S1创建了需要测试上线的若干个应用程序之后,参见图5,本步骤为这些需要测试上线的应用程序配置相应的测试主机(即应用程序最后在哪台测试主机上执行测试),其中,在一台测试主机上可以对多个应用程序进行测试,因此,应用程序与测试主机为多对一的对应关系。
由于测试主机对应有操作人员的操作权限(即某台特定的测试主机只有某几个执行人员才能使用),因此,为各应用程序配置了对应的测试主机,还需要选择执行测试的执行人员。
随后,运维平台将各应用程序同步分发给对应的测试主机,比如,运维平台通过SFTP(Secure File Transfer Protocol,安全文件传送协议)将各应用程序同步分发给对应的测试主机。各测试主机接收到需要测试上线的应用程序时,对对应的各应用程序执行测试,并将测试后的测试结果上传给运维平台。运维平台将接收到的测试结果与预期结果进行对比,若返回的测试结果与预期结果相同,则对应的应用程序测试通过,否则,对应的应用程序测试失败。另外,对于各测试主机对相应的应用程序执行测试的操作轨迹进行记录,以便当应用程序执行测试过程出现问题时,方便问题的分析定位。
S3、将测试通过的应用程序进行发布更新。
具体的,参见图6,上述步骤对每一个应用程序的测试是否通过做出了判断,本步骤将测试通过的应用程序进行发布。在发布之前,为了确保发布的应用程序的可靠性,对运维平台判断测试通过的应用程序再进行一个审核,审核该准备发布的应用程序确实为测试通过。为经过再次审核,确定为测试通过的应用程序生成授权码,只有拥有授权码的应用程序才能予以发布。在对测试通过的应用程序进行发布的过程中,将每一个应用程序对应的测试主机地址修改为生产主机地址。
参见图7,对测试通过的应用程序发布后,为了确保应用程序的使用安全性,对已经发布的应用程序配置其上线操作执行的时间段以及可操作人员的权限。
实施例二、一种应用程序自动上线系统。下面结合图8对本实施例提供的系统进行详细说明。
参见图8,本实施例提供的系统包括运维平台10和测试主机20,其中,运维平台10包括操作指令配置模块101、操作指令命名模块102、操作指令存储模块103、应用程序创建模块104、操作指令选择模块105、测试主机分配模块106、应用程序下发模块107、对比模块108、测试通过/失败模块109和应用程序发布模块1010,测试主机20包括测试执行模块201和测试结果返回模块202。
操作指令配置模块101主要用于预先配置需要测试上线的各操作指令。
操作指令命名模块102主要用于对操作指令配置模块101配置的各操作指令按照预定规则进行命名。
操作指令存储模块103主要用于将操作指令命名模块102命名后的各操作指令存储于运维平台10。
具体的,在运维平台10(也可以称为自动化上线系统)上配置需要最终执行的各类操作指令。具体配置过程为:首先打开配置操作指令的页面,输入操作指令名称,然后在编辑框内输入该操作指令内容,最后进行保存入库,重复配置所有的操作指令。
当对各类操作指令进行配置后,形成操作指令集合,操作指令命名模块102将配置的操作指令按照预定命名规则进行命名,比如,本实施例采用“各操作指令的功能名称+开发人员名称+时间”的方式对各操作指令进行命名,操作存储备份模块103将命名好的各个操作指令存储于运维平台。应用程序创建模块104主要用于创建需要上线的至少一个应用程序。
操作指令选择模块105主要用于从操作指令配置模块101预先配置的操作指令集合中为每一个新建的应用程序选择对应的操作指令。
具体的,应用程序创建模块104创建需要测试上线的各应用程序,操作指令选择模块105从预先配置的操作指令集合中为每一个新建的应用程序选择若干个操作指令组成一个应用程序实例,至此,创建需要测试上线的每一个应用程序完毕。
另外,当配置完各个操作指令后,还可以根据对各操作指令的操作权限对各操作指令进行相应的操作,比如,在该应用程序中增加操作指令或者对修改某操作指令或删除某操作指令。
测试主机分配模块106主要用于为创建的每一个应用程序分配测试主机。
应用程序下发模块107主要用于将每一个应用程序同步下发给对应的测试主机。
具体的,应用程序创建模块104创建了需要测试上线的若干个应用程序之后,测试主机分配模块106为这些需要测试上线的应用程序配置相应的测试主机20(即应用程序最后在哪台测试主机上执行测试),其中,在一台测试主机20上可以对多个应用程序进行测试。
随后,应用程序下发模块107将各应用程序同步分发给对应的测试主机20,比如,应用程序下发模块107通过SFTP(Secure File Transfer Protocol,安全文件传送协议)将各应用程序同步分发给对应的测试主机20。各测试主机20接收到需要测试上线的应用程序时,其中的测试执行模块201对对应的各应用程序执行测试,测试结果返回模块202将测试后的测试结果上传给运维平台10。运维平台10中的对比模块108将接收到的测试结果与预期结果进行对比,测试通过/失败模块109根据对比结果判断应用程序是否测试通过,若返回的测试结果与预期结果相同,则对应的应用程序测试通过,否则,对应的应用程序测试失败。
应用程序发布模块1010主要用于将测试通过的应用程序进行发布更新。
具体的,测试通过/失败模块109对各应用程序测试是否通过进行了判断,应用程序发布模块1010将测试通过的应用程序进行发布。在发布之前,为了确保发布的应用程序的可靠性,对运维平台判断测试通过的应用程序再进行一个审核,审核该准备发布的应用程序确实为测试通过。为经过再次审核,确定为测试通过的应用程序生成授权码,只有拥有授权码的应用程序才能予以发布。在对测试通过的应用程序进行发布的过程中,将每一个应用程序对应的测试主机地址修改为生产主机地址。
另外,对测试通过的应用程序发布后,为了确保应用程序的使用安全性,对已经发布的应用程序配置其上线操作执行的时间段以及可操作人员的权限。
本发明提供的一种应用程序自动上线方法及系统,创建需要上线的应用程序,并为每一个应用程序配置对应的操作指令,然后为每一个应用程序配置对应的测试主机,以使应用程序在对应的测试主机上执行测试,对于测试通过的应用程序,则对其进行发布,能够实现各个应用程序的自动测试上线,加快和提高了应用程序上线的速度和质量,扭转了现有长期以来人工上线存在的效率低、频出错的局面;将配置的各操作指令按照预定命名规则进行命名,并存储于运维平台,做到有据可查,且当应用程序上线出错时,可以根据运维平台上存储的数据,重新进行上线测试,恢复快;运维平台记录每一个应用程序在测试主机上进行测试的操作轨迹,以便于当应用程序上线测试出错时,对出现的问题分析定位;对于测试通过的应用程序,在发布之前,再次进行审核,保证了应用程序上线的安全可靠。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种应用程序自动上线方法,其特征在于,所述方法包括:
S1、在运维平台上创建需要上线的至少一个应用程序,并从预先配置的操作指令集合中为每一个所述应用程序选择对应的操作指令;S2、为创建的每一个所述应用程序分配测试主机,并在分配的所述测试主机上执行该应用程序的测试;
S3、将测试通过的应用程序进行发布更新;
在发布之前,为了确保发布的应用程序的可靠性,对运维平台判断测试通过的应用程序再进行一个审核,审核该准备发布的应用程序确实为测试通过;为经过再次审核,确定为测试通过的应用程序生成授权码,只有拥有授权码的应用程序才能予以发布。
2.如权利要求1所述的一种应用程序自动上线方法,其特征在于,所述步骤S1之前还包括:
在运维平台上预先配置各操作指令,对所述各操作指令按照预定规则进行命名,并将所述各操作指令存储于运维平台。
3.如权利要求1所述的一种应用程序自动上线方法,其特征在于,所述步骤S2具体包括:
为创建的每一个所述应用程序分配对应的测试主机,运维平台将每一个所述应用程序同步下发给对应的测试主机,以使测试主机对对应的应用程序执行测试,并向运维平台返回测试结果。
4.如权利要求3所述的一种应用程序自动上线方法,其特征在于,所述步骤S3之前还包括:
运维平台将返回的测试结果与预期结果进行对比;
若返回的测试结果与预期结果相同,则对应的应用程序测试通过;否则,测试失败。
5.如权利要求1所述的一种应用程序自动上线方法,其特征在于,所述步骤S3之后还包括:
对已发布的应用程序配置可执行的时间段以及操作权限。
6.如权利要求1所述的一种应用程序自动上线方法,其特征在于,所述方法还包括:
运维平台记录每一个应用程序测试上线操作轨迹。
7.一种应用程序自动上线系统,其特征在于,所述系统包括运维平台和多个测试主机;
所述运维平台包括:
应用程序创建模块,用于创建需要上线的至少一个应用程序;
操作指令选择模块,用于从预先配置的操作指令集合中为创建的每一个所述应用程序选择对应的操作指令;
测试主机分配模块,用于为创建的每一个所述应用程序分配测试主机;
应用程序发布模块,用于将测试通过的应用程序进行发布更新;
所述测试主机包括:
测试执行模块,用于对分配的应用程序执行测试;
在发布之前,为了确保发布的应用程序的可靠性,对运维平台判断测试通过的应用程序再进行一个审核,审核该准备发布的应用程序确实为测试通过;为经过再次审核,确定为测试通过的应用程序生成授权码,只有拥有授权码的应用程序才能予以发布。
8.如权利要求7所述的一种应用程序自动上线系统,其特征在于,所述运维平台还包括:
操作指令配置模块,用于在运维平台上预先配置各操作指令;
操作指令命名模块,用于对配置的所述各操作指令按照预定规则进行命名;
操作指令存储模块,用于将所述各操作指令存储于运维平台。
9.如权利要求7所述的一种应用程序自动上线系统,其特征在于,所述运维平台还包括:
应用程序下发模块,用于将每一个所述应用程序同步下发给对应的测试主机。
10.如权利要求7所述的一种应用程序自动上线系统,其特征在于,所述测试主机还包括:
测试结果返回模块,用于向运维平台返回每一个应用程序执行测试后的测试结果;
所述运维平台还包括:
对比模块,用于将返回的测试结果与预期结果进行对比;
测试通过/失败模块,用于若返回的测试结果与预期结果相同,则对应的应用程序测试通过;否则,测试失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510484033.2A CN105117329B (zh) | 2015-08-07 | 2015-08-07 | 一种应用程序自动上线方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510484033.2A CN105117329B (zh) | 2015-08-07 | 2015-08-07 | 一种应用程序自动上线方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105117329A CN105117329A (zh) | 2015-12-02 |
CN105117329B true CN105117329B (zh) | 2018-09-11 |
Family
ID=54665327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510484033.2A Active CN105117329B (zh) | 2015-08-07 | 2015-08-07 | 一种应用程序自动上线方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105117329B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302731A (zh) * | 2015-12-10 | 2016-02-03 | 北京京东尚科信息技术有限公司 | 网站架构升级测试系统和方法 |
CN107247592B (zh) * | 2017-06-09 | 2021-11-05 | 携程旅游网络技术(上海)有限公司 | 应对多业务场景下的模型管理系统及方法 |
CN111314402B (zh) * | 2018-12-12 | 2022-10-28 | 深圳兆日科技股份有限公司 | web应用发布方法、装置、计算机设备以及存储介质 |
CN112581201A (zh) * | 2019-09-29 | 2021-03-30 | 中国科学院沈阳自动化研究所 | 一种面向工业互联制造的移动开放平台及实现方法 |
CN111580858A (zh) * | 2020-05-07 | 2020-08-25 | 虎扑(上海)文化传播股份有限公司 | 一种代码定时发布方法及发布系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098190A (zh) * | 2011-02-22 | 2011-06-15 | 浪潮(北京)电子信息产业有限公司 | 一种Web项目的自动开发测试系统及方法 |
US8166458B2 (en) * | 2005-11-07 | 2012-04-24 | Red Hat, Inc. | Method and system for automated distributed software testing |
CN102799515A (zh) * | 2011-05-24 | 2012-11-28 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及装置 |
CN103744784A (zh) * | 2014-01-06 | 2014-04-23 | 中国移动(深圳)有限公司 | 手机应用自动化测试方法及系统 |
-
2015
- 2015-08-07 CN CN201510484033.2A patent/CN105117329B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8166458B2 (en) * | 2005-11-07 | 2012-04-24 | Red Hat, Inc. | Method and system for automated distributed software testing |
CN102098190A (zh) * | 2011-02-22 | 2011-06-15 | 浪潮(北京)电子信息产业有限公司 | 一种Web项目的自动开发测试系统及方法 |
CN102799515A (zh) * | 2011-05-24 | 2012-11-28 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及装置 |
CN103744784A (zh) * | 2014-01-06 | 2014-04-23 | 中国移动(深圳)有限公司 | 手机应用自动化测试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105117329A (zh) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117329B (zh) | 一种应用程序自动上线方法及系统 | |
US8707265B2 (en) | Test automation method for software programs | |
CN111399873B (zh) | 一种模型更新方法及装置 | |
US8719782B2 (en) | Integrated package development and machine configuration management | |
CN107463362A (zh) | 基于多个Jenkins的持续部署的方法和系统 | |
CN108038013B (zh) | 分布式性能测试方法及装置与计算机可读存储介质 | |
CN106708740B (zh) | 脚本测试方法及装置 | |
CN108073400A (zh) | 软件自动化构建方法、服务器及存储介质 | |
CN104407971A (zh) | 自动化测试嵌入式软件的方法 | |
CN106201502B (zh) | 一种跨主机应用程序部署方法及装置 | |
WO2012063070A1 (en) | A method of automatically testing different software applications for defects | |
CN104765652B (zh) | 一种数据备份和数据恢复方法及装置 | |
CN106708716A (zh) | 一种软件测试的方法、装置及系统 | |
CN110209584A (zh) | 一种测试数据自动生成方法和相关装置 | |
CN104750601A (zh) | 一种测试方法及装置 | |
CN107992326B (zh) | 基于Struts2框架的Java自动化代码发布方法 | |
CN105391586A (zh) | 一种故障定位分析的方法及系统 | |
CN110795105A (zh) | 一种配电自动化主站系统自动编译部署方法与系统 | |
CN101266566B (zh) | 多测试场景自动调度系统和方法 | |
CN106293775A (zh) | 一种脚本的自动生成方法及装置 | |
CN104182344B (zh) | 一种覆盖安装测试方法及装置 | |
CN113687927A (zh) | Flume任务调度配置方法、装置、设备及存储介质 | |
CN103324494A (zh) | 自动制作补丁的方法、服务器及系统 | |
JP2007140954A (ja) | オペレータ擬似システムおよびオペレータ擬似方法 | |
CN115993977A (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 |