Jenkins介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成,这里介绍提升工作效率的几个插件。

一、Naginator Plugin:jenkins执行job失败重试机制

背景:采用httprunner接口测试框架来监听线上接口请求响应结果,再写了python脚本来检测报告中包含failture字符串的结果,失败就发送邮件通知,但是验证了接口请求断言失败了,并没有发送邮件,因为命令写在同一个shell中,且某一命令exit code 不为0,那么构建就会结束构建退出,此命令之后的命令都不会执行,失败导致后面发送邮件的py脚本无法执行,好在无法执行,不然邮件轰炸了各位同事,就演变成了事故。

jenkins java代码统计插件 jenkins常用的插件有哪些_jenkins插件

插件管理,下载naginator插件,可以在构建失败后发起重试;那么情况就明朗了,发送邮件的操作不要给py脚本了,直接交给给jenkins的Extended E-mail Notification插件即可。

解决上面的办法:在fail command命令之后加上:|| echo "continue execute" 即可继续往下执行

二、Extended E-mail Notification

这个插件不多做解释,因为有很多框架都实现了发送邮件通知,但是jenkins也集成了此功能模块,显得更加方便<支持发送文本html标记型语言,支持发送附件>,有个提示:

Default Content模板问题,如果你所有的job都需要使用时且需要个性化,不建议在这里定义一个通用模板,如果只是发送附件,则可以在这里定义通用的测试模板。

<!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 class="table" width="1000" border="1" cellspacing="0" cellpadding="5">

<caption align="center"><h3>项目构建信息</h3></caption>

<thead>

<tr>

<th>构建项目-<b>${PROJECT_NAME}</b></th>

</tr>

</thead>

<tbody>

<tr>

<td><font color="#CC0000"><b>构建结果 - ${BUILD_STATUS}</b></font></td>

</tr>

<tr>

<td>测试数量-${TEST_COUNTS, var="total"}</td>

</tr>

</tbody>

<tr>

本邮件由系统自动发出,无需回复!<br/>

各位同事,大家好,以下为${PROJECT_NAME}项目构建信息</br>

</tr>



<tr>

<td><br/>

<b><font color="#0B610B">构建报告</font></b>

<hr size="2" width="100%" align="center"/>

<ul>

<li>构建报告:<a href="${BUILD_URL}allure/">${PROJECT_URL}allure/</li>

</ul>

</td>

</tr>

<tr>

<td><br/>

<b><font color="#0B610B">构建信息</font></b>

<hr size="2" width="100%" align="center"/>

<ul>

<li>项目名称: ${PROJECT_NAME}</li>

<li>构建编号: 第${BUILD_NUMBER}次构建</li>

<li>触发原因:${CAUSE}</li>

<li>构建状态:${BUILD_STATUS}</li>

<li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>

<li>构建 Url: <a href="${BUILD_URL}">${BUILD_URL}</a></li>

<li>工作目录: <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>

<li>项目 Url: <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>

</ul>

</td>

</tr>

<tr>

<td>

<b><font color="#0B610B">构建详细信息</font></b>

<hr size="2" width="100%" align="center"/>

<ul>

<li>BRANCH_NAME: ${BRANCH_NAME}</li>

<li>CHANGE_ID: ${CHANGE_ID}</li>

<li>CHANGE_URL: ${CHANGE_URL}</li>

<li>CHANGE_TITLE: ${CHANGE_TITLE}</li>

<li>CHANGE_AUTHOR: ${CHANGE_AUTHOR}</li>

<li>CHANGE_AUTHOR_DISPLAY_NAME: ${CHANGE_AUTHOR_DISPLAY_NAME}</li>

<li>CHANGE_AUTHOR_EMAIL: ${CHANGE_AUTHOR_EMAIL}</li>

<li>CHANGE_TARGET: ${CHANGE_TARGET}</li>

<li>BUILD_NUMBER: ${BUILD_NUMBER}</li>

<li>BUILD_DISPLAY_NAME: ${BUILD_DISPLAY_NAME}</li>

<li>BUILD_ID: ${BUILD_ID}</li>

<li>JOB_NAME: ${JOB_NAME}</li>

<li>JOB_BASE_NAME: ${JOB_BASE_NAME}</li>

<li>BUILD_TAG: ${BUILD_TAG}</li>

<li>EXECUTOR_NUMBER: ${EXECUTOR_NUMBER}</li>

<li>NODE_NAME: ${NODE_NAME}</li>

<li>NODE_LABELS: ${NODE_LABELS}</li>

<li>WORKSPACE: ${WORKSPACE}</li>

<li>JENKINS_HOME: ${JENKINS_HOME}</li>

<li>JENKINS_URL: ${JENKINS_URL}</li>

<li>BUILD_URL: ${BUILD_URL}</li>

<li>JOB_URL: ${JOB_URL}</li>

<li>GIT_COMMIT: ${GIT_COMMIT}</li>

<li>GIT_PREVIOUS_COMMIT: ${GIT_PREVIOUS_COMMIT}</li>

<li>GIT_PREVIOUS_SUCCESSFUL_COMMIT: ${GIT_PREVIOUS_SUCCESSFUL_COMMIT}</li>

<li>GIT_BRANCH: ${GIT_BRANCH}</li>

<li>GIT_LOCAL_BRANCH: ${GIT_LOCAL_BRANCH}</li>

<li>GIT_URL: ${GIT_URL}</li>

<li>GIT_COMMITTER_NAME: ${GIT_COMMITTER_NAME}</li>

<li>GIT_AUTHOR_NAME: ${GIT_AUTHOR_NAME}</li>

<li>GIT_COMMITTER_EMAIL: ${GIT_COMMITTER_EMAIL}</li>

<li>GIT_AUTHOR_EMAIL: ${GIT_AUTHOR_EMAIL}</li>

<li>MERCURIAL_REVISION: ${MERCURIAL_REVISION}</li>

<li>MERCURIAL_REVISION_SHORT: ${MERCURIAL_REVISION_SHORT}</li>

<li>MERCURIAL_REVISION_NUMBER: ${MERCURIAL_REVISION_NUMBER}</li>

<li>MERCURIAL_REVISION_BRANCH: ${MERCURIAL_REVISION_BRANCH}</li>

<li>MERCURIAL_REPOSITORY_URL: ${MERCURIAL_REPOSITORY_URL}</li>

<li>SVN_REVISION: ${SVN_REVISION}</li>

<li>SVN_URL: ${SVN_URL}</li>

</ul>

</td>

</tr>

<tr>

<td>

<h4><font color="#0B610B">失败用例</font></h4>

${FAILED_TESTS}<br/>

</td>

</tr>



<tr>

<td>

<h4><font color="#0B610B">最近提交(#$GIT_REVISION)</font></h4>

<!--

<ul>

${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="

<li>%d [%a] %m</li>

"}

</ul>

<-->

</td>

</tr>

<tr>

<td>

<b><font color="#0B610B">变更信息:</font></b>

<hr size="2" width="100%" align="center"/>

</td>

</tr>

<tr>

<td>

<ul>

<li>

上次构建成功后变化 : ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}

</li>

</ul>

</td>

</tr>

<tr>

<td>

<ul>

<li>上次构建不稳定后变化 : ${CHANGES_SINCE_LAST_UNSTABLE, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}

</li>

</ul>

</td>

<tr>

<td>

<ul>

<li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>

</ul>

</td>

</tr>

<tr>

<td>

<ul>

<li>变更集:${JELLY_SCRIPT,template="html"}</li>

</ul>

</td>

</tr>

<tr>

<td><b><font color="#0B610B">构建日志 (最后 200行):</font></b>

<hr size="2" width="100%" align="center"/>

</td>

</tr>

<tr>

<td><textarea cols="120" rows="30" readonly="readonly"

style="font-family: Courier New">${BUILD_LOG, maxLines=200}</textarea>

</td>

</tr>

</table>

</body>

</html>

 三、Git Parameter

目前大多数公司代码都是通过git仓库管理源码,在开发转测试的时候,如果不出什么以外的话,都是以测试分支提测,那么每次构建都需要重新配置git分支,所以建议使用这个插件,可以获取当前git仓库下的所有分支,选择分支进行构建:好比命令:git branch -a 获取分支

jenkins java代码统计插件 jenkins常用的插件有哪些_发送邮件_02

这个是拿来jenkins构建项目分支的,避免在job中写死分支,毕竟每次提测的分支会不一样,尤其是并行开发的,需要更多参数的配置。

四、其他插件:HTML Publisher、Performance Plugin、Git相关插件、Maven相关插件等。