赞
踩
python实现飞书群机器人消息通知
""" 飞书群机器人发送通知 """ import time import urllib3 import datetime urllib3.disable_warnings() class FlybookRobotAlert(): def __init__(self): self.webhook = webhook_url self.headers = {Content-Type: application/json; charset=UTF-8} def post_to_robot(self, post_data): ''' 给飞书机器人发送请求 :param data: :return: ''' try: resp = requests.request(method="POST", url=self.webhook, data=post_data, headers=self.headers).json() if resp.get("StatusCode") == 0 and resp.get("msg") == "success": Logger.info(f"飞书通知发送成功,msg={resp}") else: Logger.warning(f"飞书通知发送失败,{resp}") except Exception as e: Logger.warning("飞书通知发送异常") Logger.warning(e) pass def send_message(self, proj_name, total, passed, failed, skipped, adress="https://www.example.com"): # 飞书通知标题 robot_headers = "自动化报告" # 自定义飞书通知内容 robot_content = "ddd!自动化执行情况反馈,请相关测试童鞋注意!并及时跟进!" execute_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") field_list = [ { "is_short": False, "text": { "tag": "lark_md", "content": f"**用例执行完毕时间**:<font color=\"green\">{{}}</font>\n".format(execute_time) } }, { "is_short": False, "text": { "tag": "lark_md", "content": f"**项目名称**:<font color=\"green\">{{}}</font>\n".format(proj_name) } }, { "is_short": False, "text": { "tag": "lark_md", "content": f"**用例总数**:<font color=\"green\">{{}}</font>\n".format(total) } }, { "is_short": False, "text": { "tag": "lark_md", "content": f"**通过用例数**:<font color=\"green\">{{}}</font>\n".format(passed) } }, { "is_short": False, "text": { "tag": "lark_md", "content": f"**失败用例数**:<font color=\"green\">{{}}</font>\n".format(failed) } }, { "is_short": False, "text": { "tag": "lark_md", "content": f"**跳过用例数**:<font color=\"green\">{{}}</font> \n".format(skipped) } } ] card = json.dumps({ "config": { "wide_screen_mode": True }, "elements": [ { "tag": "div", "text": { "content": robot_content, "tag": "lark_md" } }, { "tag": "div", "fields": field_list }, { "actions": [{ "tag": "button", "text": { "tag": "plain_text", "content": "allure报告,请点击查看" }, "url": adress, "type": "primary" }], "tag": "action" } ], "header": { "template": "red", "title": { "content": robot_headers, "tag": "plain_text" } } }) msg_body = json.dumps({"msg_type": "interactive", "card": card}) self.post_to_robot(data=msg_body) # {'StatusCode': 0, 'StatusMessage': 'success', 'code': 0, 'data': {}, 'msg': 'success'} return if __name__ == '__main__': a = FlybookRobotAlert() a.send_message('你的项目名称GoGoGo', 4, 4, 0, 0)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。