Pytest 将用例执行结果发送到企业微信群

应用场景

Pytest执行用例之后,将结果发送到企业微信,告知具体用例通过个数和失败个数,并@对应负责人

1、获取Pytest执行的结果

conftest.py中重写pytest_terminal_summary方法

def pytest_terminal_summary(terminalreporter, exitstatus, config):
    total = terminalreporter._numcollected
    passed = len(terminalreporter.stats.get('passed', []))
    failed = len(terminalreporter.stats.get('failed', []))
    error = len(terminalreporter.stats.get('error', []))
    skipped = len(terminalreporter.stats.get('skipped', []))
    wechat = Enterprise_WeChat_notification(passed=passed, failed=failed) # 获取企业微信,暂时不需要看
    print("total:", terminalreporter._numcollected)
    # terminalreporter._sessionstarttime 会话开始时间
    duration = time.time() - terminalreporter._sessionstarttime
    print('total times:', duration, 'seconds')
    wechat.send() # 企业微信发送消息,暂时不需要看

该方法名称固定,是pytest 执行用例之后,固定执行的方法,其中terminalreporter 类中的stats中存放用例执行之后的各种数据,失败和成功的个数也是从里面获取
这样有了数据之后,就可以准备企业微信了。

2、Python发送消息到企业微信

企业微信官方文档
简单的说:
1、在企业微信中添加群机器人,获取webhook地址,webhook就是一个url,通过post请求访问
2、编辑想要发送的消息,一种是文本类型,一种是Markdown类型(更好看)
3、最后通过post请求该企业微信的url

代码

class Enterprise_WeChat_notification():
    def __init__(self, passed, failed):
        self.url = "https://qyapi.weixin.qq.com***"
        self.header = {'Content-Type': 'application/json'}
        message = "自动化已完成,通过 <font color=\"info\">{}条</font>,失败 <font color=\"warning\">{}条</font>".format(passed, failed)
        self.payload = {
            "msgtype": "markdown",
            "markdown": {
                "content": message,

        }
        }
        self.remind = {
            "msgtype": "text",
            "text": {
                "mentioned_list": ["人1","人2"],
                "mentioned_mobile_list": ["123456","654321"]
            }
        }

    def send(self):
        requests.post(url=self.url, headers=self.header, data=json.dumps(self.payload))
        requests.post(url=self.url, headers=self.header, data=json.dumps(self.remind))

3、最后,在第一步的最后调用这个企业微信的代码,也就是第一步中示例的代码,就完成了。

在这里插入图片描述

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值