溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python如何實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天早下班

發(fā)布時(shí)間:2022-06-10 10:00:37 來源:億速云 閱讀:720 作者:zzz 欄目:開發(fā)技術(shù)

今天小編給大家分享一下python如何實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天早下班的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一,新建釘釘機(jī)器人

1.釘釘群右上角點(diǎn)擊群設(shè)置,選擇智能群助手,點(diǎn)擊添加機(jī)器人,選擇自定義機(jī)器人;

python如何實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天早下班

2.給機(jī)器人起個(gè)名字,消息推送開啟,復(fù)制出 webhook,后面會(huì)用到,勾選自定義關(guān)鍵詞,填寫關(guān)鍵詞(關(guān)鍵詞可以隨便填寫,但是一定要記住,后面會(huì)用);

python如何實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天早下班

python如何實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天早下班

二,釘釘機(jī)器人發(fā)送消息

url 就是創(chuàng)建機(jī)器人時(shí)的 webhook,data 中的 atMobiles 可填寫多個(gè)手機(jī)號(hào),發(fā)送的消息會(huì)直接 @ 這個(gè)人,text 的 content 里面一定要加上創(chuàng)建機(jī)器人時(shí)設(shè)置的關(guān)鍵詞,msgtype 意思時(shí)文本格式,也可以 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":"砍價(jià)小程序接口自動(dòng)化測試"},"msgtype":"text"},"msgtype":"text"}
        requests.post(url,headers=headers,data=json.dumps(data))

三,釘釘機(jī)器人實(shí)際的應(yīng)用

1.監(jiān)控接口自動(dòng)化結(jié)果

python如何實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天早下班

實(shí)現(xiàn)思路是:jenkins 定時(shí)執(zhí)行自動(dòng)化——執(zhí)行完后生成 html 報(bào)告——BeautifulSoup 模塊解析 html 報(bào)告——發(fā)送釘釘消息

如下代碼:

解析 html 的模塊:

from common.handle_path import html_path
from bs4 import BeautifulSoup
class GetHtml:
    """
    讀取測試報(bào)告,解析html  獲得測試用例總數(shù),通過數(shù)等,發(fā)送到釘釘
    """
    def get_total(self):
        with open(html_path, "r", encoding="utf-8") as f:
            file = f.read()
            soup = BeautifulSoup(file, 'html.parser')  # 使用BeautifulSoup庫解析網(wǎng)頁內(nèi)容
            item = soup.find_all("p")[1].string  # 使用BeautifulSoup庫的標(biāo)簽方法找到你需要的內(nèi)容
            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庫解析網(wǎng)頁內(nèi)容
            item = soup.find_all("span",class_="passed")[0].string  # 使用BeautifulSoup庫的標(biāo)簽方法找到你需要的內(nèi)容
            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庫解析網(wǎng)頁內(nèi)容
            item = soup.find_all("span",class_="skipped")[0].string  # 使用BeautifulSoup庫的標(biāo)簽方法找到你需要的內(nèi)容
            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庫解析網(wǎng)頁內(nèi)容
            item = soup.find_all("span",class_="failed")[0].string  # 使用BeautifulSoup庫的標(biāo)簽方法找到你需要的內(nèi)容
            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庫解析網(wǎng)頁內(nèi)容
            item = soup.find_all("span",class_="error")[0].string  # 使用BeautifulSoup庫的標(biāo)簽方法找到你需要的內(nèi)容
            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庫解析網(wǎng)頁內(nèi)容
            item = soup.find_all("span",class_="xfailed")[0].string  # 使用BeautifulSoup庫的標(biāo)簽方法找到你需要的內(nèi)容
            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庫解析網(wǎng)頁內(nèi)容
            item = soup.find_all("span",class_="xpassed")[0].string  # 使用BeautifulSoup庫的標(biāo)簽方法找到你需要的內(nèi)容
            return str(item)
if __name__ == '__main__':
    t = GetHtml()
    t.get_xpassed()

如下代碼:

發(fā)送釘釘消息的模塊:

import requests
import json
from common.handle_readhtml import GetHtml
class SendMassage:
    """
    發(fā)送測試結(jié)果到釘釘群
    """
    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":"砍價(jià)小程序接口自動(dòng)化測試 \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 為:

先執(zhí)行接口自動(dòng)化腳本,等待一會(huì)然后發(fā)送釘釘消息;

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

接口自動(dòng)化發(fā)釘釘群消息還可以再優(yōu)化,比如可以加上斷言失敗的錯(cuò)誤日志等;

python如何實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天早下班

2,監(jiān)控 qa 環(huán)境錯(cuò)誤日志

此處發(fā)送的 qq 郵件,消息查看不方便,且不好共享,可以優(yōu)化為發(fā)釘釘群消息,然后將開發(fā)也拉到群里,提高效率;

3,jira 上有釘釘機(jī)器人插件,可以每天發(fā)送消息 @ 某某開發(fā) 還有 N 個(gè)待處理 bug,@ 某某測試 還有 N 個(gè)待驗(yàn)證 bug,以及監(jiān)控看板指標(biāo)達(dá)到閾值報(bào)警等;

以上就是“python如何實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天早下班”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI