Jenkins上配置Robot Framework测试邮件通知模板
邮件效果
测试成功如下所示:
测试失败如下所示:
通过这个模板,我们能够很直观地看出测试的执行情况,以及相关的统计信息。接下来我们详细介绍如何配置邮件模板
配置邮件模板
第一步编写邮件模板
我们的邮件模板是基于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测试邮件通知模板相关推荐
- Jenkins上配置Robot Framework自动化测试脚本工程
Jenkins上配置Robot Framework自动化测试脚本工程 现在越来越多的项目组开始引入敏捷,其中对于我们的自动化测试也有了一些新的要求.至少要把我们做的自动化案例能够持续地跑起来,能够在敏 ...
- Robot Framework测试环境搭建(python3.7.2,pip在线安装)及RIDE的简单操作演示
Robot Framework测试环境搭建(python3.7.2,pip在线安装)和RIDE的简单操作演示 1.框架介绍 Robot Framework 框架是一个通用的测试框架(基于python) ...
- Robot Framework简介和性能;安装RIDE工具进行Robot Framework测试
简介 Robot Framework不是一个测试工具,准确来说,它是一个自动化测试框架,或者说它是一个自动化测试平台. 他拥有的特性如下: 1.支持关键字驱动.数据驱动和行为驱动 2.测试执行报告和日 ...
- windows上安装Robot Framework和RIDE
第1步:Windows pip安装(若已安装,忽略此步骤) 前提条件:已安装python,并将python安装路径添加至系统环境变量PATH中 pip 是一个现代的,通用的 Python 包管理工具. ...
- 监控服务(新增)错误日志脚本并发送DingDing|邮件通知模板
文章目录 1.监控模板 2.使用脚本 3.效果 4.如何安装DingDing和邮件服务器 5.拓展 1.监控模板 该模板支持 (1)DingDing告警与邮件告警 (2)自定义监控日志的黑名单与白名单 ...
- pycharm配置robot framework
前置条件 python和pycharm已经安装 安装python包 pip install robotframework pip install robotframework-ride pip ins ...
- 在jenkins上配置Android项目(git管理,gradle构建)
1.安装插件 系统管理->管理插件,选择"可选插件"tab,在其中选择(通过右上方搜索进行筛选)git plugin, git client plugin, gitlab p ...
- 在jenkins上配置 sonar 两种方式的区别
sonarqube 上的sonarScanner 只有最新版本: github上有所有的版本;https://github.com/SonarSource/sonar-scanner-cli/rele ...
- 在电脑上配置手机app测试环境
前提: 下载手机模拟器: http://mumu.163.com/ 安装brup suite,且能正常使用 配置步骤: 在手机模拟器中打开设置,选择WALN选项–>鼠标长按进入–>将代理项 ...
- oracle streams 11g数据复制,在Oracle 11g Streams单向传输的基础上配置Streams双向传输测试...
原来在两个数据库服务器直接配置了Streams的单向传输,原来的源数据库为两台集群64位HP-UNIX的Oracle11gR2数据库,原来的目标数据 描述: 原来在两个数据库服务器直接配置了Strea ...
最新文章
- 【Java 网络编程】TCP 传输机制 ( 数据拆分 | 排序 | 顺序发送 | 顺序组装 | 超时重发 )
- linux如何把mysql表名换成小写_让 MySQL 在 Linux 下表名不区分大小写(实为表名全小写)...
- 拯救颓废假期!快来和我们一起刷论文写笔记
- 深入理解JVM原理之编译openjdk7
- 剑指Offer 二维数组中的查找
- 【转】代码里的命名规则:错误的和正确的对比
- WebService的学习
- cv2图像显示的像素值0-10-255和显示
- 估算软件规模之前如何明确划分系统边界?
- chrome extensions快捷键shortcuts配置
- 华为性格测评注意事项
- 厦门大学2019年数学分析考研试题参考解答
- 云服务器htdocs文件夹在,htdocs文件夹
- JVM垃圾回收——G1垃圾收集器
- 服务器、存储和网络设备介绍
- CV-提取图像Freeman码python实现
- Springboot集成POI
- 【文献综述】光流法的过去,现在和发展趋势
- 计算机照片无法打开,提示windows照片查看器无法打开此图片怎么处理
- 获取全国省地市地图json数据
热门文章
- 用PYTHON做一个动态钟表
- 禁止网页右键查看源代码
- 【Linux】FirefoxBrowser 火狐浏览器安装 FlashPlayer 插件
- Unity线性空间下移动设备上烘焙变暗问题处理
- 从入门到放弃,50G编程视频免费送!
- Springboot 整合 阿里云消息队列RabbitMQ版服务
- 北京最新道路货物运输驾驶员考试真题题库及答案
- 假设一张纸的厚度是1mm,那么这张纸折叠多少次可以到达珠穆朗玛峰的高度(8848m)?
- 三丁基-巯基膦烷「tBuBrettPhos Pd(allyl)」OTf),1798782-17-8
- Ubuntu16.04 启动项修复