惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

Posted 51Testing软件测试网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!相关的知识,希望对你有一定的参考价值。


在上一篇 文章中,我谈了关于Selenium和Jmeter的一些总结。这都最近比较主流的框架和工具,一个可以实现UI自动化测试,一个可以实现API和性能测试,其实还有一种工具可以更大限度的让Selenium和Jmeter在工作生产中发挥自身价值,那就是持续集成。


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!
一、自动化部署的优点


持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。这是百度百科给出的名词解释。如果大家不太理解,我可以给大家举个例子。

比如说,一个产品,定义了很多条需求。如果等到所有需求开发完成,再进行测试,需要耗费大量的时间。如果测试与开发可以并行,就会缩短项目周期。思想如下:


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

一条业务线运行,先开发,后测试,假设需要10天;那么测试开发并行可能7、8天就能结束工作;但是我们发现每一次测试前,都需要部署。重复的部署工作,还是耗费了一些时间的,如果可以让电脑自动完成部署工作,是不是6、7天就能完成工作?这个就要具体去分析部署的工作流程了。


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

这是一个比较简单的部署流程,除了源码下载,其余各阶段,自动化执行都比手工敲打命令速度要快。所以部署的节省时间可以用下面这个公式去计算

节省时间=(单次手工部署耗时*部署次数)-(手工编写脚本耗时+单次自动部署耗时*部署次数)

假设每次手工部署需要20分钟,自动化部署需要8分钟,部署10次,编写脚本20分钟

那么节省时间=(20*10)-(20+8*10)=100分钟

若系统需要分布式部署,节省时间就是成倍增长的。只要节省时间较大,自动化部署方案就可以执行。这便是自动化部署的第一个有点,节省时间。

自动化部署的第二个优点是部署流程严格按照规范执行。其实很多公司在设计、开发、测试、运维等工作领域都制定了一套适合自己公司的流程规范以及制度。但实际上,这些流程和规范随着时间的推移,逐渐被淡化,甚至有些公司在立项时,整个项目就已陷入混乱而不自知。但是机器则不同,每次都会按照你所制定的方案严格执行。

举个例子,上述部署流程的第二步是备份老系统。很多公司没有专业的运维人员,都是开发或测试兼职,在部署上,安全意识淡薄,可能前几次部署,还会去备份,然后就会觉得麻烦,渐渐抛弃这个步骤,等到部署出现问题,需要回滚时,才发现没有备份。所以最近几年,不乏有一些大厂出现删库跑路的新闻,若真的备份了,即便删了库,还原就行了,又何必跑路呢?但是自动化部署就不同,只要你在里面编写备份的脚本,部署成功后,就一定可以找到备份文件。

自动化部署的第三个优点是输入命令的准确率100%。这个也很好理解,人总有疲惫、心烦等各种情绪和状态,即便是满血状态,也可能会在输入命令的时候,打错个别单词,若是在上述部署流程中的“修改配置文件”环节打错字,系统不会报错,待服务启动后,发现各种问题,才回去检查之前的步骤,此时已经耽误相当多的时间了。对自动化部署而言,这条优点就完美体现出来了。

当然优点不止这3条,缺点也是有的,我就不一一列举了。持续集成的工具有很多,如TeamCity、Jenkins、Buildbot等。目前Jenkins的使用人数占比相对较高,下面我就从安装到工程的构建介绍一下Jenkins的使用。


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!
二、Jenkins安装


Jenkins的官网可以下载到Jenkins的安装包,不同的平台,选择不同的入口


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!
惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!
惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

例如Windows,Linux的各个版本等。Windows直接下载压缩包,解压后运行msi,一直点击下一步,即可完成安装。


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

Linux的安装,可以下载到本地安装,也可以在线安装,不同的Linux安装命令也不同,例如Ubuntu的命令是apt,CentOS的命令是yum。


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

安装完成后,打开浏览器,输入localhost:8080


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

第一次安装,需要解锁,解锁密码就在红色路径的文件里。解锁后,根据提示安装插件,创建管理员账号,安装就算完成了。如果在安装后发现8080端口被占用,导致Jenkins无法运行,应该先停止Jenkins服务,然后找到配置文件修改端口号。Windows的配置文件,就在Jenkins安装路径Jenkins.xml文件中修改。而Linux则是在/etc/sysconfig/jenkins文件中修改,不同版本的Linux或许配置文件位置不同,但都在/etc下,仔细找找是可以找到的,也可以用whereis来查找。


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!
三、添加插件、进行各项配置



惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

点击系统管理→插件管理→可选插件,进行搜索,选中后点击安装。安装成功后,刷新页面,就可以在已安装页面中找到。


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

我这里用的是git管理源码,如果是svn,操作方法是相同的。安装git插件,搜索git,如下图


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

安装后,在系统管理→全局工具配置页面下,配置本机git环境


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

如果Jenkins服务器和部署的目标服务器不是同一台机器,那么就需要配置一个远程节点。类似于Jmeter的分布式压测。

点击系统管理→节点管理→新建节点,如下图


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

输入节点名称,选择固定节点,点击确定


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

到这个页面后,Linux和Windows的配置方法是不一样的,我先介绍一下Linux的配置方法。描述字段为了后期方便管理,最好写上和服务器相关的信息,例如IP,项目名称等。远程工作目录是Jenkins调用该节点时,工作文件的保存路径。


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

创建好以后,返回节点列表,会显示一个红色的叉,代表没有连接成功。稍等1分钟,刷新页面,若红色叉消失,代表已经连接成功。如下图


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

若始终显示未连接,则需要检查目标服务器的IP,帐号密码是否正确,端口号是否被防火墙拦截等。

Windows配置远程节点,如下图


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

配置完成后,返回节点列表


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

目前状态是未连接,他不会像Linux那样自动连接,需要我们手动建立连接。点击名称,跳转到如下页面


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

这里提供了两种建立连接的方式,第一种比较简单,点击Launch按钮,会下载一个slave-agent.jnlp文件,将这个文件发送到远程机上,双击运行,如下图


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间! 惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

节点的红色叉消失,连接成功。

第二种方法是点击agent.jar,下载文件。复制页面的命令

java -jar agent.jar -jnlpUrl http://localhost:8080/computer/234/slave-agent.jnlp -secret 2a406deefbbc9a1ee1c73945ad0993019356ad02e7c09e8237598a660cd70ce8 -workDir "D:jenkins"

在agent.jar前面加上本地路径,例如D:/download/agent.jar

localhost要改成Jenkins服务器的ip

运行结果如下,出现Connected表示连接成功


惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!


……


立即点击阅读原文查看全文


Continue



惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!

推荐阅读

点击阅读☞

点击阅读☞

点击阅读☞

点击阅读☞

点击阅读☞

“阅读原文”,查看全文!

以上是关于惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!的主要内容,如果未能解决你的问题,请参考以下文章

gitlab+jenkins自动化上线部署持续集成

Jenkins自动化部署环境搭建

jenkins部署pm2遇到问题

再见 Jenkins!几行脚本搞定自动化部署,这款神器有点厉害

Jenkins实现一键编译部署到Docker

jenkins和ansible的区别