CN114296745A - 软件自动集成、部署、测试方法 - Google Patents
软件自动集成、部署、测试方法 Download PDFInfo
- Publication number
- CN114296745A CN114296745A CN202111407767.2A CN202111407767A CN114296745A CN 114296745 A CN114296745 A CN 114296745A CN 202111407767 A CN202111407767 A CN 202111407767A CN 114296745 A CN114296745 A CN 114296745A
- Authority
- CN
- China
- Prior art keywords
- testing
- deployment
- software
- integration
- automatic
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种软件自动集成、部署、测试方法。该方法可以包括:设定自动运行周期;在每一个自动运行周期依次进行软件的集成、部署与测试;获得每一个自动运行周期的测试报告。本发明从构建、部署到测试都实现了自动化,并且一键执行,无需人工干预,能够高效地实现一体化自动执行管理,有效的简化操作流程,提高执行效率。
Description
技术领域
本发明涉及软件处理领域,更具体地,涉及一种软件自动集成、部署、测试方法。
背景技术
在软件实际的开发中,经常要一边开发一边测试,涉及频繁的打包部署。这些过程如果用手工执行,大概包括如下步骤:
1、提交代码;
2、从SVN取代码并打包;
3、上传到服务器替换旧包;
4、关闭当前服务;
5、执行脚本;
6、重新启动服务;
7、测试执行验证。
上述流程的执行需要的时间较长。
因此,有必要开发一种软件自动集成、部署、测试方法。
公开于本发明背景技术部分的信息仅仅旨在加深对本发明的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
发明内容
本发明提出了一种软件自动集成、部署、测试方法,其从构建、部署到测试都实现了自动化,并且一键执行,无需人工干预,能够高效地实现一体化自动执行管理,有效的简化操作流程,提高执行效率。包括:
设定自动运行周期;
在每一个自动运行周期依次进行软件的集成、部署与测试;
获得每一个自动运行周期的测试报告。
优选地,进行软件的集成包括:
提交及更新代码;
通过集成服务器进行集成构建;
在构建过程中进行预检查;
构建成功后,将代码包通过ftp上传到部署服务器,再调用token启动部署环节。
优选地,集成构建的触发条件为:软件被修改时直接触发,或设定时间启动触发。
优选地,预检查包括:
将源代码进行代码审查、验证和测试构建。
优选地,若构建失败,修复构建过程中的错误,修复后手动启动构建。
优选地,进行软件的部署包括:
在目标服务器上安装IIS、FTP服务,新建站点以及绑定虚拟目录,为用户授权访问共享目录;
启动部署后,远程登录目标服务器,暂停服务,结束进程;
将SVN中的SQL脚本汇总,批量自动执行;
将代码和压缩包拷贝到本地,更换新文件到服务器,替换旧代码;
自动同步元数据库,重新启动服务,部署完成,进入测试环节。
优选地,自动执行包括:
在多个库中并行执行,发现脚本报错通过邮件通知,修改后重新提交,下次部署时可再次执行。
优选地,进行软件的测试包括:
编写测试用例;
配置项目,监听接口信息;
对应测试字段,进行测试。
优选地,接口信息包括:系统链接、登录用户。
优选地,获得每一个自动运行周期的测试报告包括:
通过HttpClient模拟客户端对接口发送请求;
通过对mysql数据库操作,存储数据;
对测试用例分组和逻辑控制,同时生成对结果的统计分析,获得测试报告。
其有益效果在于:
(1)实现了编译、提交、发布、回滚、测试等多个动作的自动化,减少了人工依赖;并且使正在工作的软件一直处于可工作状态;
(2)实现了产品的快速迭代,规范了开发人员的工作模式。
本发明的方法和装置具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施方式中将是显而易见的,或者将在并入本文中的附图和随后的具体实施方式中进行详细陈述,这些附图和具体实施方式共同用于解释本发明的特定原理。
附图说明
通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本发明的一个实施例的软件自动集成、部署、测试方法的步骤的流程图。
图2出了根据本发明的一个实施例的测试覆盖率统计报告的示意图。
具体实施方式
下面将更详细地描述本发明的优选实施方式。虽然以下描述了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。
实施例1
图1示出了根据本发明的一个实施例的软件自动集成、部署、测试方法的步骤的流程图。
如图1所示,本发明提供一种软件自动集成、部署、测试方法包括:步骤101,设定自动运行周期;步骤102,在每一个自动运行周期依次进行软件的集成、部署与测试;步骤103,获得每一个自动运行周期的测试报告。
在一个示例中,进行软件的集成包括:
提交及更新代码;
通过集成服务器进行集成构建;
在构建过程中进行预检查;
构建成功后,将代码包通过ftp上传到部署服务器,再调用token启动部署环节。
在一个示例中,集成构建的触发条件为:软件被修改时直接触发,或设定时间启动触发。
在一个示例中,预检查包括:
将源代码进行代码审查、验证和测试构建。
在一个示例中,若构建失败,修复构建过程中的错误,修复后手动启动构建。
在一个示例中,进行软件的部署包括:
在目标服务器上安装IIS、FTP服务,新建站点以及绑定虚拟目录,为用户授权访问共享目录;
启动部署后,远程登录目标服务器,暂停服务,结束进程;
将SVN中的SQL脚本汇总,批量自动执行;
将代码和压缩包拷贝到本地,更换新文件到服务器,替换旧代码;
自动同步元数据库,重新启动服务,部署完成,进入测试环节。
在一个示例中,自动执行包括:
在多个库中并行执行,发现脚本报错通过邮件通知,修改后重新提交,下次部署时可再次执行。
在一个示例中,进行软件的测试包括:
编写测试用例;
配置项目,监听接口信息;
对应测试字段,进行测试。
在一个示例中,接口信息包括:系统链接、登录用户。
在一个示例中,获得每一个自动运行周期的测试报告包括:
通过HttpClient模拟客户端对接口发送请求;
通过对mysql数据库操作,存储数据;
对测试用例分组和逻辑控制,同时生成对结果的统计分析,获得测试报告。
具体地,本发明的特点是启动代码构建的“持续集成”,将程序包发布到测试环境的“持续部署”,确保质量的“持续测试”,持续并不意味着“一直在运行”,而是指“随时可运行”。本方案是一个自动化的周期性的集成测试过程,从拉取代码、编译构建,运行测试、结果记录、测试覆盖率统计等都是自动完成的,这些过程实现一键式或定时操作,无需人工干预,真正达到了全面自动化。
设定自动运行周期;在每一个自动运行周期依次进行软件的集成、部署与测试:
自动集成:
提交的代码由SVN进行版本控制,开发人员必须及时向版本控制库里提交脚本和代码,也必须经常性的从版本控制库里更新代码到本地;
由专门的集成服务器来执行集成构建,集成构建可以在软件被修改时直接触发,也可以定时启动触发,如早、中、晚各构建一次;
构建过程中,会启动“预检查”,将源代码进行代码审查、验证和测试构建,以保证他们在被允许进入构建之前的检查是通过的,即当变更的代码被合并到代码库中时不会破坏任何内容;构建成功后,将代码包通过ftp上传到部署服务器,再调用token启动部署环节;如果构建失败,优先修复构建过程中的错误,一旦修复,需要手动启动一次构建。
自动部署:
自动部署的前提条件为:目标服务器上要安装IIS、FTP服务,新建站点以及绑定虚拟目录,这样才能将程序包推送到服务器的虚拟目录下,并且要给用户授权访问共享目录。
启动自动部署后,远程登录目标服务器,停服务,结束进程;将SVN中的SQL脚本汇总到一个文件中,批量自动执行,可以在多个库中执行,有脚本报错的通过邮件通知,修改后重新提交,下次部署时可再次执行;
将代码和压缩包先拷贝到本地,然后删除服务器上的旧文件,拷贝新文件到服务器,压缩包解压,替换旧代码;
同步元数据库,只需要设置好来源数据库和目标数据库的IP、账号和密码,在部署的过程中,后台自动同步,断点续传,增量同步,几乎不占内存和CPU资源,并且还支持异构数据库,也可以同步部分表或部分字段,同步更精准,效率更高;
重新启动服务,到此部署完成,进入测试环节。
自动测试:
在当前产品频繁迭代的背景下,回归测试时间越来越少,很难在每个迭代都对所有功能做完整回归,所以对一些相对稳定的流程使用自动化测试来保证其稳定,目前在用的是机器人自动化结合接口自动化测试,使自动化测试实现相对简单,维护成本低,覆盖率高等。重复性高、需要实时监控的流程由机器人自动化实现,例如财务报销、财务单据录入等。通过机器人流程自动化,可以使用工具创建自己的软件机器人,由机器人代替人工,自动执行业务流程,并且任务可分配、可控制。机器人自动化系统主要包含创造者、劳动者、指挥官、魔法师四大模块,为机器人的生产、执行、分配、智能化提高相应的工具和平台。创造者即机器人开发工具,用于搭建流程自动化机器人;劳动者即机器人运行工具,用于运行搭建好的机器人;指挥官即控制中心,用于部署和管理多个机器人;魔法师即AI能力平台,为机器人提供执行流程自动化所需的各种AI能力。
在自动测试的流程中,不需要实时监控的流程由接口自动化实现,接口自动化需要python和mysql库的支持,测试人员需要设计一系列的业务场景,同时考虑测试数据的重复使用以及接口间数据的传递。在场景设计时,务必将初始化数据及结果验证步骤写详细,将数据和结果都写入数据库中,执行时,通过不同的组合来覆盖不同的流程。
自动化测试脚本主要分为三层:testcase层主要编写测试用例;config层主要是项目的配置,监听和接口信息,如系统链接,登录用户等;model层主要是字段于数据库中的对应表的各个字段对应,分层主要是结构清晰,便于维护。
获得每一个自动运行周期的测试报告;通过HttpClient模拟客户端对接口发送post、get等请求。通过对mysql数据库操作,使用数据库存储请求参数、预期结果等。对测试用例分组和逻辑控制,同时生成对结果的统计分析,展示测试报告,测试结果如图2所示。
本发明从构建、部署到测试都实现了自动化,并且一键执行,无需人工干预。自动集成能快速发现错误,每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。人工构建花费的时间大致为1-4小时,使用持续集成后时间提高到10-30分钟。自动部署使发布更新更高效,可以帮助团队更快速、更积极的发布程序和更新程序。在发布时可自动完成大量重复的工作、节省人力。人工部署时从替包、执行脚本、启停服务等等操作需要1小时左右,使用持续部署,只需要20分钟左右完成部署。自动测试使软件的回归测试更方便,可以运行更多更繁琐的测试,并且执行结果易读,便于分析,从而提高软件质量。版本更新时,要对所有的功能回归一次,如果人工执行,需要2天/人,用持续测试,半小时左右能完成。使用持续构建、部署和测试使整体的效率提高了80%,还能更好的保证产品质量。
本领域技术人员应理解,上面对本发明的实施例的描述的目的仅为了示例性地说明本发明的实施例的有益效果,并不意在将本发明的实施例限制于所给出的任何示例。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。
Claims (10)
1.一种软件自动集成、部署、测试方法,其特征在于,包括:
设定自动运行周期;
在每一个自动运行周期依次进行软件的集成、部署与测试;
获得每一个自动运行周期的测试报告。
2.根据权利要求1所述的软件自动集成、部署、测试方法,其中,进行软件的集成包括:
提交及更新代码;
通过集成服务器进行集成构建;
在构建过程中进行预检查;
构建成功后,将代码包通过ftp上传到部署服务器,再调用token启动部署环节。
3.根据权利要求2所述的软件自动集成、部署、测试方法,其中,集成构建的触发条件为:软件被修改时直接触发,或设定时间启动触发。
4.根据权利要求2所述的软件自动集成、部署、测试方法,其中,预检查包括:
将源代码进行代码审查、验证和测试构建。
5.根据权利要求2所述的软件自动集成、部署、测试方法,其中,若构建失败,修复构建过程中的错误,修复后手动启动构建。
6.根据权利要求1所述的软件自动集成、部署、测试方法,其中,进行软件的部署包括:
在目标服务器上安装IIS、FTP服务,新建站点以及绑定虚拟目录,为用户授权访问共享目录;
启动部署后,远程登录目标服务器,暂停服务,结束进程;
将SVN中的SQL脚本汇总,批量自动执行;
将代码和压缩包拷贝到本地,更换新文件到服务器,替换旧代码;
自动同步元数据库,重新启动服务,部署完成,进入测试环节。
7.根据权利要求6所述的软件自动集成、部署、测试方法,其中,自动执行包括:
在多个库中并行执行,发现脚本报错通过邮件通知,修改后重新提交,下次部署时可再次执行。
8.根据权利要求1所述的软件自动集成、部署、测试方法,其中,进行软件的测试包括:
编写测试用例;
配置项目,监听接口信息;
对应测试字段,进行测试。
9.根据权利要求8所述的软件自动集成、部署、测试方法,其中,接口信息包括:系统链接、登录用户。
10.根据权利要求1所述的软件自动集成、部署、测试方法,其中,获得每一个自动运行周期的测试报告包括:
通过HttpClient模拟客户端对接口发送请求;
通过对mysql数据库操作,存储数据;
对测试用例分组和逻辑控制,同时生成对结果的统计分析,获得测试报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111407767.2A CN114296745A (zh) | 2021-11-24 | 2021-11-24 | 软件自动集成、部署、测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111407767.2A CN114296745A (zh) | 2021-11-24 | 2021-11-24 | 软件自动集成、部署、测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114296745A true CN114296745A (zh) | 2022-04-08 |
Family
ID=80965732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111407767.2A Pending CN114296745A (zh) | 2021-11-24 | 2021-11-24 | 软件自动集成、部署、测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114296745A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676068A (zh) * | 2022-05-30 | 2022-06-28 | 云账户技术(天津)有限公司 | 代码覆盖率统计方法、系统、网络设备和存储介质 |
-
2021
- 2021-11-24 CN CN202111407767.2A patent/CN114296745A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676068A (zh) * | 2022-05-30 | 2022-06-28 | 云账户技术(天津)有限公司 | 代码覆盖率统计方法、系统、网络设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110851356B (zh) | 一种基于Selenium的Web应用自动化测试框架及其构建方法、系统 | |
EP3769223B1 (en) | Unified test automation system | |
US6810294B2 (en) | Method and apparatus for automating a microelectronic manufacturing process | |
US8707265B2 (en) | Test automation method for software programs | |
US7165191B1 (en) | Automated verification of user interface tests on low-end emulators and devices | |
US20140181793A1 (en) | Method of automatically testing different software applications for defects | |
CN111897566A (zh) | 一种软件开发持续集成方法、装置、设备和介质 | |
CN113254054B (zh) | 一种智能合约一站式开发系统及方法 | |
CN111611157B (zh) | Gms持续集成构建自动化测试方法及系统 | |
US7257804B2 (en) | Method of producing a software product | |
CN114296745A (zh) | 软件自动集成、部署、测试方法 | |
US7689587B1 (en) | Autorep process to create repository according to seed data and at least one new schema | |
CN110764785B (zh) | 基于开源组件的电力行业云平台工具链及云平台运维方法 | |
CN117111907A (zh) | 一种软件开发系统 | |
CN111813683A (zh) | 一种通用的软件测试环境自动同步方法 | |
CN115185561A (zh) | 一种基于Serveless Jenkins的CICD系统和实现方法 | |
CN114090189A (zh) | 一种基于流水线的构建部署管理方法及系统 | |
CN114428621A (zh) | 一种作业自动化部署方法 | |
CN113886008A (zh) | 一种虚拟机管理方法、系统、设备以及介质 | |
CN112765007B (zh) | 一种集成测试方法、装置及存储介质 | |
CN116126724A (zh) | 一种芯片驱动程序测试方法及测试系统 | |
CN114217768A (zh) | 基于工业物联网的自动化部署方法及系统 | |
CN118466980A (zh) | 一种基于声明式架构的自动化环境配置部署管理方法 | |
CN115495120A (zh) | 设备测试方法及系统 | |
Singhal | CMS: Modernizing a CMS Production Code Base |
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 |