系列文章目录
LDRA Testbed软件静态分析_操作指南
LDRA Testbed软件静态分析_自动提取静态分析数据生成文档
LDRA Testbed软件静态分析_Jenkins持续集成_(1)自动进行静态分析的环境搭建
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果
LDRA Testbed软件静态分析_软件质量度量
LDRA Testbed软件静态分析_常见问题及处理
LDRA Testbed软件单元测试_操作指南
LDRA Testbed软件单元测试_常见问题及处理
LDRA Testbed软件集成测试_操作指南
LDRA Testbed软件集成测试_常见问题及处理
粉丝问题解答系列文章… …
其他持续更新中… …
文章目录
- 系列文章目录
- 前言
- 一、开通邮箱SMTP服务
- 二、安装Email Extension插件
- 三、Jenkins系统设置
- 1.Jenkins Location
- 2.Extended E-mail Notification
- 3.邮件通知
- 四、Jenkins工程配置
- 五、效果展示
- 总结
前言
上一篇文章《LDRA Testbed软件静态分析_Jenkins持续集成_(1)自动进行静态分析的环境搭建》中已经讲了如何通过Jenkins+Git+Testbed搭建自动进行软件静态分析的持续集成环境,在这个基础上,本篇文章继续进行延申,讲解如何在Jenkins上配置用邮件自动将静态分析报告发送给相关人员,确保相关人员能第一时间得到静态分析结果。
一、开通邮箱SMTP服务
以QQ邮箱为例,在邮箱的“设置”中找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,开启服务后,将获取到的授权码复制保存下来。
二、安装Email Extension插件
在Jenkins的插件管理中,确认是否已安装Email Extension(安装Jenkins时,如果选择了安装推荐的插件,一般默认会装上此插件),如果未安装,则搜索Email Extension进行安装即可(安装后记得勾选重启Jenkins)。
三、Jenkins系统设置
1.Jenkins Location
在Jenkins的系统设置中的Jenkins Location处,设置系统管理员的邮件地址(即第一步中准备用于自动发送邮件的邮箱地址):
2.Extended E-mail Notification
在Jenkins的系统设置中的Extended E-mail Notification处,设置SMTP服务器为smtp.qq.com,SMTP Port为465,在“高级设置”中添加凭证,勾选SSL协议:
在点击上图“添加”按钮弹出的窗口中,选择凭证类型为“Username with password”,用户名输入完整的邮箱地址,密码输入第一步中获取到的授权码(注意不是邮箱的登录密码):
参照下图设置默认的邮箱后缀名(识别到用户名后,默认会添加这个作为邮箱后缀)、默认的编码格式为UTF-8、默认的邮件内容格式为HTML、默认的收件人(有多个收件人时用“,”分割;如果要抄送邮件,在邮箱地址前面加“cc:”):
在Default Content中设置默认的邮件内容,这个可以在网上找到后多模板,这里仅提供一种作为参考:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${PROJECT_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>(本邮件是程序自动下发的,请勿回复!)<br/></td></tr><tr><td>附件为本次软件版本的静态分析结果,请注意查收,并及时分析整改!<br/></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>触发原因: ${CAUSE}</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">Changes Since Last Successful Build:</font></b><hr size="2" width="100%" align="center" /></td></tr><tr><td><ul><li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li></ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat=" %p"}</td></tr><tr><td> <hr size="2" width="100%" align="center" /></td></tr><tr><td></td></tr><tr><td><b><font color="#0B610B">构建情况总览:</font></b>${TEST_COUNTS,var="fail"}<br/><hr size="2" width="100%" align="center" /></td></tr><tr><td><textarea cols="80" rows="30" readonly="readonly"style="font-family: Courier New">${BUILD_LOG,maxLines=23}</textarea></td></tr></table>
</body>
</html>
接着往下,勾选“Allow sending to unregistered users”意味着允许向未注册的用户发送邮件。比如Jenkins通过git获取到用户zhang_san提交了软件版本,在完成构建后本来应该向zhang_san发送邮件,但是若zhang_san这个账户此前未在Jenkins上注册,如果没有勾选“Allow sending to unregistered users”,则不会向其发送邮件,并给出提示“Not sending mail to unregistered user (id: zhang_san, email: zhang_san @qq.com) because your SCM claimed this was associated with a user ID ‘zhang_san’ which your security realm does not recognize; you may need changes in your SCM plugin”,如果勾选了“Allow sending to unregistered users”,则会发送邮件,邮件地址为用户名+此前配置的默认邮箱后缀名,如zhang_san @qq.com。
在“Default Triggers”中选择默认的触发邮件方式,比如我这里选择的always代表不管构建结果如何都发送邮件,你也可以选择只在构建成功或者失败时发送。
3.邮件通知
在Jenkins的系统设置中的“邮件通知”处,进行如下设置:
参照下图设置SMTP服务器为smtp.qq.com,根据情况设置用户默认邮件后缀。勾选SMTP认证,并设置第一步中用于发送邮件的邮箱地址和授权码(注意不是邮箱的登录密码),勾选SSL协议:
设置SMTP端口为465,邮件的回复地址与用于自动发件的系统邮箱设置为一致,字符集设置为UTF-8:
完成以上配置后,可以在下方勾选“通过发送测试邮件测试配置”,填写一个邮箱发送邮件测试:
如果发送测试邮件失败,大概率是以下两种原因:
1、系统管理员的邮箱地址未正确设置,应设置为获得了SMTP授权的邮箱;
2、前面的SMTP认证凭证没设置对,记住用户名为邮箱地址,密码为SMTP的授权码,而不是邮箱登录密码。
四、Jenkins工程配置
上一篇文章已经讲了如何创建Jenkins工程,配置git,配置testbed静态分析,这里就不从头开始讲了,接着后面的步骤讲。
在构建后操作中,在生成testbed静态分析报告之后,再增加一个构建后的操作步骤,选择E-mail Notification:
如下选项都保持默认配置(默认配置在之前系统设置中都已经设置好了):
“Attachments”这里可以设置邮件的附件,支持通配符,通过路径和文件名指定附件;“Attach Build Log”可以选择是否要将构建的控制台输出信息作为附件进行发送(可以打压缩包):
以下配置也是保持默认:
点击“Add Triggers”选择触发邮件发送的场景,比如此次选择always:
默认会对git版本的提交者(即developers)和手动设置的收件人列表(即recipient list)发送邮件,你也可以选择其他的人员:
在下面的“高级”设置中,有一些和上面相同的配置,在这里设置会覆盖之前的默认配置,可以根据自己的实际需求进行配置,或者保持默认:
完成以上配置后,点击保存即可。
五、效果展示
完成以上所有配置后,当这个工程配置的git链接有更新时,首先进行上一篇文章中配置的自动进行testbed静态分析,并生成出静态分析报告,然后触发执行今天配置的邮件发送功能,自动给配置的相关人员发送邮件提醒,效果如下:
总结
以上就是在Jenkins中配置邮件自动发送静态分析结果的操作说明,至此,通过这几篇文章,目前已基本做到了软件静态分析的全过程自动化(提交代码->自动触发静态分析->自动触发邮件发送静态分析结果->自动提取数据生成报告文档)。希望对大家有所帮助,如有疑问可以评论或私信交流。