首先安装 Email-ext plugin插件
在jenkins中配置Jenkins->Manage Jenkins->Configure System
由于测试脚本基于java语言,所以需要Junit插件来发布测试结果,生成数据。在Jenkins->Manage Jenkins->Manage Plugins中安装junit插件
Email-ext插件可以用groovy脚本来自定义邮件。功能很强大,并且作者已经提供了一些模板Templates,然后就可以开始你的构建了。
Jenkins file:
pipeline{
agent any
tools {
maven 'M 3'
}
stages{
stage("checkout code"){
steps {
script{
//pull your code
}}
}
stage("run test case"){
steps {
script{
//withMaven(maven: 'M 3') {
// bat 'mvn test'
// }
//bat "cd C:\\Users\\liul5\\Desktop\\test\\project"
bat "mvn test"
}}
}
}
post('Generate report') {
always {
script{
cucumber fileIncludePattern: '**/cucumber-default-reports/*.json', sortingMethod: 'ALPHABETICAL'
junit '**/cucumber-default-reports/*.xml' //必须有这一步,否则没有数据
emailext subject: "Automation Result5: Job '${env.JOB_NAME} - ${env.BUILD_NUMBER}'",
body:'''${SCRIPT,template="groovy-html-larry-refactor.template"}''',
to:'$DEFAULT_RECIPIENTS'
emailext subject: "Automation Result6: Job '${env.JOB_NAME} - ${env.BUILD_NUMBER}'",
body:''' ${SCRIPT,template="groovy-html-refactor.template"}''',
to:'$DEFAULT_RECIPIENTS'
emailext subject: "Automation Result: Job '${env.JOB_NAME} - ${env.BUILD_NUMBER}'",
body:'''
total:${
TEST_COUNTS,var="total"},
pass:${
TEST_COUNTS,var="pass"},
fail:${
TEST_COUNTS,var="fail"}
''',
to:'$DEFAULT_RECIPIENTS'
}}}
}
引用邮件模板在body中使用${SCRIPT,template="groovy-html-refactor.template"}
,必须用三引号括起来,可以直接使用作者提供的模板,${SCRIPT,template="模板名"}
如果想要自定义模板的话,需要在jenkins的根目录下创建一个email-templates
文件夹,将模板放到该目录中(jenkins非msi的安装方式下的Windows的路径:C:\Users\用户名\.jenkins\email-templates
,msi安装方式:C:\Program Files (x86)\Jenkins\email-templates
)。自定义邮件的语法请查看插件文档document,或者作者的模板Templates。
最终结果图:
模板一:
<STYLE>
BODY, TABLE, TD, TH, P {
font-family: Calibri, Verdana, Helvetica, sans serif;
font-size: 12px;
color: black;
}
.console {
font-family: Courier New;
}
.filesChanged {
width: 10%;
padding-left: 10px;
}
.section {
width: 100%;
border: thin black dotted;
}
.td-title-main {
color: white;
font-size: 200%;
padding-left: 5px;
font-weight: bold;
}
.td-title {
color: white;
font-size: 120%;
font-weight: bold;
padding-left: 5px;
text-transform: uppercase;
}
.td-title-tests {
font-weight: bold;
font-size: 120%;
}
.td-header-maven-module {
font-weight: bold;
font-size: 120%;
}
.td-maven-artifact {
padding-left: 5px;
}
.tr-title {
background-color: <%= (build.result == null || build.result.toString() == 'SUCCESS') ? '#27AE60' : build.result.toString() == 'FAILURE' ? '#E74C3C' : '#f4e242' %>;
}
.test {
padding-left: 20px;
}
.test-fixed {
color: #27AE60;
}
.test-failed {
color: #E74C3C;
}
</STYLE>
<BODY>
<!-- BUILD RESULT -->
<table class="section">
<tr class="tr-title">
<td class="td-title-main" colspan=2>
BUILD ${build.result ?: 'COMPLETED'}
</td>
</tr>
<tr>
<td>Project:</td>
<td>${project.name}</td>