python实现钉钉机器人自动打卡天天早下班

 更新时间:2022年06月09日 14:42:16   作者:lei.hou  
这篇文章主要为大家介绍了python实现钉钉机器人自动打卡天天下早班实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一,新建钉钉机器人

1.钉钉群右上角点击群设置,选择智能群助手,点击添加机器人,选择自定义机器人;

2.给机器人起个名字,消息推送开启,复制出 webhook,后面会用到,勾选自定义关键词,填写关键词(关键词可以随便填写,但是一定要记住,后面会用);

二,钉钉机器人发送消息

url 就是创建机器人时的 webhook,data 中的 atMobiles 可填写多个手机号,发送的消息会直接 @ 这个人,text 的 content 里面一定要加上创建机器人时设置的关键词,msgtype 意思时文本格式,也可以 link 格式,就可以放链接了;

def send_text(self):
        url = "https://oapi.dingtalk.com/robot/send?access_token=43c4dab2ac31125e605c458b4b9561a73"
        headers = {'Content-Type': 'application/json'}
        data = {"at": {"atMobiles":["18206264857"],"atUserIds":["user123"],"isAtAll": False},
                "text": {"content":"砍价小程序接口自动化测试"},"msgtype":"text"},"msgtype":"text"}
        requests.post(url,headers=headers,data=json.dumps(data))

三,钉钉机器人实际的应用

1.监控接口自动化结果

实现思路是:jenkins 定时执行自动化——执行完后生成 html 报告——BeautifulSoup 模块解析 html 报告——发送钉钉消息

如下代码:

解析 html 的模块:

from common.handle_path import html_path
from bs4 import BeautifulSoup
class GetHtml:
    """
    读取测试报告,解析html  获得测试用例总数,通过数等,发送到钉钉
    """
    def get_total(self):
        with open(html_path, "r", encoding="utf-8") as f:
            file = f.read()
            soup = BeautifulSoup(file, 'html.parser')  # 使用BeautifulSoup库解析网页内容
            item = soup.find_all("p")[1].string  # 使用BeautifulSoup库的标签方法找到你需要的内容
            return str(item)
    def get_pass(self):
        with open(html_path, "r", encoding="utf-8") as f:
            file = f.read()
            soup = BeautifulSoup(file, 'html.parser')  # 使用BeautifulSoup库解析网页内容
            item = soup.find_all("span",class_="passed")[0].string  # 使用BeautifulSoup库的标签方法找到你需要的内容
            return str(item)
    def get_skipped(self):
        with open(html_path, "r", encoding="utf-8") as f:
            file = f.read()
            soup = BeautifulSoup(file, 'html.parser')  # 使用BeautifulSoup库解析网页内容
            item = soup.find_all("span",class_="skipped")[0].string  # 使用BeautifulSoup库的标签方法找到你需要的内容
            return str(item)
    def get_failed(self):
        with open(html_path, "r", encoding="utf-8") as f:
            file = f.read()
            soup = BeautifulSoup(file, 'html.parser')  # 使用BeautifulSoup库解析网页内容
            item = soup.find_all("span",class_="failed")[0].string  # 使用BeautifulSoup库的标签方法找到你需要的内容
            return str(item)
    def get_error(self):
        with open(html_path, "r", encoding="utf-8") as f:
            file = f.read()
            soup = BeautifulSoup(file, 'html.parser')  # 使用BeautifulSoup库解析网页内容
            item = soup.find_all("span",class_="error")[0].string  # 使用BeautifulSoup库的标签方法找到你需要的内容
            return str(item)
    def get_xfailed(self):
        with open(html_path, "r", encoding="utf-8") as f:
            file = f.read()
            soup = BeautifulSoup(file, 'html.parser')  # 使用BeautifulSoup库解析网页内容
            item = soup.find_all("span",class_="xfailed")[0].string  # 使用BeautifulSoup库的标签方法找到你需要的内容
            return str(item)
    def get_xpassed(self):
        with open(html_path, "r", encoding="utf-8") as f:
            file = f.read()
            soup = BeautifulSoup(file, 'html.parser')  # 使用BeautifulSoup库解析网页内容
            item = soup.find_all("span",class_="xpassed")[0].string  # 使用BeautifulSoup库的标签方法找到你需要的内容
            return str(item)
if __name__ == '__main__':
    t = GetHtml()
    t.get_xpassed()

如下代码:

发送钉钉消息的模块:

import requests
import json
from common.handle_readhtml import GetHtml
class SendMassage:
    """
    发送测试结果到钉钉群
    """
    result = GetHtml()
    total = result.get_total()
    passed = result.get_pass()
    skipped = result.get_skipped()
    failed = result.get_failed()
    error = result.get_error()
    xfailed = result.get_xfailed()
    xpassed = result.get_xpassed()
    def send_text(self):
        url = "https://oapi.dingtalk.com/robot/send?access_token=43c4dab2ac3152e605c458b4b9561a73"
        headers = {'Content-Type': 'application/json'}
        data = {"at": {"atMobiles":["18206233880"],"atUserIds":["user123"],"isAtAll": False},
                "text": {"content":"砍价小程序接口自动化测试 \n total       : {}\n passed   : {},\n skipped : {},\n failed    : {},\n error     : {},\n xfailed   : {},\n xpassed : {}".format(self.total,self.passed,self.skipped,self.failed,self.error,self.xfailed,self.xpassed)},"msgtype":"text"}
        requests.post(url,headers=headers,data=json.dumps(data))
if __name__ == '__main__':
    s = SendMassage()
    s.send_text()

jenkins 配置的 shell 为:

先执行接口自动化脚本,等待一会然后发送钉钉消息;

${PYTHON} main.py
sleep 100
${PYTHON} handle_dingding.py

接口自动化发钉钉群消息还可以再优化,比如可以加上断言失败的错误日志等;

2,监控 qa 环境错误日志

这里贴上周游大佬的一篇博客:https://www.jb51.net/article/250972.htm

此处发送的 qq 邮件,消息查看不方便,且不好共享,可以优化为发钉钉群消息,然后将开发也拉到群里,提高效率;

3,jira 上有钉钉机器人插件,可以每天发送消息 @ 某某开发 还有 N 个待处理 bug,@ 某某测试 还有 N 个待验证 bug,以及监控看板指标达到阈值报警等;

以上就是python实现钉钉机器人自动打卡天天下早班的详细内容,更多关于python钉钉机器人打卡的资料请关注脚本之家其它相关文章!

相关文章

  • python 一个figure上显示多个图像的实例

    python 一个figure上显示多个图像的实例

    今天小编就为大家分享一篇python 一个figure上显示多个图像的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • matplotlib阶梯图的实现(step())

    matplotlib阶梯图的实现(step())

    这篇文章主要介绍了matplotlib阶梯图的实现(step()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python中threading模块的Lock和RLock区别详解

    Python中threading模块的Lock和RLock区别详解

    这篇文章主要介绍了Python中threading模块的Lock和RLock区别详解,Lock锁是Python的原始锁,在锁定时不属于任何一个线程,在调用了 lock.acquire() 方法后,进入锁定状态,lock.release()方法可以解锁,底层是通过一个函数来实现的,需要的朋友可以参考下
    2023-09-09
  • python归并排序算法过程实例讲解

    python归并排序算法过程实例讲解

    在本篇文章里小编给大家整理的是一篇关于python归并排序算法过程实例讲解内容,有兴趣的朋友们可以学习下。
    2020-11-11
  • Python遍历目录的4种方法实例介绍

    Python遍历目录的4种方法实例介绍

    这篇文章主要介绍了Python遍历目录的4种方法实例介绍,本文讲解了使用os.popen运行shell列表命令、利用glob模块、利用os.listdir(推荐)、利用os.walk(推荐)等4种方法,需要的朋友可以参考下
    2015-04-04
  • opencv实现文档矫正

    opencv实现文档矫正

    这篇文章主要为大家详细介绍了opencv实现文档矫正功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 使用python实现男神女神颜值打分系统(推荐)

    使用python实现男神女神颜值打分系统(推荐)

    这篇文章主要介绍了用python做一个男神女神颜值打分系统(程序分析见注释),需要的朋友可以参考下
    2019-10-10
  • 深度学习环境配置之Anaconda安装和pip源方式

    深度学习环境配置之Anaconda安装和pip源方式

    这篇文章主要介绍了深度学习环境配置之Anaconda安装和pip源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python异常处理中容易犯得错误总结

    Python异常处理中容易犯得错误总结

    本文整理了python异常处理中finally的两个容易犯的错误,适合新手朋友的学习,感兴趣的朋友可以参考下
    2021-06-06
  • 详解Python中heapq模块的用法

    详解Python中heapq模块的用法

    Python中的heapq模块提供了一种堆队列heapq类型,这样实现堆排序等算法便相当方便,这里我们就来详解Python中heapq模块的用法,需要的朋友可以参考下
    2016-06-06

最新评论