为什么要二次封装?
丰富输出内容,增加测试报告的可读性
封装思路
- 报告模版变量化
- 关键指标参数化
代码
# xiaobai2.py
from dingtalkchatbot.chatbot import DingtalkChatbot
import datetime
class Xiaobai():
def __init__(self, failed) -> None:
self.failed = failed
self.t = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
self.url = 'https://www.baidu.com/'
self.mobile = ['13600690000']
self.text = ('''<font color=\'#FFA500\'>[通知] </font>线上问题预警'''
+ '''\n\n --- \n\n'''
+ '''<font color=\'#778899\' size=2>项目名称:自动化测试</font> \n\n '''
+ '''<font color=\'#708090\' size=2>错误详情:[点击查看错误详情](%s)</font> \n\n '''
+ '''<font color=\'#708090\' size=2>检测分支:QATest</font> \n\n'''
+ '''<font color=\'#708090\' size=2>bug数量:</font><font color=\'#FF0000\' size=2>%s</font> \n\n'''
+ '''<font color=\'#708090\' size=2>相关人员:@%s</font>'''
+ '''\n\n --- \n\n'''
+ '''播报时间:%s''') % ( self.url, self.failed, self.mobile[0], self.t)
self.webhook = 'https://oapi.dingtalk.com/robot/send?access_token=<your_token_get_from_dingding_settings>'
def dingtalk_robot(self):
ddrobot = DingtalkChatbot(self.webhook)
ret = ddrobot.send_markdown(title='Python自动化', text=self.text, is_at_all=False, at_mobiles=self.mobile)
print(ret) # {'errcode': 0, 'errmsg': 'ok'}
if __name__ == '__main__':
failed = 3
automator = Xiaobai(failed)
automator.dingtalk_robot()
代码执行
% source ./.virtualenv/auto/bin/activate
(auto) user@root kode % python xiaobai2.py
{'errcode': 0, 'errmsg': 'ok'}