通过前几篇文章,jmeter+ant+jenkins自动化持续构建的测试平台基本成型。既然要自动化平台,最基本的肯定要实现不经过人工干预,平台会在特定的条件下自动运行测试脚本,并在脚本运行结束后,发送邮件通知用户测试的结果。本文主要介绍如何实现以上两项功能。

还是接着以上一篇笔记中的“test_token”项目为例:

1、构建触发器

构建触发器可以根据自己的需求选择,由图看到有四种类型:

(1)可使用脚本触发远程构建;

(2)其他job构建完成后触发当前job执行构建;

(3)定时周期性构建;

(4)hookplugin检测到源码的push操作就触发构建;

(5)定时检查代码分支是否有变化,如果有变化则执行一次构建。

我的目的是做接口测试自动化,每天定时跑任务并监控API功能是否正常,所以选择Build periodically(定期构建)。日程表一共五个参数:

从左到右分别代表:分 时 天 月 星期

第一个参数代表的是分钟minute,取值0~59;

第二个参数代表的是小时hour,取值0~23;

第三个参数代表的是天day,取值1~31;

第四个参数代表的是月month,取值1~12;

第五个参数代表的是星期week,取值0~7,0和7都代表星期天。

0 7 * * 1,3,5 表示每周一、周三、周五的7点00分执行一次,*代表所有。

2、邮件通知

(1)Jenkins Location配置

jenkins首页->系统管理->系统配置页面

其中Jenkins URL有默认值,最好修改,因为默认地址不安全。

系统管理员邮件地址一定要写,因为这个地址是邮件通知的发信人邮箱,填写方式有两种:

a)直接填写邮箱地址

b)可以加前缀来标识该邮件基本信息,例如:自动化测试邮件<邮箱地址>

(2)Extended E-mail Notification配置

jenkins首页->系统管理->系统配置页面

按照自己实际使用的邮箱进行配置,设置时,点击“高级”展开,使用SMTP认证(Use SMTP Authentication):

根据邮箱服务提供商确定SMTP服务器,如:126的SMTP是smtp.126.com、163的SMTP是smtp.163.com

根据邮箱服务提供商确定是否使用SMTP认证、是否使用SSL协议以及SMTP端口

根据邮箱服务提供商确定“Password”是邮箱的登录密码还是专用于第三方工具发邮件的验证码,如:QQ和163为验证码,126为登录密码

OK,邮箱服务的基本配置已经完成。

接下来的配置相当于是邮件通知的全局配置,对具体job来说,还会进行具体的配置,如果在job中重新配置了这里相同的项目,就会覆盖这里的全局配置。

1)Default Content Type:“text/plain”指邮件正文为纯文本格式,“text/html”指邮件内容可以包含html标签且能被邮箱客户端正确解析、显示。我这里选择“text/html”。

2)Default Subject:邮件标题,可以使用系统中的全局邮件变量来设置。我这里设置的标题格式为:项目名称-BUILD#构建次数-构建状态。

3)勾选“Enable Debug Mode”,以开启Extended E-mail Notification的调试功能,这样可以在构建日志中增加更多与Extended E-mail Notification相关的日志。

(3)Job中的邮件配置

jenkins首页->job"test_token”->配置->构建后操作

在job中配置页面,选择增加构建后操作,选中Editable Email Notification即可。

需要填写的各配置项参数说明:

1)Project Recipient List:这是一个以逗号(或者空格)分隔的收件人邮件的邮箱地址列表。

2)Default Content:邮件内容,可以使用构建中的环境变量,使得邮件中展示你想要的信息。

完整内容如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
 6 </head>
 7
 8 <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
 9 offset="0">
10 <table width="95%" cellpadding="0" cellspacing="0"
11     style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
12     <tr>
13         <td>(本邮件是程序自动下发的,请勿回复!)</td>
14     </tr>
15     <tr>
16         <td><h2>
17                 <font color="#0000FF">构建结果 - ${BUILD_STATUS}</font>
18             </h2></td>
19     </tr>
20     <tr>
21         <td><br />
22         <b><font color="#0B610B">构建信息</font></b>
23         <hr size="2" width="100%" align="center" /></td>
24     </tr>
25     <tr>
26         <td>
27             <ul>
28                 <li>项目名称 : ${PROJECT_NAME}</li>
29                 <li>构建编号 : 第${BUILD_NUMBER}次构建</li>
30                 <li>触发原因 : ${CAUSE}</li>
31                 <li>构建日志 : 请查看附件</li>
32         <li>测试报告 : 请查看附件</li>
33                 <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
34             </ul>
35         </td>
36     </tr>
37     <tr>
38         <td><b><font color="#0B610B">Changes Since Last
39                     Successful Build:</font></b>
40         <hr size="2" width="100%" align="center" /></td>
41     </tr>
42     <tr>
43         <td>
44             <ul>
45                 <li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
46             </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="    %p"}
47         </td>
48     </tr>
49
50 </table>
51 </body>
52
53 </html>

View Code

3)Attachments:邮件的附件,我把执行测试脚本生成的html测试报告文件,作为附件随邮件发出去。

注意:这里的写法可以使用通配符来确定文件的路径名称等,但是文件一定要位于workspace目录里面。

由于我之前的job把测试报告放置在/usr/jmeter/apache-jmeter-3.3/TestReport/testToken/html路径下,所以现在要修改一下测试报告输出的路径:

首先确认workspace目录的路径:/var/lib/jenkins/workspace;

接着在workspace目录下创建存放测试报告的新文件夹:

/var/lib/jenkins/workspace/test_token/html

/var/lib/jenkins/workspace/test_token/jtl

最后修改/usr/jmeter/apache-jmeter-3.3/TestScrip目录中的test_token_build.xml文件,把其中测试报告的输出路径修改为新的路径即可。

该参数文本框填写内容为html/*.html,意为在该job的workspace路径下搜索html文件夹中所有以.html为后缀的文件,并把这些文件添加到邮件附件中。

(4)触发器配置

决定什么情况下发送邮件。我配置为Always总是触发,接着send to选择RecipientList,意思是每次构建无论成功与否都发送邮件到上面指定的收件人列表邮箱。

3、测试配置是否成功

构建触发器的日程表填一个马上临近的时间,等待任务自动执行并发送邮件。

邮件结果为:

本章已经把定时任务和邮件通知功能实现了,下一章将会对该平台进行些优化。

转载于:https://www.cnblogs.com/LiangHu/p/8259476.html

Jenkins+Jmeter持续集成笔记(四:定时任务和邮件通知)相关推荐

  1. 【Jenkins】持续集成、持续交付与持续部署

    持续集成.持续交付与持续部署,都是软件开发过程中的很好的实践. 一.持续部署 装修厨房 全部装好之后发现灯不亮,电路有问题:冷热水装反了,管路有问题.这些问题要解决就必须把地砖.墙砖拆掉--一个环节有 ...

  2. [转]使用jenkins实现持续集成

    本文转自:https://www.cnblogs.com/zishengY/p/7170656.html 一.jenkins 介绍 它是一个自动化的周期性的集成测试过程,从检出代码.编译构建.运行测试 ...

  3. 【Jenkins】持续集成环境实战

    pdf供下载:https://download.csdn.net/download/hancoder/19835802 1.持续集成及Jenkins介绍 2.Jenkins安装和持续集成环境配置 3. ...

  4. jenkins实现持续集成、持续部署

    jenkins实现持续集成.持续部署 一.分析我们需要做什么才能实现持续集成.部署 1.分析jenkins需要帮我们做哪些内容 2.拆分需要实现的步骤 二.配置持续集成和部署 0.前置条件 1.实现第 ...

  5. Jenkins Docker 持续集成实践

    前言 持续集成(CI/CD)是一种软件开发实践.用于帮助团队成员频繁.快速的集成,测试他们的工作成果,以尽快发现集成错误. 更频繁.更早的集成意味着更早的发现问题.通过持续集成,及时发现和解决代码故障 ...

  6. 基于K8s和docker的Jenkins 可伸缩持续集成系统

    概述 本文档主要介绍Jenkins的可伸缩部署方式,一种是基于Docker(或者docker-swarm 集群)的部署方式,另外一种是基于kubernetes的部署方式. 由于基于kubernetes ...

  7. sss Jenkins+Github持续集成

    http://www.jianshu.com/p/b2ed4d23a3a9 Jenkins+Github持续集成 作者  吴彦欣  关注 2015.11.11 19:47  字数 994  阅读 51 ...

  8. Android 开发基于 Jenkins 实现持续集成

    Jenkins简介 Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时Jenkins能实现监控集成中存在的错误,提供详 ...

  9. centos7下Gitlab+Jenkins部署持续集成CI环境

    1.基本环境 主机:win10,IP:192.168.0.111:部署机器centos7,IP:192.168.0.65: 内存推荐到8G,实测需要6G以上,以免出现内存不够用而报错. 2.安装git ...

最新文章

  1. 【Sql Server】DateBase-视频总结
  2. 脚本编程语言python语言-python语言是脚本语言吗
  3. [转载]基于数据挖掘技术入侵检测系统研究
  4. android xml 指纹动画,如何检查设备是否具有指纹功能并在Android中使用
  5. LOG4J 警告错误处理办法(转)
  6. 年底求职难?起薪28万的数据岗位,人才缺口达150万,不限专业学历……
  7. Jenkins的一些代码
  8. 正则表达式学习笔记004--连字符和范围描述符的认识与应用
  9. Git flow(使用工具自动git flow+解决合并冲突)
  10. hdu 4911 “Inversion”——逆序对问题
  11. 《21天学通Java(第6版)》—— 2.7 总结
  12. 【实用】excel中创建项目进度计划
  13. 淘宝客是鸡肋还是熊掌
  14. 编程之余对人品的感悟
  15. 设置html的table高度100%
  16. QT_媒体播放器播放Mp3QMediaPlayer
  17. 计算机二进制表示小数,小数用二进制如何表示
  18. 由于管理员设置的策略,该磁盘处于脱机状态解决办法
  19. 干货 | 数据不丢失?有它就够了——金仓KingbaseES高可用集群部署
  20. 修改windows功能要开启哪个服务器,WIN7里的“打开或关闭Windows功能”无法修改,怎么回事?...

热门文章

  1. Linux基础第一章 概述
  2. Web服务器安全设置
  3. Table 'mysql.plugin' doesn't exist引发de血案
  4. SCUT个人整理的常见问题
  5. 借助Sniffer分析网络流量
  6. how to request a curl operation from alibaba cloud
  7. UGUI 事件穿透规则
  8. 如何用Visual Studio Code远程调试运行在服务器上的nodejs应用
  9. USACO 1.4 牛奶
  10. linux磁盘、分区、设备简单介绍