Jenkins上配置Robot Framework测试邮件通知模板
来源:互联网 发布:java流程图输出是什么 编辑:程序博客网 时间:2024/04/30 15:18
邮件效果
测试成功如下所示:
测试失败如下所示:
通过这个模板,我们能够很直观地看出测试的执行情况,以及相关的统计信息。接下来我们详细介绍如何配置邮件模板
配置邮件模板
第一步编写邮件模板
我们的邮件模板是基于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插件,配置如下图所示:
这样的话,我们就完成了邮件模板的配置了。如果邮件发送设置正确的话,我们应该可以收到测试邮件通知。
其他
我们还可以自己编写HTML的邮件模板,而不用email-ext插件,下面是我配置效果, 执行完成后,会收到这样的邮件通知。
0 0
- Jenkins上配置Robot Framework测试邮件通知模板
- Robot Framework 在 Jenkins 上的自动化测试
- Jenkins 配置邮件通知
- Jenkins 配置邮件通知
- jenkins集成robot framework做自动化测试
- robot framework 自动化验收测试集成Jenkins
- jenkins邮件通知的配置
- robot framework结合Jenkins
- 持续集成&(Jenkins配置发送邮件通知)
- Jenkins集成robot framework来执行自动化测试
- jenkins配置邮件及增强版邮件通知
- Jenkins系列之—04 email-ext邮件通知模板
- jenkins robot framework持续集成
- Jenkins中Jelly邮件模板的配置
- Jenkins邮件通知设置
- Jenkins邮件通知设置
- jenkins 的邮件通知
- Jenkins之邮件通知
- matplotlib.pyplot.py
- Netty
- 如何安装和配置 AngularJS Eclipse
- java_day02_程序流程控制
- Spring与JDBC整合
- Jenkins上配置Robot Framework测试邮件通知模板
- Android之AlarmManager
- SpringMVC四大注解 Component·Controller·Service·Repository
- 【GDOI2017模拟12.9】最近公共祖先
- 为什么java静态方法不能调用普通方法?普通方法能调用静态方法?
- 《软技能 代码之外的生存指南》 读后感
- 使用 SQL Server 身份验证进行连接数据库
- ubuntu16.04安装libiconv
- 第三章 决策树 3.1决策树构造