上一章:Selenium+Java(11):Selenium+Jenkins实现自动化持续集成
在上一章里我们讲完了如何通过 run.bat 批处理脚本将 Selenium+Jenkins 关联,实现自动化测试的可持续集成。
这一章我们继续讲 “自动发送测试报告邮件” ,以及 “定时触发构建”的配置。
Come On!
我们分为两大点来进行:
一、自动化测试报告在Jenkins中的展示
二、自动化测试报告邮件发送及自动构建
一、自动化测试报告在Jenkins中的展示
-
安装依赖插件
我们需要下载 htmlpublisher.hpi 和 testng-plugin.hpi 这两个Jenkins插件。
可以在这个网站里下载:Jenkins插件下载。
下载完成后,我们在jenkins的系统管理里,打开插件管理:
进入后点 “高级-上传插件-选择文件上传“ 然后把刚刚下载好的俩插件都上传上去就行。然后可以重启一下Jenkins。
重启方式:使用管理员身份打开命令行,在其中敲入 net stop Jenkins,回车,然后再敲入net start Jenkins,等到屏幕上显示启动服务完毕即可。 -
配置构建后操作
打开我们的Jenkins工程,点击左侧的 “配置”
点击“构建后操作”,然后选择“添加构建后操作”,把下图中被我拿红框圈起来的一个个添加上:
我们依次讲一下如何配置:
Publish HTML Reports:
我们只要在第一行里填写自己的Selenium工程目录下的html文件存放路径即可,看看图中我填写的,相信你能懂~Publish TestNG Results
和上面的差不多,填写testng-results.xml文件的存放路径。注意斜杠的方向,是“ / ”这个。
点击保存。然后不妨再重启一下子。
此时我们回到Jenkins工程主页,点击左侧的立即构建,构建完成之后我们便可点击左侧的“HTML Reports”查看测试报告了:
报告的外观就和我们在Selenium工程里设置的一样:
同时我们还可以在Jenkins工程页面左侧看到 “TestNG Results” 按钮,在右侧我们可以看到次构建的执行结果的变化趋势Trend:
完成了以上步骤之后,我们便已经能够获取到自动化测试报告了。
接下来是我们的 “测试报告邮件发送及自动构建” 配置,来客官往下走:
二、自动化测试报告邮件发送及自动构建
-
Jenkins邮件发送功能配置
Jenkins的邮件发送功能配置,可以参考我的这篇博客:Jenkins(03):配置Jenkins自动发送邮件,写的非常详细。这里就只码一个我个人认为比较简洁美观一点的模板,可以复制粘贴到 Editable Email Notification 的 Default Content 栏里,也可以自己做一些优化修改,代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<style>
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
html,
body {
height: 100%;
}
body {
width: 800px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", SimSun, sans-serif;
font-size: 14px;
color: #1F2D3D;
padding: 10px;
}
h1,
h2 {
padding: 10px 0;
}
h1 {
color: #0000E3;
}
h2 {
margin-top: 20px;
}
table {
background: #f5f5f5;
border-collapse: collapse;
box-shadow: inset 0 1px 0 #fff;
font-size: 12px;
line-height: 24px;
text-align: left;
}
th {
background: linear-gradient(#777, #444);
border-left: 1px solid #555;
border-right: 1px solid #777;
border-top: 1px solid #555;
border-bottom: 1px solid #333;
box-shadow: inset 0 1px 0 #999;
color: #fff;
font-weight: bold;
padding: 10px 15px;
position: relative;
text-shadow: 0 1px 0 #000;
}
th:after {
background: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, .08));
content: '';
display: block;
height: 25%;
left: 0;
margin: 1px 0 0 0;
position: absolute;
top: 25%;
width: 100%;
}
th:first-child {
border-left: 1px solid #777;
box-shadow: inset 1px 1px 0 #999;
}
th:last-child {
box-shadow: inset -1px 1px 0 #999;
}
td {
border-right: 1px solid #fff;
border-left: 1px solid #e8e8e8;
border-top: 1px solid #fff;
border-bottom: 1px solid #e8e8e8;
padding: 10px 15px;
position: relative;
transition: all 300ms;
}
td:first-child {
box-shadow: inset 1px 0 0 #fff;
}
td:last-child {
border-right: 1px solid #e8e8e8;
box-shadow: inset -1px 0 0 #fff;
}
tr:last-of-type td {
box-shadow: inset 0 -1px 0 #fff;
}
tr:last-of-type td:first-child {
box-shadow: inset 1px -1px 0 #fff;
}
tr:last-of-type td:last-child {
box-shadow: inset -1px -1px 0 #fff;
}
li {
list-style: none;
padding: 6px 0;
}
li > span {
margin-right: 6px;
}
li > a {
color: #58B7FF;
}
.tip {
color: #bbb;
padding: 10px 0;
}
.failed {
color: #FF4949;
}
.passed {
color: #13CE66;
}
</style>
<body>
<h1>测试结果 - ${BUILD_STATUS}</h1>
<span class="tip">(本邮件是程序自动下发的,请勿回复,谢谢!!)</span>
<h2>Test Summary</h2>
<table>
<thead>
<tr>
<th></th>
<th>Total</th>
<th>Failed</th>
<th>Passed</th>
</tr>
</thead>
<tbody>
<tr>
<td>数目</td>
<td>${TEST_COUNTS}</td>
<td class="failed">${TEST_COUNTS,var="fail"}</td>
<td class="passed">${TEST_COUNTS,var="pass"}</td>
</tr>
</tbody>
</table>
<br>
<h2>Failed Cases:</h2>
<p class="failed">${FAILED_TESTS}</p>
</body>
</html>
(以上代码来自网络,有删改)
这样子配置完成后,我们再点击立即构建,便可以让指定的用户收到一封测试报告邮件了,我这里又做了点小修改,还没有优化的太好,目前是这样,大家可以自行优化配色及展示项:
2. Jenkins自动定时构建配置
这个功能非常简单,直接在“构建触发器”栏目里填写cron格式的时间即可让其定时构建,或者我们也可以在“构建触发器”模块下进行一些定制化的设置,这个可以自行看一下,很好理解,我就不多写啦。
Over
软件测试工程师一只,也在不断的学习阶段,平时的小经验不定期分享。
博主经验有限,若有不足,欢迎交流,共同改进~
愿与同在CSDN的你共同进步。