栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python钉钉机器人通知+allure报告结合使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python钉钉机器人通知+allure报告结合使用

钉钉机器人发送测试结果

现在钉钉机器人不支持发送本地图片,暂时先不发送报告图片到钉钉

我看过报告下的一些文件信息,这个文件的信息可以用来统计
suites.csv文件信息
结构如下:

 excel打开文件如下:

 代码实现:如下:(我这边是直接封装到类里面,)

#!/usr/bin/env python
# encoding: utf-8
# @author: lican
# @file: dingding_utiles.py
# @time: 2022/7/14 11:17
'''发送接口测试信息推送钉钉消息'''
import csv
import json
import requests

class DingdingUtiles():
    def __init__(self,case_path):
        self.case_path = case_path #报告存放的地址 suites.csv  #..reportshtml_reportsdatasuites.csv
        self.data_deposit = [] #数据存储
        self.api_run_count = 0 #总数
        self.api_passed_count = 0 #失败数
        self.api_failed_count = 0 #成功数
        self.failed_case_name = [] #接口名称
        self.failed_case_path = [] #接口地址
    def primary_data(self):
        self.data_deposit = [] #a
                                    #
        file_name = csv.reader(open(self.case_path, 'r', encoding='UTF8'))
        for i in file_name:
            if i[0] != 'Status':
                self.data_deposit.append(i)
        # print(self.data_deposit)
        # 对原始数据坐下处理
        self.api_run_count = len(self.data_deposit)
        # api_passed_count = 0
        # api_failed_count = 0
        # failed_case_name = []
        # failed_case_path = []
        for i in self.data_deposit:
            if i[0] == 'passed':  # 成功
                self.api_passed_count += 1
                #成功不需要打印接口名称
                # failed_case_path.append(i[1])
                # failed_case_name.append(i[9])
            elif i[0] == 'failed':
                # failed_case_path.append(i[1])
                self.failed_case_name.append(i[9])
                self.api_failed_count += 1
            # print(self.api_run_count)
            # print(self.api_passed_count)
            # print(self.api_failed_count)
            # print(self.failed_case_name)
            # print(self.failed_case_path)

    def dd_push(self):
        self.primary_data() #运行
        HEADERS = {"Content-Type": "application/json;charset=utf-8"}
        url = f"https://oapi.dingtalk.com/robot/send?access_token=钉钉机器人的地址复制过来"  
        # content里面要设置关键字 我机器人设置的关键字为'接口测试结果:'
        data_info = {
            "msgtype": "text",
            "text": {
                "content": "接口测试结果:" + f'n总共运行{self.api_run_count}条用例'
                           + f'n成功{self.api_passed_count}条用例'
                           + f'n失败{self.api_failed_count}条用例'
                           + f'n失败用例名称{str(self.failed_case_name)}'
                # + f'n失败用例地址{str(failed_case_path)}'
            },
            "isAtAll": False
            # 这是配置需要@的人
            # ,"at": {"atMobiles": ["15xxxxxx06",'18xxxxxx1']}
        }
        value = json.dumps(data_info)
        response = requests.post(url, data=value, headers=HEADERS)
        if response.json()['errmsg'] != 'ok':
            print(response.text)


if __name__ == '__main__':
    index_case_path = r'..reportshtml_reportsdatasuites.csv'  # 测试报告
    DingdingUtiles(index_case_path).dd_push()

运行所有用例的接口直接调用这个类方法:如下图

DingdingUtiles( #测试报告存放地址).dd_push()

 测试结果如下图:

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015076.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号