LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果

系列文章目录

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服务”,开启服务后,将获取到的授权码复制保存下来。
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第1张图片

二、安装Email Extension插件

在Jenkins的插件管理中,确认是否已安装Email Extension(安装Jenkins时,如果选择了安装推荐的插件,一般默认会装上此插件),如果未安装,则搜索Email Extension进行安装即可(安装后记得勾选重启Jenkins)。
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第2张图片

三、Jenkins系统设置

1.Jenkins Location

在Jenkins的系统设置中的Jenkins Location处,设置系统管理员的邮件地址(即第一步中准备用于自动发送邮件的邮箱地址):
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第3张图片

2.Extended E-mail Notification

在Jenkins的系统设置中的Extended E-mail Notification处,设置SMTP服务器为smtp.qq.com,SMTP Port为465,在“高级设置”中添加凭证,勾选SSL协议:
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第4张图片
在点击上图“添加”按钮弹出的窗口中,选择凭证类型为“Username with password”,用户名输入完整的邮箱地址,密码输入第一步中获取到的授权码(注意不是邮箱的登录密码):
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第5张图片
参照下图设置默认的邮箱后缀名(识别到用户名后,默认会添加这个作为邮箱后缀)、默认的编码格式为UTF-8、默认的邮件内容格式为HTML、默认的收件人(有多个收件人时用“,”分割;如果要抄送邮件,在邮箱地址前面加“cc:”):
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第6张图片
在Default Content中设置默认的邮件内容,这个可以在网上找到后多模板,这里仅提供一种作为参考:
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第7张图片

<!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:
%c
"
,showPaths=true,changesFormat="
[%a]
%m
"
,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代表不管构建结果如何都发送邮件,你也可以选择只在构建成功或者失败时发送。
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第8张图片

3.邮件通知

在Jenkins的系统设置中的“邮件通知”处,进行如下设置:
参照下图设置SMTP服务器为smtp.qq.com,根据情况设置用户默认邮件后缀。勾选SMTP认证,并设置第一步中用于发送邮件的邮箱地址和授权码(注意不是邮箱的登录密码),勾选SSL协议:
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第9张图片
设置SMTP端口为465,邮件的回复地址与用于自动发件的系统邮箱设置为一致,字符集设置为UTF-8:
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第10张图片
完成以上配置后,可以在下方勾选“通过发送测试邮件测试配置”,填写一个邮箱发送邮件测试:
在这里插入图片描述
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第11张图片
如果发送测试邮件失败,大概率是以下两种原因:
1、系统管理员的邮箱地址未正确设置,应设置为获得了SMTP授权的邮箱;
2、前面的SMTP认证凭证没设置对,记住用户名为邮箱地址,密码为SMTP的授权码,而不是邮箱登录密码。

四、Jenkins工程配置

上一篇文章已经讲了如何创建Jenkins工程,配置git,配置testbed静态分析,这里就不从头开始讲了,接着后面的步骤讲。
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第12张图片
在构建后操作中,在生成testbed静态分析报告之后,再增加一个构建后的操作步骤,选择E-mail Notification:
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第13张图片
如下选项都保持默认配置(默认配置在之前系统设置中都已经设置好了):
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第14张图片
“Attachments”这里可以设置邮件的附件,支持通配符,通过路径和文件名指定附件;“Attach Build Log”可以选择是否要将构建的控制台输出信息作为附件进行发送(可以打压缩包):
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第15张图片
以下配置也是保持默认:
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第16张图片
点击“Add Triggers”选择触发邮件发送的场景,比如此次选择always:
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第17张图片
默认会对git版本的提交者(即developers)和手动设置的收件人列表(即recipient list)发送邮件,你也可以选择其他的人员:
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第18张图片
在下面的“高级”设置中,有一些和上面相同的配置,在这里设置会覆盖之前的默认配置,可以根据自己的实际需求进行配置,或者保持默认:
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第19张图片
完成以上配置后,点击保存即可。

五、效果展示

完成以上所有配置后,当这个工程配置的git链接有更新时,首先进行上一篇文章中配置的自动进行testbed静态分析,并生成出静态分析报告,然后触发执行今天配置的邮件发送功能,自动给配置的相关人员发送邮件提醒,效果如下:
在这里插入图片描述
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果_第20张图片


总结

以上就是在Jenkins中配置邮件自动发送静态分析结果的操作说明,至此,通过这几篇文章,目前已基本做到了软件静态分析的全过程自动化(提交代码->自动触发静态分析->自动触发邮件发送静态分析结果->自动提取数据生成报告文档)。希望对大家有所帮助,如有疑问可以评论或私信交流。

你可能感兴趣的:(Testbed,jenkins,ci/cd,单元测试,测试工具,集成测试)