allure测试报告压缩发送邮件

python+pytest+json+allure+jenkins搭建接口自动化测试(一)运行成功可生成报告

上一篇文件写着代码运行成功,生成测试报告

本篇写测试报告成功后自动压缩发邮件,创建一个SendEmail.py文件


from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
import os
import time
from common.common import srmdirFlder

import smtplib
from email.mime.text import MIMEText
# # 配置邮箱服务器信息

mail_postfix="qq.com" #发件箱的后缀# 登陆邮箱
sent=smtplib.SMTP()
sent.connect('smtp.qq.com',25)
mail_user="1****7@qq.com" # 发送人邮箱地址
mail_pass = "slewl***jlpvffad" # 注意:这里不是密码,而应该填写授权码!!
sent.login(mail_user, mail_pass) # 登陆
 # 配置发件人、收件人信息
sender = '1***5867@qq.com'  # 发件人邮箱
# 编辑邮件内容
receivers = ['128**440@qq.com','1481**1021@qq.com'] # 收件人邮箱地址

def message_config():
    #content = MIMEText('测试数据,注意查收') # 正文内容
    message = MIMEMultipart()  # 多个MIME对象
    # 构造附件1
    dirpath = r"./reports"
    srmdirFlder(dirpath)
    time.sleep(5)
    content = MIMEText(open('./reports.zip', 'rb').read(), 'base64', 'gb2312')
    content["Content-Type"] = 'application/octet-stream'
    content["Content-Disposition"] = 'attachment; filename="test.zip"'  # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
    message.attach(content)  # 添加内容
    message['Subject'] = '接口测试' # 邮件标题
    message['From'] = mail_user # 发件人
    message['To'] =','.join(receivers) #收件人,用逗号连接多个邮件,实现群发
    return message

def send_mail(message):
       try:
          sent.sendmail(mail_user, receivers, message.as_string())  #3个参数 发送人,收件人,邮件内容
          print('Success')
          sent.close()
       except smtplib.SMTPException:
          print("Error:Fail")


# if __name__ == "__main__":
#     print("开始执行")
#     message = message_config()  # 调用配置方法
#     send_mail(message)  # 发送邮件
#     print("执行结束")

如何设置qq邮箱服务器smtp?

1.登陆网页qq邮箱,点击设置如下图所示

 2.点击账户

 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

在里面找到服务这一行,打开POP3或者IMAP,点击后面的开启,根据提示步步操作,需要手机发送短信给qq

3.最终得到授权码,使用qq账号和授权码进行登陆
qq服务器地址:smtp.qq.com 端口25

 

 如何发送前压缩测试报告?新建在comm文件夹中common.py,引入到SendEmail.py文件里


import  os, os.path
import zipfile
import platform

def srmdirFlder(dirpath):
   # print("原始文件夹路径:" + dirpath)
    output_name = f"{dirpath}.zip"
    parent_name = os.path.dirname(dirpath)
 #   print("压缩文件夹目录:", parent_name)
    zip = zipfile.ZipFile(output_name, "w", zipfile.ZIP_DEFLATED)
    # 多层级压缩
    for root, dirs, files in os.walk(dirpath):
        for file in files:
            if str(file).startswith("~$"):
                continue
            filepath = os.path.join(root, file)
       #     print("压缩文件路径:" + filepath)
            writepath = os.path.relpath(filepath, parent_name)
            zip.write(filepath, writepath)





运行SendEmail.py文件后,如果成功则邮箱会接受到相应的信息

 在发送邮件的时候有遇到一个问题:就是发送的压缩文件名称如果是中文,发出去的会是bin文件

 

 后来发现改成英文和数字就是压缩包了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值