Jenkins介绍
Jenkins是一个开源的Java Web项目,一个持续集成的Web项目。例如在自动化测试中,开发了自动化测试的脚本,不可能一直用IDE来运行,然后查看测试结果,这个时候我们就需要借助一个平台,可以自动获取最新代码,编译并构建,并且是在设置的时间持续执行,自动化完成这些步骤以后并把测试的结果以邮件的形式发送给指定的开发,测试人员,这是Jenkins在自动化测试上的主要用途。
这篇博文旨在把一些零散的资料集中起来,加上我在工作中使用Jenkins时碰到的问题的一个总结。

安装步骤
首先从官网下载Jenkins的工程包 http://mirrors.jenkins-ci.org/war/latest/jenkins.war
可以看到,这是一个Java Web项目的war文件,有两种方式来部署Jenkins:

  1. 通过Tomcat来部署,跟部署一般的Web项目一样进行,如果需要修改Jenkins的根目录,需要设置环境变量,变量名:JENKINS_HOME,变量值:需要设置的路径,然后重启tomcat即可。
  2. 直接通过java命令来部署,通过命令行进入jenkins.war的文件夹中,然后执行命令 java -jar jenkins.war,最后看到如图所示的结果,即部署完成
  3. jenkins 持续集成golang 基于jenkins持续集成web_jenkins 持续集成golang


  4. jenkins 持续集成golang 基于jenkins持续集成web_自动化测试_02

第二种方式更为简单点,如果需要部署的服务器上已经有tomcat的环境,并且想用tomcat来统一管理web系统,可以选择第一种方式。
第二种方式的jenkins根目录文件夹是C:\Users\<用户名>\.jenkins

输入 localhost:8080即可进入Jenkins的主页

jenkins 持续集成golang 基于jenkins持续集成web_jenkins 持续集成golang_03


点击Manage Jenkins进入Jenkins的管理界面,在Install as Windows Service中可以修改Jenkins的根目录文件夹

jenkins 持续集成golang 基于jenkins持续集成web_Jenkins_04


修改成需要的路径以后点击Install

jenkins 持续集成golang 基于jenkins持续集成web_jenkins 持续集成golang_05


完成安装以后,Jenkins会以windows server的方式启动,在开始中执行service.msc命令,查看jenkins service

jenkins 持续集成golang 基于jenkins持续集成web_jenkins 持续集成golang_06


当然,也可以通过命令 service remove jenkins 来卸载。

Jenkins配置
Jenkins部署完成后就可以开始配置任务了,点击New Item按钮后进入项目类型选择的界面,在配置任务之前,需要安装一些必要的插件,Manage Jenkins -> Manage Plugins -> Available
搜索下面几个重要插件并安装
Subversion Plug-in : SVN插件
Maven Integration plugin :Maven插件
Credentials Plugin: 凭证管理插件
Environment Injector Plugin: 环境变量引入插件
Email Extension Plugin: 邮件扩展插件

插件安装完成后开始配置任务,新建一个项目,输入项目名称,因为我的自动化测试框架和脚本是Maven项目,方便管理第三方插件,所以项目选择中选Maven Project

jenkins 持续集成golang 基于jenkins持续集成web_Jenkins_07


下面图文介绍参数的意义

jenkins 持续集成golang 基于jenkins持续集成web_Web_08


jenkins 持续集成golang 基于jenkins持续集成web_Web_09


jenkins 持续集成golang 基于jenkins持续集成web_Jenkins_10


如果执行计划不知道怎么设置,可以点击旁边的问号作为参考

jenkins 持续集成golang 基于jenkins持续集成web_Web_11


简单说就是5个字符,从左到右的意思依次是:分钟,小时,日,月,星期

我一般的设置是 H 10-17 * * 1-5,表示周一到周五,从上午10点到下午5点,每个小时执行一次。基本覆盖了工作的时间。

一个简单的任务就配置完了。其它配置

Jenkins管理配置

jenkins 持续集成golang 基于jenkins持续集成web_自动化测试_12

JDK配置,把服务器上的Java环境贴上去就可以了

jenkins 持续集成golang 基于jenkins持续集成web_jenkins 持续集成golang_13


Maven

jenkins 持续集成golang 基于jenkins持续集成web_Jenkins_14


jenkins 持续集成golang 基于jenkins持续集成web_jenkins 持续集成golang_15

邮件配置,这个配置比Jenkins自带的邮件功能要强大,是上文提到的邮件插件。

jenkins 持续集成golang 基于jenkins持续集成web_Web_16

另外提供一个比较完整的邮件内容模板,粘贴到Default Content即可。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
    offset="0">
    <table width="95%" cellpadding="0" cellspacing="0"
        style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
        <tr>
            <td>(本邮件是程序自动下发的,请勿回复!)</td>
        </tr>
        <tr>
            <td><h2>
                    <font color="#0000FF">构建结果 - ${BUILD_STATUS}</font>
                </h2></td>
        </tr>
        <tr>
            <td><br />
            <b><font color="#0B610B">构建信息</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>项目名称 : ${PROJECT_NAME}</li>
                    <li>构建编号 : 第${BUILD_NUMBER}次构建</li>
                    <li>SVN 版本 : ${SVN_REVISION}</li>
                    <li>触发原因 : ${CAUSE}</li>
                    <li>构建 URL : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
                    <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                </ul>
            </td>
        </tr>
        <tr>
            <td><b><font color="#0B610B">构建项目描述</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td><pre
                    style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">${JOB_DESCRIPTION}</pre>
                <br /></td>
        </tr>
        <tr>
            <td><b><font color="#0B610B">失败的测试结果</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td><pre
                    style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">${FAILED_TESTS}</pre>
                <br /></td>
        </tr>
    <tr>
            <td><pre
                    style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">具体请查看附件build.log</pre>
                <br /></td>
        </tr>
    </table>
</body>
</html>

邮件发送触发方式全部打勾

jenkins 持续集成golang 基于jenkins持续集成web_自动化测试_17

项目的邮件配置如下

jenkins 持续集成golang 基于jenkins持续集成web_jenkins 持续集成golang_18