python3+request接口自动化框架中自动发送邮件

时间:2021-08-07 06:53:35

在上一篇中的自动化框架中没有放上自动发送测试结果到邮箱的功能,在这篇文章中在补一下,哈哈 

1、上一篇的代码就不在一一介绍了,本篇只介绍发送邮件的功能代码

2、在public common 文件夹中创建一个sendmail.py文件, 用来存储发送邮件的代码

from email.mime.text import MIMEText
from email.header import Header
import smtplib
import time
import os
def send_mail(file_new):
f = open(file_new, 'rb')
mail_body = f.read()
f.close()
username = '***' #发件箱用户名 (自己添加邮箱账号)
password = '***' #发件箱密码
sender = '***' #发件人邮箱 (自己添加)
receiver=['***']
#receiver = ['***'] #收件人邮箱
# 邮件正文是MIMEText
msg = MIMEText(mail_body, 'html', 'utf-8')
# 邮件对象
msg['Subject'] = Header("自动化测试报告", 'utf-8').encode()
msg['From'] = Header(u'测试负责人 <%s>'%sender)
msg['To'] = Header(u'技术负责人 <%s>'%sender)
msg['date'] = time.strftime("%a,%d %b %Y %H:%M:%S %z")
#发送邮件
smtp = smtplib.SMTP()
smtp.connect('smtp.exmail.qq.com') # 邮箱服务器 (我这里用的时QQ的邮箱,其他邮箱需要在网上查一下!)
smtp.login(username, password) # 登录邮箱
smtp.sendmail(sender, receiver, msg.as_string()) # 发送者和接收者
smtp.quit()
print("邮件已发出!注意查收。")
#此处为将HTML文件夹中的所有文件返回并取最新的一个HTML文件
def new_file(test_dir):
#列举test_dir目录下的所有文件,结果以列表形式返回。
lists=os.listdir(test_dir)
#print(lists)
file_path=os.path.join(test_dir,lists[-1])
return file_path
以上为发送邮件的代码,会自动查找并发送最新的HTML文件到邮箱中。
3、在代码入口出的调用方法,sendmail文件导入后在运行中传入文件夹的地址

python3+request接口自动化框架中自动发送邮件

runner.run(suite)
new_report_mail = new_file(r'D:\\event\\result')
log.info(new_report_mail)
send_mail(new_report_mail)
fp.close()

4、我是将文件夹的路径写成了绝对路径,此处可以自己修改下。

5、以上为自动发送邮件的代码与运行入口处代码调用