import requests import time import hmac import hashlib import base64 import urllib.parse timestamp = str(round(time.time() * 1000)) secret = 'SEC9d91939234e83369cba32c0ca4bcd9af60b5b1f69424d6fabd36f48d572a151c' secret_enc = secret.encode('utf-8') string_to_sign = '{}\n{}'.format(timestamp, secret) string_to_sign_enc = string_to_sign.encode('utf-8') hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest() sign = urllib.parse.quote_plus(base64.b64encode(hmac_code)) class webhookHandler: def __init__(self,webhookUrl = f"https://oapi.dingtalk.com/robot/send?access_token=22fda27990b00841c3201c20649c0a8abb6da82d8472b6f6154ef4cd9dadb33f×tamp={timestamp}&sign={sign}"): self.webhookUrl = webhookUrl def sendAutotestReport(self,result,second): local_time = time.localtime(time.time()) current_date_time_str = time.strftime('%Y-%m-%d %H:%M:%S', local_time) data = { "msgtype": "markdown", "markdown": { "title":"#willdesk接口自动化测试报告", "text": "#### 本次接口自动化测试结果如下 \n > ###### 用例总数:%s\n > ###### 成功用例数量:%s\n > ###### 失败用例数量:%s\n > ###### 报错用例数量:%s\n > ###### 跳过用例数量:%s \n > ###### 耗时:%s秒\n > ###### 报告生成时间:%s [测试报告](https://www.baidu.com)"%(result._numcollected,len(result.stats.get('passed', [])),len(result.stats.get('failed', [])),len(result.stats.get('error', [])),len(result.stats.get('skipped', [])),second,current_date_time_str) }, } res = requests.post(url=self.webhookUrl,json=data) print(res.json()) def sendMsg(self,text,msgtype): data = { "msgtype": msgtype, "text": { "content": text } } res = requests.post(url=self.webhookUrl,data=data) webhook = webhookHandler()