#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)
浙公网安备 33010602011771号