为什么要二次封装?

丰富输出内容,增加测试报告的可读性

封装思路

  • 报告模版变量化
  • 关键指标参数化

代码

# 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'}

报告样式

在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐