导航

 
#coding=utf8
import requests
import json
import os
from requests.auth import HTTPBasicAuth
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
requests.packages.urllib3.disable_warnings()

prod_name=os.environ['prod_name']

def get_datas():
    global prod_name
    result={}
    server_ip='XXXXXX'
    res=requests.get(url=(server_ip+'/api/measures/component?componentKey='+prod_name+'&metricKeys=alert_status,bugs,reliability_rating,vulnerabilities,security_rating,code_smells,sqale_rating,duplicated_lines_density,coverage,ncloc,ncloc_language_distribution'),auth=HTTPBasicAuth("admin","Uyunsoft@321"))
    res=json.loads(res.text)['component']['measures']
    for i in res:
        result.update({i['metric']:i['value']})
    return result


def send_msg(msg):
    global prod_name
    token='XXXXXXXXx'
    url = 'http://oapi.dingtalk.com/robot/send?access_token='+token
    headers = {
        'Content-Type': 'application/json;charset=utf-8'
    }
    msg='bug:{},漏洞:{},坏味道:{},覆盖率:{},重复:{},状态:{}'.\
        format(msg['bugs'],msg['vulnerabilities'],msg['code_smells'],msg['coverage'],msg['duplicated_lines_density'],msg['alert_status'])
    msg_url="XXXXXXXXX/dashboard?id="+prod_name
    title=prod_name+"代码质量报告"
    formdata = {
        "msgtype": "markdown",
        "markdown": {
            "title":prod_name+"代码质量报告",
            "text": '## {}\n'.format(title)+str(msg)+'\n[查看报告]({})'.format(msg_url)
        }
    }
    print(formdata)
    res = requests.post(url=url, data=json.dumps(formdata), headers=headers, proxies={"http": "http://XXXXXXXXXX:8088"},verify=False)
    print(res.text)


result=get_datas()
send_msg(result)
print result

  还可以收集jmeter的报告发送到钉钉

#coding=utf-8
import requests
import json
import sys
import os
import re
from requests.auth import HTTPBasicAuth
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
requests.packages.urllib3.disable_warnings()

prod_name='Monitor'
def get_datas(test_dir):
    lists = os.listdir(test_dir)
    # lists.sort(key=lambda fn: os.path.getmtime(test_dir + os.sep + fn))  # 按时间排序
    # file_new = os.path.join(test_report, lists[-1])  # 获取最新的文件保存到file_new
    #     print(file_new)
    #     return file_new
    for i in lists:
        if i.endswith('.html'):
            return i

def send_msg(report_path):
    global prod_name
    token='XXXX'
    url = 'http://oapi.dingtalk.com/robot/send?access_token='+token
    headers = {
        'Content-Type': 'application/json;charset=utf-8'
    }
    with open(report_path) as f:
        out=f.readlines()
    out=''.join(out)
    # print(out)
    res_tr = r'Summary(.*?)<button'
    m_tr = re.findall(res_tr, out,re.S|re.M)
    print(m_tr)
    res_tr = r'<td align="center">(.*?)</td>'
    out = re.findall(res_tr, m_tr[0], re.S | re.M)
    # for i in out:
    #     print(i)

    msg='执行总数:{},成功数:{},失败数:{},成功率:{},Average Time:{},Min Time:{},Max Time:{}\n'.\
        format(out[0],out[1],out[2],out[3],out[4],out[5],out[6])
    msg_url="http://XXXX/dashboard?id="+prod_name
    title=prod_name+"接口测试报告"
    formdata = {
        "msgtype": "markdown",
        "markdown": {
            "title":prod_name+"接口测试报告",
            "text": '## {}\n'.format(title)+str(msg)+'\n[查看报告]({})'.format(msg_url)
        }
    }
    print(formdata)
    res = requests.post(url=url, data=json.dumps(formdata), headers=headers, proxies={"http": "http://xxxxxxx:8088"},verify=False)
    print(res.text)


result=get_datas('/home/soft/apache-jmeter-5.3/bin/fengbin')
report_path=os.path.join('/home/soft/apache-jmeter-5.3/bin/fengbin',result)
send_msg(report_path)
print(result)

  

 

posted on 2020-07-24 16:22  slqt  阅读(305)  评论(0编辑  收藏  举报