zoukankan      html  css  js  c++  java
  • Jenkins实现只发送执行失败的邮件

    需求:接口巡检发生错误的情况下才发送预警邮件

    思路:通过查找生成的html报告文件内容是否有100.00%,如果存在表示执行都成功,那就不发送邮件;否则发送邮件。

        Jmeter的脚本里的接口不管如何的报错,是都不会引起Jenkins构建错误的。也就是说项目构建除了特殊因素之外会一直构建成功,那么也就达不到我们想要的只在接口巡检发生错误的情况下才发送预警邮件的需求。

            这个时候我们就要借助一些外在的因素,人为的让Jenkins在构建项目后,出现构建失败的情况。

    接口-ant-test1 构建项目-设置内容

    cd /var/lib/jenkins/workspace/ant-test1
    rm -rf *.html
    rm -rf *.png
    cd /var/lib/jenkins/workspace/jmeter
    rm -rf *.html
    rm -rf *.png
    cd /usr/local/jmeter/apache-jmeter-5.2.1/extras/report
    cp -r * /var/lib/jenkins/workspace/ant-test1
    cp -r * /var/lib/jenkins/workspace/jmeter
    rm -rf *

     构建后email操作:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
    </head>
    
    <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
        offset="0">
        <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
            <tr>
                本邮件由系统自动发出,无需回复!<br/>
                各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
                <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>
            </tr>
            <tr>
                <td><br />
                <b><font color="#0B610B">构建信息</font></b>
                <hr size="2" width="100%" align="center" /></td>
            </tr>
            <tr>
                <td>
                    <ul>
                        <li>项目名称 : ${PROJECT_NAME}</li>
                        <li>构建编号 : 第${BUILD_NUMBER}次构建</li>
                        <li>触发原因: 我爱卡api线上监控</li>
                        <li>构建状态: ${BUILD_STATUS}</li>
                        <li>测试报告: <a href="${PROJECT_URL}HTML_20Report/">${PROJECT_URL}HTML_20Report/</a></li>
                        <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
                    </ul>
    
    
                    
    <ul>
    ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
    </ul>
                    
                </td>
            </tr>
        </table>
    </body>
    </html>
    

      

    一、开始实现--新建jmeter项目

         重新建立一个新的自由风格的项目,该项目的构建触发器选择为依赖其他项目构建完成后才开始构建。

     

    #!/bin/bash
    # author: zjj
    # date: 20210309
    cd /var/lib/jenkins/workspace/ant-test1/
    grep -n "Failure Message" ApiTest*.html
    if [ $? -eq 1 ];then
    exit 1
    else
    echo "找到了"
    fi
    

      

    shell 解读

    $?  上一条命令执行成功 返回值 为0

          上一条命令执行失败 返回值 为1

     搞定!!

  • 相关阅读:
    泛型接口与NUnit初试
    异步文件IO的应用
    [Andrew McAfee]Enterprise 2.0下的大趋势
    silverlight
    扩展prototype库兼容w3c domajax for firefox
    开张了
    最长平台
    常见C/C++ XML解析器比较
    GIS地图开发
    几种常见 容器 比较和分析 hashmap, map, vector, list ...hash table
  • 原文地址:https://www.cnblogs.com/zjjing/p/15034669.html
Copyright © 2011-2022 走看看