python实现post接口自动化(四)之发送测试报告

一、获取测试报告

我们需要将最新生成的测试报告发送到钉钉群,所以需要做两件事:第一件事是获取到最新的测试报告,第二件事就是发送报告到钉钉群。

1、准备工作

你需要创建一个钉钉群,在群里创建自定义机器人,参考文档:https://www.dingtalk.com/qidian/help-detail-20781541.html
记住别公开你的webhook地址哦!!!
将获取最新报告的方法仍然写在until文件下

2、获取最新的html报告

如上文(三)我们所写的,生成测试报告文件名的时候我们都加了时间,所有按时间排序后我们就能拿到最新的文件名。

import os
#获取最新报告的文件名
def new_reportname(report_dir):
    # 将测试报告文件夹下的所有文件名作为一个列表返回
    lists = os.listdir(report_dir)
    # 对所有测试报告按照生成时间进行排序
    lists.sort(key=lambda filename: os.path.getmtime(report_dir + filename))
    # 获取最新的测试报告
    recent = lists[-1]
    return recent

拿到文件名后,我们可以发送最新的测试报告了。

二、发送测试报告

1、发送测试报告到钉钉群

此次我们发送的消息类型选的text:

import json
import requests

webhook = '你的webhook地址'

def send_dingding(filename):
    headers = {'Content-Type': 'application/json; charset=utf-8'}
    data = {
        "msgtype": "text",
        "text": {
            "content": "测试报告:"+ "http://localhost:63342/login_test/report/"+filename
        },
        "at": {
            "atMobiles": [
                ''
            ],
            "isAtAll": False
        }
    }
    r = requests.post(url=webhook, headers=headers, data=json.dumps(data))
    return r

好啦~以上就是发送测试报告到钉钉群,这是我们的最后一步哦。总结一下:我们的接口自动化步骤呢就是:自动化测试用例----测试方法和断言----执行测试方法----生成报告----发送报告over。有问题欢迎评论区留言讨论,我也是测试小白一枚呢,希望和大家共同进步。
我又来更新啦~补充一下发送报告到邮箱吧

2、发送测试报告到邮箱

我在项目下新建了文件:send_report,来放我们发送钉钉send_dingding和发送邮件send_email的方法。
百度很多要么是发送邮件带附件,要么是发送邮件带正文,我们将我们生成的html文件放入附近再加上正文发送出去吧~写之前你需要知道授权码是什么,如何获取授权码。

from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib

from until.get_report import new_reportname
#报告路径
result_dir = r'测试报告路径和之前一样哦'

def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))

## 将最新测试报告放附件发送邮件,以qq邮箱为例
def send_email(file_new):
    smtpserver = 'smtp.qq.com'
    user = '你的邮箱'
    #password填写授权码(授权码如何获取大家可以百度一下)
    password = ''
    sender = '发送人'
    receivers = ['收件人']

    file = open(file_new,encoding='utf-8').read()
    # 三个参数:第一个为文本内容,第二个设置文本格式,第三个 utf-8 设置编码
    #邮件正文
    text = MIMEText('本次自动化测试结果见附件,请您下载查看~', 'plain', 'utf-8')
    #邮件附件
    att = MIMEText(file, 'html', 'utf-8')
    att["Content-Type"] = "application/octet-stream"
    subject = new_reportname(result_dir)
    att.add_header('ContenT-Disposition','attachment',filename =subject)
    # 将邮件正文和邮件附件都加入到多媒体报告
    msgRoot = MIMEMultipart()
    msgRoot['Subject'] = subject
    msgRoot['From'] = _format_addr(u'某公司测试组 <%s>' % sender)
    msgRoot['To'] = _format_addr(u'项目组所有人 <%s>' % receivers)
    msgRoot.attach(att)  # 将附件加载msg里
    msgRoot.attach(text)  # 将邮件正文加载msg里

    try:
        smt = smtplib.SMTP('smtp.qq.com')
        smt.ehlo()
        smt.starttls()
        smt.login(user, password)
        smt.sendmail(sender, receivers, msgRoot.as_string())
        smt.quit()
        print('发送成功')
    except Exception as  e:
        print('发送失败', e)

好啦~发送邮件你也get到了,这套简单的接口自动化就完成啦!!!
如有问题欢迎评论留言,大家一起讨论o~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值