zoukankan      html  css  js  c++  java
  • 【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_测试报告中有接口失败才通知(4)

    上次搞完后调试发现,不管ant执行接口的结果是是否为失败,在Jenkins看来执行ant命令这一步始终是成功的。因此配置了失败时发邮件、企业微信通知后,压根就收不到通知,因为根本不会显示失败。

    因此要考虑解决,ant执行的接口有失败时,怎么让Jenkins整个流程构建失败,从而达到失败通知的效果。

    经过一段时间的思考后,思路如下:

    1、ant生成的接口如果有失败,其html报告中会生成执行失败等文字。

    2、Jenkins利用脚本读取html报告中的上述文字,如果存在,说明有接口失败,在编写的脚本中控制此次Jenkins流程失败。

    3、上面2步骤完成后,以前配置好的流程已经可以做到仅失败时发通知了。

    在ant编译后的步骤中加入构建命令Execute Windows batch command。(由于我的Jenkins是部署在windows机器上的)

     输入bat命令如下:

    cd ResultReporthtml
    find "Failure Detail" TestReport%BUILD_TIMESTAMP%.html >nul
    if errorlevel 1 (
    echo no Failure Detail
    ) else (
    exit 1
    )
    exit 0

    首先当前在Jenkins任务的工作空间目录下,需进入存放报告的目录。

    然后通过find命令,在指定报告html中找关键词。我这边如果有接口执行失败,报告中会生成Failure Detail文案。

    通过if命令,如果存在执行失败,则强制exit 1。使得本bat执行失败,从而Jenkins此步骤执行失败。

    如果没有接口失败,则给出提示。后面加上exit 0 是因为如果不加这个,Jenkins会默认此脚本执行失败。

    如果是linux,则脚本为

    cd ResultReport/html
    grep -n "Failure Detail" TestReport%BUILD_TIMESTAMP%.html
    if [ $? -eq 1 ];then
        exit 1
    else    
        echo "找到了"
    fi
  • 相关阅读:
    Codeforces 722C. Destroying Array
    Codeforces 722D. Generating Sets
    【BZOJ】3436: 小K的农场
    数论四·扩展欧几里德
    数论三·约瑟夫问题
    数论二·Eular质数筛法
    #1287 : 数论一·Miller-Rabin质数测试
    树的维护
    可持久化线段树
    【NOIP2016】天天爱跑步
  • 原文地址:https://www.cnblogs.com/chooperman/p/14155776.html
Copyright © 2011-2022 走看看