邮件效果

测试成功如下所示:

测试失败如下所示:

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

配置邮件模板

第一步编写邮件模板

我们的邮件模板是基于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.artifactsif(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.changeSetif(changeSet != null) {def hadChanges = falsedef count = 0 %><div class="details round_border"><b>变更详细:</b><ol><%  changeSet.each() { cs ->hadChanges = truedef 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 youare 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插件,配置如下图所示:

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

其他

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

Jenkins上配置Robot Framework测试邮件通知模板相关推荐

  1. Jenkins上配置Robot Framework自动化测试脚本工程

    Jenkins上配置Robot Framework自动化测试脚本工程 现在越来越多的项目组开始引入敏捷,其中对于我们的自动化测试也有了一些新的要求.至少要把我们做的自动化案例能够持续地跑起来,能够在敏 ...

  2. Robot Framework测试环境搭建(python3.7.2,pip在线安装)及RIDE的简单操作演示

    Robot Framework测试环境搭建(python3.7.2,pip在线安装)和RIDE的简单操作演示 1.框架介绍 Robot Framework 框架是一个通用的测试框架(基于python) ...

  3. Robot Framework简介和性能;安装RIDE工具进行Robot Framework测试

    简介 Robot Framework不是一个测试工具,准确来说,它是一个自动化测试框架,或者说它是一个自动化测试平台. 他拥有的特性如下: 1.支持关键字驱动.数据驱动和行为驱动 2.测试执行报告和日 ...

  4. windows上安装Robot Framework和RIDE

    第1步:Windows pip安装(若已安装,忽略此步骤) 前提条件:已安装python,并将python安装路径添加至系统环境变量PATH中 pip 是一个现代的,通用的 Python 包管理工具. ...

  5. 监控服务(新增)错误日志脚本并发送DingDing|邮件通知模板

    文章目录 1.监控模板 2.使用脚本 3.效果 4.如何安装DingDing和邮件服务器 5.拓展 1.监控模板 该模板支持 (1)DingDing告警与邮件告警 (2)自定义监控日志的黑名单与白名单 ...

  6. pycharm配置robot framework

    前置条件 python和pycharm已经安装 安装python包 pip install robotframework pip install robotframework-ride pip ins ...

  7. 在jenkins上配置Android项目(git管理,gradle构建)

    1.安装插件 系统管理->管理插件,选择"可选插件"tab,在其中选择(通过右上方搜索进行筛选)git plugin, git client plugin, gitlab p ...

  8. 在jenkins上配置 sonar 两种方式的区别

    sonarqube 上的sonarScanner 只有最新版本: github上有所有的版本;https://github.com/SonarSource/sonar-scanner-cli/rele ...

  9. 在电脑上配置手机app测试环境

    前提: 下载手机模拟器: http://mumu.163.com/ 安装brup suite,且能正常使用 配置步骤: 在手机模拟器中打开设置,选择WALN选项–>鼠标长按进入–>将代理项 ...

  10. oracle streams 11g数据复制,在Oracle 11g Streams单向传输的基础上配置Streams双向传输测试...

    原来在两个数据库服务器直接配置了Streams的单向传输,原来的源数据库为两台集群64位HP-UNIX的Oracle11gR2数据库,原来的目标数据 描述: 原来在两个数据库服务器直接配置了Strea ...

最新文章

  1. 【Java 网络编程】TCP 传输机制 ( 数据拆分 | 排序 | 顺序发送 | 顺序组装 | 超时重发 )
  2. linux如何把mysql表名换成小写_让 MySQL 在 Linux 下表名不区分大小写(实为表名全小写)...
  3. 拯救颓废假期!快来和我们一起刷论文写笔记
  4. 深入理解JVM原理之编译openjdk7
  5. 剑指Offer 二维数组中的查找
  6. 【转】代码里的命名规则:错误的和正确的对比
  7. WebService的学习
  8. cv2图像显示的像素值0-10-255和显示
  9. 估算软件规模之前如何明确划分系统边界?
  10. chrome extensions快捷键shortcuts配置
  11. 华为性格测评注意事项
  12. 厦门大学2019年数学分析考研试题参考解答
  13. 云服务器htdocs文件夹在,htdocs文件夹
  14. JVM垃圾回收——G1垃圾收集器
  15. 服务器、存储和网络设备介绍
  16. CV-提取图像Freeman码python实现
  17. Springboot集成POI
  18. 【文献综述】光流法的过去,现在和发展趋势
  19. 计算机照片无法打开,提示windows照片查看器无法打开此图片怎么处理
  20. 获取全国省地市地图json数据

热门文章

  1. 用PYTHON做一个动态钟表
  2. 禁止网页右键查看源代码
  3. 【Linux】FirefoxBrowser 火狐浏览器安装 FlashPlayer 插件
  4. Unity线性空间下移动设备上烘焙变暗问题处理
  5. 从入门到放弃,50G编程视频免费送!
  6. Springboot 整合 阿里云消息队列RabbitMQ版服务
  7. 北京最新道路货物运输驾驶员考试真题题库及答案
  8. 假设一张纸的厚度是1mm,那么这张纸折叠多少次可以到达珠穆朗玛峰的高度(8848m)?
  9. 三丁基-巯基膦烷「tBuBrettPhos Pd(allyl)」OTf),1798782-17-8
  10. Ubuntu16.04 启动项修复