jenkins+jmeter+钉钉预警

jenkins+jmeter+钉钉预警

  1. 建设一个自由风格的项目
    在这里插入图片描述
  2. 进入项目配置
    1)新增一个shell 脚本
    rm -rf testreport 配置删除的文件
    mkdir testreport 新建一个文件
    cp result.jmx /var/lib/jenkins/workspace/jmeter_result/testreport copy 执行文件到相关路径下
    2)新增一个run performance test
    添加需要执行的文件的名称
    在这里插入图片描述
  3. 添加一个python 脚本
    在这里插入图片描述
  4. liunx 上添加jmeter文件
    在jmeter的workspace 文件上添加一个自己的文件夹,并将jmeter 脚本放入到文件夹中
    在这里插入图片描述
    在这里插入图片描述
  5. 编写python 的xml 解析脚本及钉钉机器人发送消息的脚本
from xml.dom.minidom import parse
import xml.dom.minidom
import requests
import json

DomTree = xml.dom.minidom.parse('C:\\Users\\think\\Desktop\\aggregate-results.xml')
collection = DomTree.documentElement
#获取所有的group
groups = collection.getElementsByTagName('Group')
//打开文件并准备写入
doc = open('.\aggregate-results.txt',mode='w',encoding='utf-8')
for group in groups:
    print('******group******')
    if group.hasAttribute('label'):
         print('Group: %s'%group.getAttribute('label'),file=doc)

    succ = group.getElementsByTagName('succ')[0]
    name = succ.getElementsByTagName('name')[0]
    print('name: %s' %name.childNodes[0].data,end= ' ',file=doc)    
    value1 = succ.getElementsByTagName('value')[0]
    print('value: %s' %value1.childNodes[0].data,end=' ',file=doc)

    fail = group.getElementsByTagName('fail')[0]
    name = fail.getElementsByTagName('name')[0]
    print('name: %s' %name.childNodes[0].data,end= ' ',file=doc)    
    value2 = fail.getElementsByTagName('value')[0]
    print('value: %s' %value2.childNodes[0].data,file=doc)
    # print(type(value2.childNodes[0].data))
    if value2.childNodes[0].data != '0':
        f = group.getAttribute('label')
    # 建立钉钉接口
        webhook = 'https://oapi.dingtalk.com/robot/send?access_token={webhook }' #钉钉机器人的webhook 
        header ={
    "Content-Type": "application/json",
    "Charset": "UTF-8"
    }
        body ={
    "at": {
    "atMobiles":[
    "{手机号}"
    ],
    "isAtAll": False
        },
    "text": {
    "content":'接口失败的有%s' %f
    },
    "msgtype":"text"
    }
// 转化为json
        mesg_json = json.dumps(body)
        print('接口'+ f +'失败',file=doc)
        info = requests.post(url=webhook,data=mesg_json,headers=header)
        print(info.text)

    else:
        print('接口'+ group.getAttribute('label') +'成功',file=doc)
    print('------'*10,file=doc)
doc.close()
  1. 运行脚本查看并校验
  2. 在jenkins 中配置定时时间,配置时间为 2h 一次
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值