测试总结-Jenkins 持续集成安装及使用简介(转)

一、前言

持续集成(Continuous integration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。

持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

Jenkins 是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,下载地址:https://bitnami.com/stack/jenkins/installer,提供了 Windows、Linux 和 OS X 平台的安装包。最简便的还是使用提供的 war 包直接启动,下载地址:http://mirrors.jenkins-ci.org/,此时必须保证系统中已经安装了 jdk,最好是 jdk1.5 以上。

二、初始化 Jenkins 插件和管理员用户

下载好 jenkins.war 包之后,在 cmd 下切换到下载目录,然后执行如下命令:

java -jar jenkins.war

启动了自带的 Jetty 服务器

生成随机口令

这样,jenkins 就开始启动了,它的 war 包中自带 Jetty 服务器,第一次启动 Jenkins 时,出于安全考虑,Jenkins 会自动生成一个随机的安装口令。注意控制台输出的口令,复制下来。在浏览器中输入地址:

http://localhost:8080/

首次启动 jenkins 时如果发现一直卡在启动界面,提示:Jenkins正在启动,请稍后...

你可以按 Ctrl + C 强制结束启动,然后再次执行上面的命令,发现就会继续启动了,或者可以修改一下配置文件,因为你所在网络可能被限制了,如下:

进入 jenkins 的工作目录,默认是:C:\Users\Administrator\.jenkins

也可以自定义 jenkins 的工作目录,设置 JENKINS_HOME 环境变量,启动 jenkins.war 后将被解压到 JENKINS_HOME 目录下,同时所有 jenkins 的 plugins 和 配置文件等也将被写入到 JENKINS_HOME 所设置的目录下。

打开 hudson.model.UpdateCenter.xml,将 http://updates.jenkins-ci.org/update-center.json 替换成 http://mirror.xmission.com/jenkins/updates/update-center.json,还是不行的话找到 updates 目录下的 default.json 把里面所有的谷歌地址改成百度的,即将 http://www.google.com/ 替换为 http://www.baidu.com/。

2.1 进入如下页面,输入上面出现的口令

启动后第一次进入如下页面

2.2 进入选择安装插件的页面后,可以选择安装社区推荐的插件或自定义安装,此处选择前者

一般至少需要安装如下几个插件:

Git/Subversion、SSH、Publish Over SSH、Maven 等。

2.3 创建管理员用户

填入账户信息后,进入完成页面:

安装完成。

三、配置 Jenkins 构建工具

用管理员账号第一次登录 Jenkins 后,需要在 "系统管理" -> "全局工具配置" 中,设置你要使用到的构建工具和 JDK 版本。

3.1 进入 jenkins 主界面

3.2 进入全局工具配置页面

点击 "系统管理" -> "全局工具配置"

进入后配置构建工具

3.3 配置 Maven

如果机器上已经安装了 Maven,则在 Maven_HOME 输入框中提供具体的安装路径。否则,你可以选择需要的 maven 版本,让 Jenkins 为你自动下载 maven。

3.4 配置 JDK

同理,如果机器上已经安装了 JDK,则在 JAVA_HOME 输入框中提供具体的安装路径。否则,你可以选择需要的 JDK 版本,让 Jenkins 为你自动下载 JDK。

3.5 配置 Git

如果之前没有为 Jenkins 安装 Git、Subversion(SVN)或 CVS 插件,可以在 "系统管理" -> "管理插件" 中安装。

四、构建作业

构建作业是 Jenkins 构建过程的核心。

4.1 点击创建一个新任务,进入创建项目类型选择页面

如果发现没有 "构建一个maven项目" 这一项,则需要安装 Maven Integration 插件,如下:

4.2 进入构建作业的详细页面

4.3 源码管理

根据自己项目的实际情况选择源码管理的方式:

4.4 构建触发器

其中有 5 个参数,分别表示:

MINUTE:Minutes within the hour(0-59)

HOUR:The hour of the day(0-23)

DOM:The day of the month(1-31)

MONTH:The month(1-12)

DOW:The day of the week(0-7)where 0 and 7 are sunday

常用配置:

0 * * * * 为每个小时执行一次

0 1 * * * 为没天的凌晨1点执行一次,这种配置的设置,适合执行一些冒烟的测试用例

第一个参数:min,0-59

第二个参数:hour:0-23

第三个参数:day:0-31

第四个参数:month:1-12

第五个参数:week:0-7(0 和 7 代表 Sunday)

Jenkins 中 "Poll SCM" 和 "Build periodically"的区别

Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作,配置如下:

*/5 * * * * (每5分钟检查一次源码变化)

Build periodically:周期进行项目构建(它不care源码是否发生变化),配置如下:

0 2 * * * (每天2:00 必须build一次源码)

4.5 构建

在 "Build" 中,默认的项目根目录的 Root POM,即 pom.xml。如果 pom.xml 不在根目录下,就填入子目录,例如:cloud/pom.xml。

如果源码管理中选择 "None",此处点 "高级..." 可以自定义工作空间中的项目地址,如下:

保存上面的构建作业:

五、构建

构建作业之后,就可以执行构建过程了。

5.1 执行构建的方式

 第一种:点击任务名称的右边的小三角,然后点击 "立即构建"

第二种:按照 "构建触发器" 中设置的 "日程表"定时自动触发构建

5.2 构建结果

第一列是 "上次构建状态显示",是一个圆形图标,一般分为四种:

蓝色:构建成功;

黄色:不确定,可能构建成功,但包含错误;

红色:构建失败;

灰色:项目从未构建过,或者被禁用;

如上显示蓝色,表示构建成功。

注意:手动触发构建的时间与自动定时构建的时间互不影响。

5.3 查看控制台输出

可以查看构建成功的控制台输出:

控制台信息显示将构建的 jar 包从项目的 target 目录下归档到了 jenkins 指定的目录下了

此目录显示按照不同的构建编号,构建成功的项目

这与该工程的构建历史中的编号相对应

如果构建失败,可以通过查看构建失败的控制台输出,来得到具体的出错信息,便于调试

点击后查看错误信息,如下:

第二列是 "编译晴雨表",如下:

如果看到你项目变成阴云或者下雨,说明你的项目稳定性不好,需要去查找原因,解决问题。

5.4 部署

如果要部署构建好的 war 包,可以在 Post Steps 中填上 shell 命令,直接用脚本部署。

另一种方式是创建另外一个构建项目,手动触发部署。

无论用哪种方式,都是为了确保编译、部署是通过持续集成服务器完成的,而不是某台开发机器。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,961评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,444评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,009评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,082评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,101评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,271评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,738评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,395评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,539评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,434评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,481评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,160评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,749评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,816评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,038评论 1 256
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,548评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,140评论 2 341

推荐阅读更多精彩内容