本站小编为你精心准备了阿里云下的持续集成系统设计实现参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
【关键词】持续集成系统;阿里云插件;模块化设计
1引言
很多软件项目都有一个非常奇怪而又常见的特征,即在开发过程里,应用程序在相当长的一段时间内无法运行。大规模团队开发软件中,大多数公司只会在项目收尾阶段才进行分支合并、试运行和验收测试的工作,甚至还会发现软件并不能满足需求的情况。持续集成是一种根本的颠覆。在交付过程中,问题暴露的越早,修复代码的成本越低,成功部署的概率就越大。持续集成高频率地编译、测试、审查、部署项目代码,这其中代码集成是主要的风险来源。因此用户可以体会到持续集成在互联网行业迅速发展的今天,是非常重要的。设计并开发一个自动化的测试系统,可以有效地帮助企业完成其整个的自动化测试过程,对整体的一个开发环境下某些特殊的软件测试系统应该考虑如何能够让其进行全面的、完整的测试,这些都是新时代里自动化软件测试领域里研究的焦点问题。本文对软件自动化测试的相关技术进行了深入的分析研究,构建了一个基于阿里云的持续集成方案,力图从理论上和实用上获得研究进展。
2持续集成系统概述
应用需求规模越是增加就造成需求变化越是频繁,这种情况的产生对于软件开发提出了更高的要求,通过持续集成敏捷软件开发方法能够为企业提供解决的方案。引入迭代式的开发方法将软件生命周期分成几个小的迭代周期过程,使得在开发过程中能够对变化做出快速的响应,为了应对变化的问题敏捷过程在每个迭代周期过程完成之后为用户提供阶段成果,在用户对阶段性结果提出针对性的修改,满足用户的需求。软件开发过程中的多变性的需求也使得版本的时间周期作出调整,在逻辑复杂、需求多变、时间紧迫的开发任务之下,敏捷软件开发方法不断的进行设计改进和测试,通过多轮的更改和修正,从而实现项目过程中变化所带来的成本的下降。因此持续集成受到软件代码程序员的支持成为了现阶段软件工作中不可或缺的内容。持续集成模式如图1所示。
3阿里云插件设计原理
3.1阿里云插件概述
阿里云是阿里巴巴官方的云服务平台,也有着大量的开源产品,这对于某公司后续的二次开发具有重要的意义。阿里云Eclipse插件(AliyunToolkitforEclipse)是阿里云官方提供的适用于EclipseJava集成开发环境的应用插件,致力于为广大开发者提供一站式解决方案,它集成了三部分功能:阿里云产品图形界面、阿里云Java应用向导和阿里云部署&工具。阿里云eclipse插件能够让开发人员更为轻松地使用阿里云系列产品进行开发、调试和部署Java应用程序。借助阿里云Eclipse插件,可以更加快速构建阿里云应用程序,并提高生产力。
3.1.1云产品资源管理和查询云产品图形界面集成了大部分阿里云管理控制台功能,在开发应用程序时,能够轻松访问和管理账户下的云资产,包括ECS、RDS、OSS等所有类型的阿里云基础设施产品。
3.1.2阿里云部署&工具当使用阿里云Java应用向导或自行完成本地项目开发后,借助于用户提供的阿里云部署&工具,可以轻松的将本地的Java应用部署到线上阿里云产品中,从而可以对线上环境中运行的应用程序进行远程调试。
3.1.3阿里云Java应用向导阿里云Eclipse插件包含了适用于Java的阿里云SDK工具包,方便从无到有的在Eclipse内,构建基于阿里云产品的应用服务,包括ECS、RDS、ESS等多种Java应用程序。
3.2阿里云插件的配置
阿里云插件配置主要由图片上传工具osscmd安装、项目配置以及上传三个步骤。osscmd是基于Python2.x的命令行工具,支持Bucket管理、文件管理等功能。如图2所示,其中图片上传工具osscmd的安装,是把本地相对路径static/下的包上传到oss://qy-staticresources/website/里,并做md5校验,然后进行相关项目的后续配置。第二步是对项目maven进行打包,项目maven打包的过程实际上是对插件的文件进行打包,同时也检验打包的空间是否满足要求。项目maven打包如图3所示。第三步是,上传至OSS(ObjectStorageService)。在OSS中,用户操作的基本数据单元是文件对象(Object)。单个文件的最大允许大小是根据上传数据方式不同而不同的,如PutObject方式文件最大不能超过5GB。上传至OSS如图4所示。
4基于阿里云的持续集成系统功能模块的实现
4.1基本开发环境框架
针对基于阿里云的持续集成系统进行的功能和系统开发,目的是为判定该系统所具有的功能是否正确。本测试为保证软件的正常运行,服务器端选用了较高的软硬件配置,客户端采用商用的工作站,具体配置如下:软件配置环境主要是:客户端配置:Windows7操作系统浏览器配置:InternetExplorer8.0服务器软件配置环境:jenkens服务器;ARP解析防火墙;Resin-3.0.27;SQLServer2013等。
4.2系统整体构成和设计实现
基于阿里云持续集成系统的功能模块,结合对于需求的分析我们可以将系统架构分为三层:第一层是用户接口层,第二层是适配处理层,第三层是下载处理层。用户接口层属于直接对接用户的层次,主要是针对用户的操作进行实现,属于协议中系统应用层,用户可以通过安装模块实现全局配置;下载处理层则是将软件版本与路由器端口对应,通过更新路由器新版本实现系统重启升级;适配处理层在在下载层和用户接口层之间,主要是将两层的数据相连接,通过处理可以实现两层之间数据的传输。基于阿里云持续集成系统的适配处理层需要同时实现多个路由器版本升级,因此在下载需求配置时需要多线程模块同时进行。结果报告模块显示命令行的结果,向用户展示集成的结果。在功能层面,基于阿里云的持续集成系统功能模块主要分为三个功能模块:构建、自动化测试、持续集成系统。这三个模块是构建基于阿里云的持续集成系统最为基础的三个内容,因此本文基于构建——自动化测试——持续集成系统三个功能模块展开设计。
4.2.1构建构建主要通过初始化阶段、用例执行阶段、报告生成阶段三个阶段实现。(1)初始化阶段:初始化阶段主要是springbean的初始化以及解析页面信息配置文件,最终初始化测试数据;springbean的初始化包括bean容器ExecutionUtil的初始化,通过ShutDownHook类加入钩子防止程序出现意外关闭的情况。加入主配置文件page.xml并导入文件流从而解析主配置文件,通过PageManager类设置页面对象和浏览器配置信息,通过DatalnfoManager类设置页面数据并关联相关数据路径,实现页面对象信息的导入;最后页面对象信息通过dataMap获取对应的数据,将数据值预设在对应对象上。(2)例执行阶段:用例执行阶段作为整个测试过程最为核心的活动,主要是完成不同的业务逻辑测试。完成逻辑测试需要启动测试过程监听器,通过不同状态执行监听对于各种测试情况进行反馈。通过从pageMap中取出相关页面对象并获取用户名文本框对象,对文本框对象通过定位策略,定位到对应文本框元素;根据页面对象通过定位策略定位到实际页面按钮进行点击操作,到此业务逻辑操作完成。(3)告生成阶段:主要功能有对测试过程的日志进行整理、生成测试报告、发送邮件给相关人员。激活报告监听并调用TestNG框架并发送报告邮件给关系人。
4.2.2自动化测试自动化测试是持续集成系统最为重要的执行过程,通过测试服务主程序ITest.sh,来对指定的测试计划进行规划并完成产品的测试工作。并通过每日构建进行日常检查。通过日构建进行检查,在测试计划文件中,通过plan_coverage.sh的功能有效排除不成功的平台测试计划,检查构建报告是日构建之中最为重要地工作。检查构建报告,主要是在自动化测试前对构建的结果报告进行分析,通过对构建成功的产品进行分析,从而获得自动化测试可行性。
4.2.3持续集成系统基于阿里云的持续集成系统的实现,借助于流水线业务实现。通过集成、测试、以及部署上线整个流程不断的触发达到持续集成的效果,在持续集成的过程中流水线功能可以快速发现问题并及时修复,从而提升产品的可靠度。定时启动管理主要是通过持续集成的机制,不断定时进行启动。代码完成——测试完成——验收完成中所有流程的完成对于生产率的提升和测试有着重要的意义。实时监控是与定时启动管理相互关联的功能。实时监控通过Jenkins实现了多任务同时运行,实时监控和报告构建形成最终的结果,在宏调用下通过循环的方式执行各构建周期。报告日志读取存储管理,在测试环境的自动部署完成之后执行自动化测试,最终向相关人员发送测试结果报告。
5总结
本文立足于持续集成系统的实际功能需求,在介绍持续集成系统的基础上进一步介绍阿里云插件设计原理以及基于阿里云的持续集成系统功能模块的实现,进而实现构建——自动化测试——持续集成系统三个功能模块的设计。本文的研究对于企业来说借助该系统能够进行更为全面的、完整的测试,并将所有的过程完全的自动化,具有很强的应用价值。本文构建了一个基于阿里云的持续集成方案,从理论上和实用上都具有一定价值。
参考文献
[1]黄永刚,王斯洋.持续集成方法在项目中的应用实践[J].中国财政电脑,2008(8):59-61.
[2]王英.持续集成在软件项目管理中的作用[J].福建电脑,2009(12):66-67.
[3]戴建国,赵庆展,郭理.持续集成在项目开发中的应用研究[J].计算机工程与设计,2009,30(10):2573-2576.
[4]Kentbeck.测试驱动开发:实战与模式解析[M].北京:机械工业出版社,2013.
[6]吴志福.基于持续集成环境的软件过程管理[J].福建电脑,2011(5):85-86.
[7]徐仕成,杨邦荣.基于CruiseCoWrol的持续集成实现方案[J].计算机与数字工程,2007,35(4):169-175.
[8]陈刚,羌铃铃.如何实现主从SMP之间转发MML命令[J].电脑编程技巧与维护,2010(6):41-43.
[9]刘啸.主流源码版本管理工具的特色浅析[J].程序员,2008(03):116-118.
作者:何东 单位:翼软科技有限责任公司