Python

python自动化测试报告以邮件形式自动发送

2021-12-22  本文已影响0人  DD丿

一、遍历报告文件夹内容并按照时间倒叙排列,取第一条文件(最新测试报告)

\bullet 源码

import os, glob, time

# 文件路径

path= r'C:\Program Files\JetBrains\PyCharm\pythonProject\log'

# 返回指定的文件夹包含的文件或文件夹的名字的列表。

# os.path.join(path1[, path2[, ...]])  把目录和文件名合成一个路径

s= sorted(glob.glob(os.path.join(path, '*')),

          key=lambda x: time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getctime(x))),

          reverse=True)

# 输出第一个文件

first= s[0]

print(first)

# 打开文件

# os.startfile(first)

二、发送邮箱,相关人员,包含标题,正文,附件(这边使用的是Coremail论客邮箱)

import smtplib

from email.mime.textimport MIMEText

from email.headerimport Header

from email.mime.multipartimport MIMEMultipart

# 发送邮箱服务器

smtpsever= 'c1.icoremail.net'

# 发送邮箱用户密码

user= 'xxxxx@vsc.com'

password= 'passwd'

# 发送与接收邮箱,可以多个逗号隔开

sender= 'dingjj.nms@vsc.com'

receive= 'dingjj.nms@vsc.com'

# 发送邮件主题和内容变量

subject= 'python selenium自动化测试报告'

content= '<html><h1 style="color:green">邮件测试'

# 构造附件内容,由于GBK会报错,所以转换encoding="utf-8"格式

sendfile= open(first, 'r', encoding="utf-8").read()

att= MIMEText(str(sendfile), 'base64', 'utf-8')

att['Content-Type'] = 'application/octet-stream'

att['Content-Disposition'] = 'attachment;filename="log_20211221_183947.html"'

# 构建发送与接收信息

msgRoot= MIMEMultipart()

# 调用主题

msgRoot['subject'] = subject

# 调用正文

msgRoot.attach(MIMEText(content, 'html', 'utf-8'))

# 调用邮箱账号密码

msgRoot['From'] = sender

# 调用接收人

msgRoot['To'] = ','.join(receive)

msgRoot.attach(att)

# SSL协议端口号要用465

smtp= smtplib.SMTP_SSL(smtpsever, 465)

smtp.helo(smtpsever)

smtp.ehlo(smtpsever)

smtp.login(user, password)

# msg为邮件正文,msgRoot为附件

print('开始发送邮件...')

smtp.sendmail(sender, receive, msgRoot.as_string())

smtp.quit()

print('邮件发送成功!')

\bullet 结果—成功!

上一篇下一篇

猜你喜欢

热点阅读