一、钉钉配置获取
1.点击钉钉左上角"设置"
2.找到机器人管理,点击“前往设置”,选择自定义机器人
3.设置名称和群,安全设置可不加,保存url后续接口请求需要用到
4.三种安全设置
二、pyhon脚本
注:修改机器人URL和报告路径后即可使用,转载!
# coding=gbk标签:count,api,python,self,发送,failed,allure,path,data From: https://www.cnblogs.com/ahuaa/p/17491744.html
import csv
import json
import requests
import os
#报告地址
cureent_path=os.path.dirname(__file__)
suites_path=os.path.join(cureent_path,'../report/html/data/suites.csv')
class DingdingUtiles():
def __init__(self,case_path=suites_path):
self.case_path = case_path #报告存放的地址 suites.csv #..\reports\html_reports\data\suites.csv
self.data_deposit = [] #数据存储
self.api_run_count = 0 #总数
self.api_passed_count = 0 #失败数
self.api_failed_count = 0 #成功数
self.failed_case_name = [] #接口名称
self.failed_case_path = [] #接口地址
#读取报告allure报告生成的csv文件
def primary_data(self):
self.data_deposit = []
file_name = csv.reader(open(self.case_path, 'r', encoding='UTF8'))
for i in file_name:
if i[0] != 'Status':
self.data_deposit.append(i)
self.api_run_count = len(self.data_deposit)
for i in self.data_deposit:
if i[0] == 'passed': # 成功
self.api_passed_count += 1
elif i[0] == 'failed':
self.failed_case_name.append(i[9])
self.api_failed_count += 1
#推送给机器人消息
def dd_push(self):
self.primary_data() #运行
HEADERS = {"Content-Type": "application/json;charset=utf-8"}
url = "机器人url"
# content里面要设置关键字 我机器人设置的关键字为'接口测试结果:'
data_info = {
"msgtype": "text",
"text": {
"content": "接口测试结果:" + f'\n总共运行{self.api_run_count}条用例'
+ f'\n成功{self.api_passed_count}条用例'
+ f'\n失败{self.api_failed_count}条用例'
+ f'\n失败用例名称{str(self.failed_case_name)}'
# + f'\n失败用例地址{str(failed_case_path)}'
},
"isAtAll": False
# 这是配置需要@的人
# ,"at": {"atMobiles": ["15xxxxxx06",'18xxxxxx1']}
}
value = json.dumps(data_info)
response = requests.post(url, data=value, headers=HEADERS)
if response.json()['errmsg'] != 'ok':
print(response.text)
DDu=DingdingUtiles()
if __name__ == '__main__':
DingdingUtiles().dd_push()