Jenkins上配置Robot Framework测试邮件通知模板

时间:2022-09-09 17:27:50

邮件效果

测试成功如下所示:

Jenkins上配置Robot Framework测试邮件通知模板
jenkins_robot_success

测试失败如下所示:

Jenkins上配置Robot Framework测试邮件通知模板
jenkins_robot_failure

通过这个模板,我们能够很直观地看出测试的执行情况,以及相关的统计信息。接下来我们详细介绍如何配置邮件模板

配置邮件模板

第一步编写邮件模板

我们的邮件模板是基于groovy脚本编写的。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<style type="text/css">
/*base css*/
a{color:#4a72af}
body{background-color:#e4e4e4}
body,p{margin:0;padding:0}
img{display:block}
h1,h2,h3,h4,h5,h6{margin:0 0 .8em 0}
h3{font-size:28px;color:#444!important;font-family:Arial,Helvetica,sans-serif}
h4{font-size:22px;color:#4a72af!important;font-family:Arial,Helvetica,sans-serif}
h5{font-size:18px;color:#444!important;font-family:Arial,Helvetica,sans-serif}
p{font-size:12px;color:#444!important;font-family:"Lucida Grande","Lucida Sans","Lucida Sans Unicode",sans-serif;line-height:1.5} table.robotstat {
border: 1px solid black;
border-collapse: collapse;
empty-cells: show;
margin: 0px 1px;
table-layout: fixed;
word-wrap: break-word;
font-size: 1em;
border-width:1px;
} tr.test_column_robot {
background-color:#C6C6C6;
} ol li img{display:inline;height:20px}
/*div styles*/
.news{text-align:center;padding-top:15px;}
.content{width:720px;margin:0 auto;background-color:white}
.round_border{margin-bottom:5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;margin-top:0;font-size:14px;padding:6px;border:1px solid #ccc}
.status{background-color:<%=
build.result.toString() == "SUCCESS" ? 'green' : 'red' %>;font-size:28px;font-weight:bold;color:white;width:720px;height:52px;margin-bottom:18px;text-align:center;vertical-align:middle;border-collapse:collapse;background-repeat:no-repeat}
.status .info{color:white!important;text-shadow:0 -1px 0 rgba(0,0,0,0.3);font-size:32px;line-height:36px;padding:8px 0}
.main img{width:38px;margin-right:16px;height:38px}
.main table{font-size:14px;}
.main table th{text-align:right;}
.bottom-message{width:720px;cellpadding:5px;cellspacing:0px}
.bottom-message .message{font-size:13px;color:#aaa;line-height:18px;text-align:center}
.bottom-message .designed{font-size:13px;color:#aaa;line-height:18px;font-style: italic;text-align:right}
img.cartoon {width: 36px; display:inline}
</style>
<body>
<div class="content round_border">
<div class="status">
<p class="info">构建状态 <%= build.result.toString().toLowerCase() %></p>
</div>
<!-- status -->
<div class="main round_border">
<table>
<tbody>
<tr>
<th>项目名称:</th>
<td>${project.name}</td>
</tr>
<tr>
<th>构建轮次:</th>
<td><a
href="${rooturl}${build.url}">${build.displayName}(点击查看此轮构建信息)</a></td>
</tr>
<tr>
<th>构建时间:</th>
<td>${it.timestampString}</td>
</tr>
<tr>
<th>构建时长:</th>
<td>${build.durationString}</td>
</tr>
<tr>
<th>构建缘由:</th>
<td><% build.causes.each() { cause -> %> ${cause.shortDescription} <% } %></td>
</tr>
<tr>
<th>测试报告:</th>
<td><a
href="${rooturl}${build.url}robot">点击查看测试报告详情</a></td>
</tr>
<tr>
<!-- test stat -->
<th>测试统计:</th></br>
<td>
<table id="robotstat" class="robotstat">
<thead>
<tr id="test_column_robot" class="test_column_robot">
<th>测试总用例数</th>
<th>失败用例数</th>
<th>测试通过率</th>
</tr>
</thead>
<tbody>
<tr>
<% def robotTestResultAction = it.getAction("hudson.plugins.robot.RobotBuildAction") %>
<td>${robotTestResultAction.getTotalCount()}</td>
<td>${robotTestResultAction.getFailCount()}</td>
<td>${robotTestResultAction.getOverallPassPercentage()}%</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<th>变更记录:</th>
<td><a
href="${rooturl}${build.url}changes">点击查看变更记录</a></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
</tbody> </table> </div>
<!-- main -->
<% def artifacts = build.artifacts
if(artifacts != null && artifacts.size() > 0) { %> <div class="artifacts round_border">
<b>Build Artifacts:</b>
<ul>
<% artifacts.each() { f -> %>
<li><a href="${rooturl}${build.url}artifact/${f}">${f}</a></li>
<% } %>
</ul>
</div>
<% } %>
<!-- artifacts --> <% def changeSet = build.changeSet
if(changeSet != null) {
def hadChanges = false
def count = 0 %> <div class="details round_border">
<b>变更详细:</b>
<ol>
<% changeSet.each() { cs ->
hadChanges = true
def aUser = cs.author %>
<li>${cs.msgAnnotated} (${aUser.displayName})
(<a href="${rooturl}${build.url}changes#detail${count}">detail</a>)</li>
<% count ++
} %>
</ol>
</div>
<% } %>
<!-- details -->
</div>
<!-- content --> <table class="bottom-message" align="center">
<tr>
<td class="message">You are receiving this email because you
are relavent with this build<br>
</td>
</tr>
<tr>
<td colspan="2" class="designed">designed by @wangyang </td>
</tr>
</table>
<!-- bottom message --> </body>

这个邮件模板是基于groovy-html-larry.template模板改造的,我们将模板文件放到$JENKINS_HOME/email-templates目录下,如果没有这个目录,自己创建该目录。

第二步配置邮件

这里,我们需要在Jenkins安装email-ext插件,配置如下图所示:

Jenkins上配置Robot Framework测试邮件通知模板
jenkins_robot_email_template

这样的话,我们就完成了邮件模板的配置了。如果邮件发送设置正确的话,我们应该可以收到测试邮件通知。

其他

我们还可以自己编写HTML的邮件模板,而不用email-ext插件,下面是我配置效果, 执行完成后,会收到这样的邮件通知。

Jenkins上配置Robot Framework测试邮件通知模板
test_fail_email_report
Jenkins上配置Robot Framework测试邮件通知模板
test_pass_report

作者:wywincl
链接:http://www.jianshu.com/p/9368b6627a6d
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Jenkins上配置Robot Framework测试邮件通知模板的更多相关文章

  1. 用 Python 写 Robot Framework 测试

    Robot Framework 框架是基于 Python 语言开发的,所以,它本质上是 Python 的一个库. 1.你懂 Python 语言. 2.又想使用 Robot Framework 测试框架 ...

  2. 【转】jenkins上配置robotframeworkride自动化脚本任务

    jenkins上配置robotframeworkride自动化脚本任务 编写好的自动化脚本,集成在jenkins上进行自动运行于监控,这里采用分布式构建,在一台slave上进行任务构建与自动化脚本的运 ...

  3. Jenkins进阶系列之——02email-ext邮件通知模板

    发现一个很好的邮件通知模板,根据我的需求定制了一些.分享一下. Default Subject: 构建通知:${BUILD_STATUS} - ${PROJECT_NAME} - Build # ${ ...

  4. 配置Robot Framework 环境时如何查看wxPython是否成功安装

    配置Robot Framework,win10系统,安装版本分别如下:

  5. Jenkins email-ext邮件通知模板

    http://blog.csdn.net/houyefeng/article/details/51344337 示例 以html格式发送送如下内容:邮件内容为项目名称.构建次数.触发原因.构建日志前1 ...

  6. Jenkins&plus;Gitlab CE&plus;Robot Framework持续集成

    环境 Ubuntu 14.04.3 LTS Desktop 前提 1.在本地能执行测试脚本(pybot yourTestSuit.txt),本文不讲解如何学习使用RF框架 2.已有Gitlab环境,本 ...

  7. Robot Framework测试框架用例脚本设计方法

    Robot Framework介绍 Robot Framework是一个通用的关键字驱动自动化测试框架.测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储.通过测试库中实现的关键字驱动 ...

  8. Robot FrameWork测试案例

    Robot FrameWork是一个自动测试框架,可到官网查看详细介绍. 安装 Robot Framework 本文中的Robot framework安装在Win7 (32 bit) 平台上. 接下来 ...

  9. Robot Framework测试框架学习笔记

    一.Robot Framework框架简介         Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架,通常用于端到端的可接收测试和可接收测试驱动的开发.可以 ...

随机推荐

  1. OpenGL ES&colon; Array Texture初体验

    [TOC] Array Texture这个东西的意思是,一个纹理对象,可以存储不止一张图片信息,就是说是是一个数组,每个元素都是一张图片.这样免了频繁地去切换当前需要bind的纹理,而且可以节省系统资 ...

  2. &period;NET中Redis安装部署及使用方法简介附-&gt&semi;开源Redis操作辅助类

    Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.* 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/. Re ...

  3. BZOJ4699 &colon; 树上的最短路

    这道题主要是要解决以下两个问题: 问题1: 给定一个点$x$,如何取出所有经过它的下水道? 一条下水道经过$x$等价于它起点在$x$的子树里面且终点不在$x$的子树里面,或者两端点的lca就是$x$. ...

  4. Windows 下java环境变量的配置(Windows7 ,8,8&period;1,10)

    Windows 下java环境变量的配置 在“系统”面板的左上角选择“高级系统设置”,在弹出的系统属性中选择”高级“项,然后点击右下角的“环境变量(N)...”,就此进入JAVA环境变量的配置. 如果 ...

  5. iconv any encoding to UTF-8

    http://*.com/questions/9824902/iconv-any-encoding-to-utf-8

  6. iOS开发——实时监控网速(仅作参考,发现一点问题)

    开发中用到获取网速的地方,应该就两种: 1.下载速度,这种可以直接在接受数据的地方统计计算.这个就不讲了. 2.获取手机网卡的数据,可以监控网卡的进出流量,下面就是. #import "Vi ...

  7. 网络配置:linux学习第一篇

    1.      先使用dhclient获取ip 再使用命令ip addr查看获取到的ip 2.      设置静态IP 编辑网卡配置文件,路径: 3.      重启网络服务 命令:systemctl ...

  8. CF226D The table

    题目链接 题意 给出一个\(n\times m\)的矩阵,可以把某些行和某些列上面的数字变为相反数.问修改那些行和哪些列可以使得所有行和所有列之和都为非负数. 思路 每次将负数的行或者列变为相反数.因 ...

  9. Mysql逆向工程效率神器之使用IDE自动生成Java实体类

    Mysql逆向工程效率神器之使用IDE自动生成Java实体类 简介:实战使用IDE根据Mysql自动生成java pojo实体类 1.IDEA连接数据库 菜单View→Tool Windows→Dat ...

  10. JVM学习(一)简介

    一.java程序编译到运行大概流程 1.Source Code Files为.java文件 2.通过编译产生可执行的字节码. 3.通过jvm得到机器可以执行的机器码 4.操作系统运行机器码,并与硬件进 ...