zoukankan      html  css  js  c++  java
  • 【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_集成Jenkins定时发送企业微信+邮件(3)

    一、分析准备

     接上文,目前ant调用jmeter脚本并生成报告功能已完成。现在使用Jenkins集成上述内容,主要目的是:

    1、完成定期执行脚本;

    2、发送企业微信及邮件;

    二、Jenkins集成ant

    1)、构建基础配置

    新建1个自由风格的项目,开始配置。

    1、构建保留的天数,或者保留的个数,请根据需求自定义。需注意的时一般巡检会当时或第二天看,起码要保留2天的日志。防止后面定位找不到相关日志了。

     2、使用自定义的工作目录。由于前面生成的html报告也是放在这里的,后面发邮件等需要用到此目录,建议换一下方便找。

     3、定义巡检的频率,这里本人使用的时5分钟跑一次。

     4、增加构建时间戳,后面发邮件,执行脚本等需要根据时间戳找到当时生成的报告进行相关操作。(没有时间戳选项的话百度下BUILD_TIMESTAMP怎么配置)

     5、构建步骤加上选择提前维护好的ant版本,targets中选择build.xml中target名称,指定要运行的的build.xml路径。

    2)、集成企业微信

    1、先在企业微信维护好指定的通知群组,然后右键,添加机器人。

    2、获取机器人的webhook地址,复制保存好。请勿轻易泄露,否则别人可以通过这个地址给你发消息。这里有各类消息的发送格式说明,感兴趣的可以看下。由于我们使用Jenkins现成的组件,并不写代码,这里不需要了解其具体发消息的格式。

    3、在Jenkins的插件安装中搜索Qy Wechat Notification Plugin,然后安装好。

     安装好后,在Configure System目录下即出现下面的内容,但是这里可以不配置。直接在项目任务中配置。

     4、在构建后操作中增加【企业微信通知】,按照下图填写即可。

     到这里企业微信通知配置好了,如果触发构建通知的条件,在控制台信息中可以看到。

     在企业微信中会收到如下的提示。

     

    3)、配置发邮件

    在构建后操作中增加【Editable Email Notification】。详细怎么配置发邮件可参考https://www.cnblogs.com/chooperman/p/14079303.html

    这里只说一下和本次相关的几个重要配置。

    1、选择HTML(text/html)类型。

    2、邮件正文可复制如下代码

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    </head>
    <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
    offset="0">
    <div>
    <table width="95%" cellpadding="0" cellspacing="0"
    style="font-size: 14pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
    <tr>
    <th align="center" colspan="2"><br />
    <h2><p><font size="6" face="arial" >构建信息</font></p></h2>
    </th>
    </tr>
    <tr>
    <td>
    (本邮件为程序自动下发,请勿回复!)<br/><hr/>
    项目名称:$PROJECT_NAME<br/><hr/>
    项目描述:用于巡检系统线上服务可用性<br/><hr/>
    构建编号:$BUILD_NUMBER<br/><hr/>
    构建状态:$BUILD_STATUS<br/><hr/>
    触发原因:${CAUSE}<br/><hr/>
    详细报告:参考邮件附件<br/><hr/>
    </td>
    </tr>
    <tr>
    <td colspan="2" align="center">
    <h2><p><font size="6" face="arial" >测试报告概览</font></p></h2>
    </td>
    </tr>
    <tr>
    <td colspan="2" align="center">
    <div>${FILE,path="F:\JenkinsWorkroom\zkml-HumanResourceSystem-Inspection\ResultReport\html\TestReport${BUILD_TIMESTAMP}.html"}</div>
    </td>
    </tr>
    </table>
    </div>
    </body>
    </html>

     其中,

    a、需要用${FILE,path="F:\JenkinsWorkroom\zkml-HumanResourceSystem-Inspection\ResultReport\html\TestReport${BUILD_TIMESTAMP}.html"},引入ant已生成好的html报告。

    b、上述路径中需要使用转义。

    c、使用${BUILD_TIMESTAMP}构建的时间戳来确认,引用的时哪一次构建的html报告。(因为每次报告的html都放在1个文件夹中)。这里说一下${BUILD_TIMESTAMP}需要在Jenkins的系统配置中提前配置好格式,保持和ant使用的build.xml生成的格式一致。另外这里只用到了秒,没有到毫秒,基本可保证两边的时间是一样的,不会出现拿Jenkins的时间戳找不到ant生成报告的情况。(针对此问题,应该可以在ant的build.xml中引入Jenkins变量从而达到两边一致的效果,但是由于build.xml有时要用来手动构建,所以就没搞了,不方便)

     3、配置邮件附件将报告作为附件发送

     注意由于本人生成的报告有2份,格式分类为 TestReport时间戳.html   TestReport时间戳-detail.html。因此上面的附件使用*来包含这两类文件。时间时间戳来保证只将本次生成的报告作为附件上传。

     此时若触发构建,得到的邮件形式如下:

     

     好到这里已完成jmeter+ant+Jenkins,进行现网环境巡检的需求。

  • 相关阅读:
    Makefile 之 $(Q)
    LeetCode-50-Pow(x, n)
    LeetCode-49. Group Anagrams
    全排列问题全面解析
    LeetCode-47. Permutations II
    LeetCode-46. Permutations
    LeetCode-43. Multiply Strings
    LeetCode-40. Combination Sum II
    LeetCode-39. Combination Sum
    LeetCode-36. Valid Sudoku
  • 原文地址:https://www.cnblogs.com/chooperman/p/14155460.html
Copyright © 2011-2022 走看看