基于Docker快速地部署可持续自动化测试平台

2017-02-13   出处: 咚咚小报  作/译者:咚咚小报

自动化测试的环境部署(包括被测系统运行环境部署和自动化测试平台环境部署)步骤繁杂操作时间长测试成本高,同时测试也普遍存在一些痛点:

🔹 开发、测试、运维环境不统一 

🔹 无法复现测试报出的BUG 

    这里提供一种基于Docker的解决方案来快速地部署统一环境。要用到的工具:Docker、Jenkins、Maven、Sonar。

    先从我们持续集成的技术思路开始:


图1

如图1,开发同学开发完成后,自己本地跑完单元测试,测试OK了,提交到GitHub,GitHub通过Web Hook触发Jenkins的自动构建(maven打包,Sonar代码分析,Docker构建镜像,并Push到Docker镜像仓库),自动完成项目的测试、部署、发布、全程无需小伙伴们的人工操作。

思路大概扒了一下,下面干货来了。

我们要说下Docker。都说Docker天生适合持续集成, Docker带来的是一种真正容器级的实现。Docker的安装同学们可以自行Google,这里就不累赘了。

假设我们的目录结构是这样 ~/docker。

1、安装Maven,并创建一个Maven Webapp项目。

首先通过拉取Docker的Maven镜像进行安装,超级简单,从Docker中央仓库下载maven镜像,命令:docker pull maven。

接着启动运行一个Maven容器命名maven-hello-world,并通过maven命令创建一个Maven Webapp项目,maven-hello-world。

 成功后我们可以看到项目的目录结构如下,再把项目推送到远程git仓库


2、通过Dockerfile方式安装Jenkins。


在~/docker下新建一个jenkins目录,并在目录下新建一个Dockerfile文件,文件内容我们写最简单的“FROM jenkins”。

Dockerfile文件:

然后通过这个Dockerfile去构建自己的Jenkins镜像。


构建完成后我们可以通过docker images命令看到多了2新镜像。


运行镜像。

运行起来后我们配置下Jenkins,安装插件Git plugin和SSH plugin(登陆远程操作)。

在系统管理 > 系统设置里面配置SSH remote hosts。

Jenkins新建一个Hello-world项目。

配置项目的git仓库。

配置git web hook代码更新时自动触发构建。


在~/docker/maven-hello-world下新建基于tomcat的Dockerfile文件内容下:


项目构建时SSH连接远程服务器,执行shell脚本。


Shell脚本关键代码:

3、安装Sonar并集成到Jenkins

和安装Jenkins一样,在~/docker/sonar目录下新建Dockerfile文件,编辑内容“From sonarqube”,并使用命令:docker build构建自己的镜像。

Dockerfile文件:

构建sonarqube镜像:


运行镜像:


在Jenkins里执行shell脚本,通过Maven去调用Sonar服务,在脚本中加入:


以上就是我们的安装,配置了。下面请看效果展示:

修改index.jsp文件,加上时间,并更新远程git仓库

稍等1-2分钟,你会发现Jenkins自动构建了


浏览器效果:


整个流程提交代码,自动构建、部署。

下面我们再加上单元测试,来展示Sonar的效果。

编写好测试脚本:


自动构建后我们可以看到构建成功,和Sonar分析代码结果链接:



点开链接,看以看到Sonar统计信息:



也可以在Jenkins安装jacoco.hpi插件。



结束了!做完这个Demo你会发现部署这环境So easy,没有各种依赖,没有各种系统的差别化安装,从头到尾都是一样、一样、一样。抛开国内糟糕的外网环境,安装整套环境就1个小时内甚至半个小时内的事情。总结下用Docker的方式来部署我们的测试环境,有这么以下几个好处:

🔹   配置一致的测试环境

🔹  软件快速部署

🔹  清洁的测试环境

🔹  快速保留、复制、恢复测试环境 

Just Do It!同学们赶紧上手吧,你会喜欢上这种部署环境的方式的!



声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
1200° /11993 人阅读/1 条评论 发表评论

李维敏  2017-02-15

的确很方便啊,可以省事不少。


登录 后发表评论