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服务”,开启服务后,将获取到的授权码复制保存下来。
在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/666731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【劳德巴赫 Trace32 高阶系列 5 -- Trace32 JTAG Data.Load 与 Data.Save】

请阅读【Trace32 高阶系列 专栏导读】 文章目录 Data.Load.binaryData.SAVE.BinaryData.Load.binary 用于将二进制文件加载到目标系统的内存中。 Format: Data.LOAD.Binary <file> <address> | <range> [/<option>] <option>: SKIP <of…

基于python+控制台输出的学生信息管理系统

基于python控制台输出的学生信息管理系统 一、系统介绍二、效果展示三、其他系统实现四、获取源码 一、系统介绍 打印功能菜单、添加学生信息、删除学生信息、修改学生信息、显示学生信息、退出系统&#xff0c;并且需要接收用户的输入&#xff0c;在根据输入内容调用相应函数…

理解进程的一些知识准备

1. 认识冯诺依曼体系结构 计算机有很多的体系结构&#xff0c;但到如今&#xff0c;冯诺依曼体系结构变成了主流。 输入设备&#xff1a;话筒、键盘、摄像头、鼠标、磁盘、网卡… 输出设备&#xff1a;声卡、显示器、打印机、显卡、网卡、磁盘… 有的设备既能作为输入设备又能…

多播路由选择

目录 1 多播路由选择 1.1 转发多播数据报时使用三种方法 (1) 洪泛与剪除 RPB 的要点&#xff1a; 1.检查&#xff0c;转发 2.形成以源为根节点的多播转发树 3.剪枝与嫁接 (2) 隧道技术 (tunneling) (3) 基于核心的发现技术 1.2 几种多播路由选择协议 1 多播路由选择 …

docker 构建个人博客网站

1、项目地址 https://gitee.com/hhll/blog-hangliang.git 2、打包docker镜像并上传docker hub 【1】注册docker hub账号https://hub.docker.com/ 【2】在docker hub建对应的仓库 【3】登录docker hub并打包上传前后端镜像 sudo docker login -u xxxx 密码 xxxxxx 后端&am…

视频业务像素、带宽、存储空间计算

一、像素和分辨率 分辨率的单位通常是像素&#xff08;或点&#xff09;&#xff0c;用水平像素数乘以垂直像素数来表示。例如&#xff0c;一个分辨率为1920 x 1080的屏幕有1920个水平像素和1080个垂直像素。 总像素分辨率公式运算 例如 1920 x 10802073600总约200万 500W≈…

Makefile学习

C语言的编译过程 预处理&#xff08;Preprocessing&#xff09; -E是让编译器在预处理之后就退出&#xff0c;不进行后续编译过程&#xff1b;-o是指定输出文件名。 gcc -E hello.c -o hello.i编译&#xff08;Compilation&#xff09; 这里的编译不是指程序从源文件到二进制…

XUbuntu22.04之如何创建、切换多个工作区(二百零九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

Android简单支持项目符号的EditText

一、背景及样式效果 因项目需要&#xff0c;需要文本编辑时&#xff0c;支持项目符号&#xff08;无序列表&#xff09;尝试了BulletSpan&#xff0c;但不是很理想&#xff0c;并且考虑到影响老版本回显等因素&#xff0c;最终决定自定义一个BulletEditText。 先看效果&…

异步解耦之RabbitMQ(二)_RabbitMQ架构及交换机

异步解耦之RabbitMQ(一)-CSDN博客 RabbitMQ架构 RabbitMQ是一个基于AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;协议的消息代理中间件&#xff0c;它通过交换机和队列实现消息的路由和分发。以下是RabbitMQ的架构图&#xff1a; Producer&#xff08;生产…

NAS系统折腾记 – Emby搭建家庭多媒体服务器

Emby简介 Emby是一款优秀的媒体服务器软件&#xff0c;致力于为用户提供丰富的多媒体体验。通过Emby&#xff0c;您可以方便地在家庭内的各种设备上观看您喜爱的电影、电视剧和其他视频内容。而且&#xff0c;Emby还具备强大的媒体管理功能&#xff0c;让您的影视资源井然有序…

Win10系统给文件夹添加备注

在Win10系统中&#xff0c;相信大多用户都没有看到过文件或者是文件夹上有备注信息。下面给大家分享下在Win10系统中给文件夹或文件添加备注的方法。在添加备注之前&#xff0c;首先我们要在需要显示备注的文件夹中显示“备注”标签&#xff0c;否则就算我们给某个文件夹添加了…

BAPI_PRODORD_CREATE-创建生产订单BAPI测试

目录 实现过程和笔记完整程序 实现过程和笔记 完整程序 *&---------------------------------------------------------------------* *& Report z_test_bapi_prodord_create_lhy *&---------------------------------------------------------------------* *&am…

视频编辑场景手绘白板解决方案

传统的视频编辑方式已经不能满足现代企业的多元化需求&#xff0c;美摄科技推出了手绘白板方案&#xff0c;为企业提供了一种全新的直播和视频编辑方式&#xff0c;让手绘内容成为视频的一部分&#xff0c;增强了互动性和视觉效果。 一、手绘白板方案的优势 1、实时手绘&…

《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(6)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述&#xff08;5&#xff09; 4.1 PCIe总线的基础知识 与PCI总线不同&#xff0c;PCIe总线使用端到端的连接方式&#xff0c;在一条PCIe链路的两端只能各连接一个设备&#xff0c;这两个…

RflySim | 定点位置控制器设计实验四

RflySim| 定点位置控制器设计实验四 01 设计实验 1.建立位置控制通道的传递函数模型 使用MATLAB “ControlSystemDesigner”设计校正控制器,使得加入校正环节后系统速度控制环阶跃响应稳态误差 &#xff0c;相位裕度>75截止频率>2.0rad/s。位置控制环截止频率>1rad/…

《Vue3 基础知识》 使用 GoGoCod 升级到Vue3+ElementPlus 适配处理

此篇为 《Vue2ElementUI 自动转 Vue3ElementPlus&#xff08;GoGoCode&#xff09;》 的扩展&#xff01; Vue3 适配 Vue3 不兼容适配 Vue 3 迁移指南 在此&#xff0c;本章只讲述项目或组件库中遇到的问题&#xff1b; Vue3 移除 o n &#xff0c; on&#xff0c; on&#…

第十一章[文件系统]:11.2:文件的复制/删除/移动

一,相关文档: os模块: os --- 多种操作系统接口 — Python 3.12.1 文档源代码: Lib/os.py 本模块提供了一种使用与操作系统相关的功能的便捷式途径。 如果你只是想读写一个文件,请参阅 open() ,如果你想操作文件路径,请参阅 os.path 模块,如果你想读取通过命令行给出的所…

服务器学习

云服务器通常是通过多台物理服务器协同工作来提供的。云服务提供商使用大规模的数据中心&#xff0c;这些数据中心包含许多物理服务器。这些物理服务器上运行着虚拟化技术&#xff0c;允许它们被分割成多个虚拟服务器实例。 当用户请求创建一个云服务器时&#xff0c;云服务提…

【5G SA流程】5G SA下终端完整注册流程介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客内容主要围绕: 5G/6G协议讲解 …