import subprocess import requests import time import hmac import hashlib import base64 import urllib.parse timestamp = str(round(time.time() * 1000)) secret = 'SEC80ae01de9c486a9f8531d4ec1ed09b8fbd5d9cc1b0ba171b0493f9bebfeb4807' 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=775093d6cbe22673b65e506f20aea7036cc58c4b9e89850f660eb798e4c149f6×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,title,text): data = { "msgtype": 'markdown', "markdown": { "title": title, "text": text } } res = requests.post(url=self.webhookUrl,data=data) webhook = webhookHandler() webhook.getToken()