zoukankan      html  css  js  c++  java
  • sonnar 执行测试并发送报告到钉钉

    #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": '## {}
    '.format(title)+str(msg)+'
    [查看报告]({})'.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:{}
    '.
            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": '## {}
    '.format(title)+str(msg)+'
    [查看报告]({})'.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)
    

      

  • 相关阅读:
    svn使用总结
    捕获JS 错误日志
    致敬 54岁的刘德华
    Mac 下 命令收藏
    坑人的七牛CDN
    【No.1】监控Linux性能25个命令行工具
    PAC 自动代理
    jquery 事件 多次绑定,多次触发,怎么清除历史绑定事件
    Squid 操作实践
    ntpdate[16603]: the NTP socket is in use
  • 原文地址:https://www.cnblogs.com/slqt/p/13372625.html
Copyright © 2011-2022 走看看