Jenkins之allure测试报告邮件通知

news2024/11/26 2:38:52

Jenkins入门教程:Jenkins入门

一般情况下,我们想让Jenkins将构建结果或构建中的代码执行结果(比如跑批数据)通知我们,这个是构建后的操作。
经常用的是邮件通知

邮件通知基础

Jenkins自带了邮件通知配置,但是不太灵活,我们使用Email Extension来进行邮件配置,这里以QQ邮箱为例

安装Email Extension
在这里插入图片描述

Configure System的邮件配置

System Admin e-mail address的配置:
在这里插入图片描述
安装了Email Extension插件之后,在【Configure System】会出现Extended E-mail Notification,这里配置邮件的一些默认内容:
在这里插入图片描述
在这里插入图片描述

E-mail Notification也要配置管理员邮箱登录信息,也可以测试管理员的邮件是否授权成功,成功则可以正常发送邮件
在这里插入图片描述
点击Test configuration,Jenkins会以管理员邮箱发送给指定的接收人,如果发送成功,则显示successfully,并且能在指定接收人处接收到邮件
在这里插入图片描述

项目内邮箱内容配置

Configure System的邮件配置好之后,各个项目内的邮箱如果需要发送邮件的话,就可以在【Post-build Actions】中,选择Editable Email Notification进行配置
在这里插入图片描述
我们还要在Editable Email Notification做进一步设置,按照构建结果发送给特定组的人员,点击上图中的Advanced Settings,如下:
在这里插入图片描述
设置好之后,进行构建,查看构建日志
在这里插入图片描述
查看发送者邮箱是否收到邮件:
在这里插入图片描述

邮件通知进阶

接下来就以pytest进行邮件通知的实践。本地电脑运行jenkins服务,远程服务器支持pytest的执行。

服务器环境配置

服务器需要执行pytest用例,并生成allure报告,需要先配置相关的运行环境

  • python:本人比较熟悉python3,所以使用python3执行pytest用例
  • 安装pip
  • 安装pytest、allure-pytest库,pytest库是用来执行pytest用例,allure-pytest是生成allure报告
  • java:allure报告是用java语言写的,读取allure报告需要java环境(虽然

我的服务器是Linux环境,相关的环境配置这里就不细说了,可以网上找对应系统对应应用的安装教程

Jenkins配置

本地电脑运行Jenkins服务(Jenkins是由java语言编写的,所以需要安装java)。

上传代码

首先是编写需要部署的代码(即执行文件),然后上传到gitee远程仓库上
在这里插入图片描述

Source Code Management配置

因为是使用gitee仓库管理可执行文件,所以我们选择Git进行配置
在这里插入图片描述

Build Steps配置

需要将代码上传到指定的远程服务器并pytest执行对应的文件
在这里插入图片描述

Exec command说明:

  • cd /root/mail:进入/root/mail目录下,因为我设置了将.py文件上传到这个目录里
  • rm -rf result:删除之前运行的历史数据
  • chmod +x *:上传的文件不是当前用户创建的,只有可读和可写权限,运行.py需要可执行权限,所以添加可执行权限
  • python3 -m pytest --clean-alluredir --alluredir=./result --junitxml=./result/result.xml:python命令的方式执行pytest测试用例,allure数据在当前目录的result文件夹下,执行汇总结果在当前目录的result/result.xml下
  • &&:表示连续执行
  • &:后台执行

远程服务器执行完成后,将allure数据下载下来
在这里插入图片描述
命令解释:

  • pscp -r -pw "xxx" root@43.252.231.68:mail/result . :将43.252.231.68服务器的/root/mail/result(登录用户是root,所以是root加上冒号后面的路径)内容下载到当前命令行所在目录(.表示当前目录,即当前项目的工作空间);xxx是ssh登录密码,root为登录用户名
  • echo y:由于pscp命令会有二次确认(y or n),所以输出y表示确认下载

Post-build Actions配置

Post-build Actions是构建完成后的操作配置,一般是邮件提醒、测试报告配置等。

Editable Email Notification提供了一些变量,我们可以在其模块中使用变量对邮件内容进行设置
在这里插入图片描述

我们先进行邮件配置:
在这里插入图片描述
我们构建下看看结果:
在这里插入图片描述
我们看到收到的邮件中,并没有展示数量。
这是因为我们没有告诉Jenkins去识别xml,所以我们需要让Jenkins知道,有一份xml形式的JUnit test报告。
先在Post-build Actions中,增加Publish JUnit test result report
在这里插入图片描述

在这里插入图片描述
测试报告详情地址中,是个allure报告链接,这个链接也需要配置,让Jenkins知道有个allure报告,具体配置如下:
Post-build Actions模块下,添加Allure Report(需要安装插件Allure Jenkins Plugin并本地安装并配置allure环境)
在这里插入图片描述
Jenkins配置好allure服务后,就可以在对应项目中添加Allure Report
在这里插入图片描述
构建:
Jenkins对应项目下的report目录下存放了allure报告的内容
在这里插入图片描述
可以在项目中查看
在这里插入图片描述
在这里插入图片描述
注意:allure报告的结果也会对构建结果产生影响,如果allure报告中有未成功的测试用例,则构建结果是UNSTABLE,这个暂时没有办法处理

邮件模板

如果我想邮件正文显示如下呢?
在这里插入图片描述
Editable Email Notification提供了设置邮件模板的方式,让我们可以通过提供邮件模板去发送邮件,使用方式是在邮件正文字段Default Content中,通过变量的方式指定邮件模板,邮件模板一般是html,html文件中可以使用Editable Email Notification提供的变量
使用的变量格式:${FILE,path="邮件模板相对项目workspace的相对路径"}
在这里插入图片描述
邮件模板mail_template.html如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>测试报告</title>
</head>
<body>
    <h3><font color="green">【项目${PROJECT_NAME}】用例执行情况如下:</font></h3>
    <table border="1">
        <tr>
            <td><font color="green">测试人员</font></td>
          <td><font color="green">温小八</font></td>
          <td><font color="green">用例总数</font></td>
          <td><font color="green">${TEST_COUNTS,var="total"}</font></td>
        </tr>
        <tr>
          <td><font color="green">成功用例数</font></td>
          <td><font color="green">${TEST_COUNTS,var="pass"}</font></td>
          <td><font color="red">失败用例数</font></td>
          <td><font color="red">${TEST_COUNTS,var="fail"}</font></td>
        </tr>
        <tr>
          <td><font color="grey">跳过用例数</font></td>
          <td><font color="green">${TEST_COUNTS,var="skip"}</font></td>
          <td><font color="red">报告详情地址</font></td>
          <td><a href="${PROJECT_URL}allure" target="_blank">${PROJECT_URL}allure</a></td>
        </tr>
    </table>
</body>
</html>

注意:邮件模板不能访问外部的css资源,所以如果有css使用的话直接在模板里面使用。
mail_template.html作为源码的一部分,存放在templates目录下,邮件正文字段设置如下:
在这里插入图片描述
重新构建后,收到邮件如下:
在这里插入图片描述

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

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

相关文章

灌区信息化和灌区自动化监测方案

一、方案背景 以提升粮食综合生产能力和水资源高效利用作为现代化改造的目标&#xff0c;把国家粮食安全和节水放在首位&#xff1b;以完善灌区工程设施体系和管理体系作为现代化改造的基础&#xff0c;以现代信息技术应用、智慧灌区建设作为提高管理能力和服务水平的手段&…

windows 文件夹目录过长超过长度259字符 文件打不开

当路径超过260个字符时&#xff0c;Windows操作系统就无法处理文件或文件夹&#xff0c;并且无法打开或重命名。这是因为Windows系统使用的文件系统&#xff0c;即FAT和NTFS文件系统&#xff0c;都有最大路径限制。NTFS文件系统最大长度限制为32767个字符&#xff0c;但操作系统…

算法训练day4:栈与队列

那么我这里再列出四个关于栈的问题&#xff0c;大家可以思考一下。以下是以C为例&#xff0c;使用其他编程语言的同学也对应思考一下&#xff0c;自己使用的编程语言里栈和队列是什么样的。 C中stack 是容器么&#xff1f;我们使用的stack是属于哪个版本的STL&#xff1f;我们…

FPGA基于XDMA实现PCIE X8采集AD9226数据 提供工程源码和QT上位机程序和技术支持

目录 1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案5、vivado工程详解6、驱动安装7、QT上位机软件8、上板调试验证9、福利&#xff1a;工程代码的获取 1、前言 PCIE&#xff08;PCI Express&#xff09;采用了目前业内流行的点对点串行连接&#xff0c;比起 PC…

就这些了, 常见 6 款API 文档工具推荐

8年开发经验&#xff0c;想分享一下我接触到这些 API 文档工具&#xff1a; Swagger: Swagger 是一个开源的 API 文档管理工具&#xff0c;可以通过注解自动生成 API 文档&#xff0c;并提供交互式 UI 和 API 调试功能。 Swagger 支持多种语言和格式&#xff0c;包括 Java、Pyt…

Linux没网络的情况下快速安装依赖或软件(挂载本地yum仓库源(Repository))

一、上传iso系统镜像&#xff1a; 上传和系统同一版本、同一位数&#xff08;32bit&#xff1a;i686或i386/64bit:x86_64&#xff09;的系统&#xff0c;不能是Minimal版本&#xff0c;可以是DVD&#xff08;较全&#xff09;或everything&#xff08;最全&#xff09;。 注&am…

Android移除sdk中的权限

有些第三方sdk中的敏感权限会给我们上架带来困扰&#xff0c;比如&#xff1a;QUERY_ALL_PACKAGES权限会导致上架Google play被拒。 案例&#xff1a;<uses-permission android:name"android.permission.QUERY_ALL_PACKAGES" /> 在app下的Manifest中并没有添加…

linux编译安装python的全过程,pip python不与linux系统环境混乱

因为使用要求&#xff0c;使得我需要在linux环境下安装一个独立的python环境&#xff0c;不干扰其他环境。 预安装 在安装python之前&#xff0c;请在linux系统下安装下面这些包&#xff1a; sudo apt-get install namelibssl-dev libcurl4 libcurl4-openssl-dev zlib-devel…

Zynq-7000、国产zynq-7000的GPIO控制(一)

Zynq-7000系列GPIO排布如下图所示&#xff0c;著名手册ug585第14章&#xff0c;第一个图&#xff0c;这图很清晰的表明&#xff0c;一共54个MIO&#xff0c;64个EMIO&#xff0c;所有这些IO共分为4个bank&#xff0c;其中 Bank0 32bit —>> MIO[0:31] Bank1 22bit —…

【移动端网页布局】流式布局案例 ② ( 实现顶部固定定位提示栏 | 布局元素百分比设置 | 列表样式设置 | 默认样式设置 )

文章目录 一、样式测量及核心要点1、样式测量2、高度设定3、列表项设置4、设置每个元素的百分比宽度5、设置图像宽度 二、核心代码编写1、HTML 标签结构2、CSS 样式3、展示效果 三、完整代码示例1、HTML 标签结构2、CSS 样式3、展示效果 一、样式测量及核心要点 1、样式测量 京…

8、接口的高级用法

1、索引类型 我们可以使用接口描述索引的类型和通过索引得到的值的类型&#xff0c;比如一个数组[‘a’, ‘b’]&#xff0c;数字索引0对应的通过索引得到的值为’a’。我们可以同时给索引和值都设置类型&#xff0c;看下面的示例&#xff1a; interface RoleDic {[id: number…

现在的00后,真是卷死了呀,想离职了·····

都说00后躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。这不&#xff0c;刚开年我们公司来了个00后&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪23K&#xff0c;都快接近我了。 后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 …

Spring Aop原理全面详解汇总

文章目录 近期想法什么是AOPSpringAOP与AspectjSpringAOP体系概述概念详解连接点- Jointpoint切入点- Pointcut通知- Advice切面- Aspect织入- Weaving 实现原理—动态代理JDK动态代理描述原理代码示例注意执行结果 优点缺点 CGLib动态代理描述原理代码示例注意执行结果 优点缺…

《数理天地》期刊简介及投稿邮箱

《数理天地》期刊简介及投稿邮箱 《数理天地》用稿以数学、物理、学科交叉、科普等稿件为主&#xff0c;自创刊以来&#xff0c;以新观点、新方法、新材料为主题&#xff0c;坚持"期期精彩、篇篇可读"的理念。数理天地内容详实、观点新颖、文章可读性强、信息量大&a…

操作系统——第一章概论(上)

未闻花名&#xff0c;不见花开 文章目录 1.1.1 操作系统的概念&#xff0c;功能1.1.2 操作系统的特征1.2 操作系统的发展和分类1.3.1 操作系统的运行机制1.3.2 中断和异常 1.1.1 操作系统的概念&#xff0c;功能 通过下图可以发现用户和操作系统是有一部分是相连的&#xff0c…

锁屏密码忘记了?教你40秒破iphone锁屏密码!

案例&#xff1a;iPhone锁屏密码忘记了怎么办&#xff1f; 【求助&#xff0c;昨晚刚改的锁屏密码&#xff0c;今早起来想不起来了。苹果锁屏密码有什么方法可以破解吗&#xff1f;】 当你忘记了iPhone的锁屏密码&#xff0c;可能会感到困惑和无助。本文将介绍40秒破iphone锁屏…

从Redis到KeyDB:实现高可用和高可扩展性的转变

文章目录 从Redis到KeyDB&#xff1a;实现高可用和高可扩展性的转变特点**[线程模型]( )****[链接管理]( )****[锁机制]( )****[Active-Replica]( )** 结语 从Redis到KeyDB&#xff1a;实现高可用和高可扩展性的转变 今天给大家介绍的是KeyDB&#xff0c;KeyDB项目是从redis f…

2023年制造业产品经理NPDP认证报名找弘博创新

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…

IO多路复用机制

从阻塞 I/O 到 I/O 多路复用 阻塞IO&#xff1a; 阻塞 I/O&#xff0c;是指进程发起调用后&#xff0c;会被挂起&#xff08;阻塞&#xff09;&#xff0c;直到收到数据再返回。如果调用一直不返回&#xff0c;进程就会一直被挂起。因此&#xff0c;当使用阻塞 I/O 时&#xff…

【电科复试第一名】23上交819考研经验分享

笔者来自通信考研小马哥23上交819全程班学员 819&#xff0c;上岸经验贴&#xff0c;知无不言 初试第十一&#xff0c;复试第一&#xff0c;总分第七(与第六同分) 考研经历:本科就读与湖南某末985&#xff0c;大学时间没好好学习&#xff0c;天天打王者&#xff0c;玩steam上…