python+selenium自动化测试-25自动通过邮件发送测试报告

在web自动化测试过程中,常常需要定时执行,得到测试报告,然后通过邮件自动发送给指定的人员查看执行结果。

lastest_report.py

# -- coding: utf-8 --
import os
#存放报告的位置
report_dir='./Test_Report'

def Latest_Report(report_dir):
    #os.listdir()方法用于返回指定文件夹包含文件或文件名字列表
    lists=os.listdir(report_dir)
    #按照时间顺序对该目录文件夹下面的文件进行排序
    lists.sort(key=lambda fn:os.path.getatime(report_dir+'\\'+fn))
    file=os.path.join(report_dir,lists[-1])
    return  file

sendEmail.py

# -- coding: utf-8 --
import smtplib#发送邮件模板
from email.mime.text import MIMEText#定义邮件内容
from email.header import Header#定义邮件标题
from email.mime.multipart import MIMEMultipart#用于传送附件

class sendSmptEmail():
    def send_email(Latest_Report):
        #读取最新测试报告的内容
        with open(Latest_Report,'rb') as e:
            mail_content=e.read()
            e.close()

            smtpserver = 'smtp.163.com'  # 发送邮件所用的服务器
            password = '发送者邮箱密码'

            # 发送邮件地址和接收地址
            sender = '发送者邮箱'
            receives = ['接收者邮箱1', '接收者邮箱2']

            # 定义邮件标题和内容
            subject = 'O2O后台自动化测试报告'

            msgRoot = MIMEMultipart()
            msgRoot['Subject'] = Header(subject, 'utf-8')  # 标题类型
            msgRoot['From'] = sender
            msgRoot['To'] = ','.join(receives)

            # 发送附件
            att = MIMEText(mail_content, "base64", "utf-8")
            att["Content-Type"] = "application/octet-stream"
            att["Content-Disposition"] = 'attachment; filename="test_report.html"'  # 定义附件名称
            msgRoot.attach(att)  # 挂起

            smtp = smtplib.SMTP_SSL(smtpserver, 994)  # SSL协议端口号要使用465或994
            smtp.helo(smtpserver)  # HELO向服务器标志用户身份
            smtp.ehlo(smtpserver)  # 服务器返回结果确认
            smtp.login(user, password)

            print('start send Email...')
            smtp.sendmail(sender, receives, msgRoot.as_string())  # 发送地址;邮件接收地址;发送信息
            smtp.quit()
            print('send end...')

执行发送邮件

report_dir = './test_report/'
        sendSmtpEmail.sendSmptEmail.send_email(lastest_report.Latest_Report(report_dir))

你可能感兴趣的:(#,selenium,UI自动化测试)