一.代码直接附上后面都有说明,一看就懂,这里就不介绍了
#__author__ = 'Administrator' # -*- coding: utf-8 -*- from selenium import webdriver import unittest, time,HTMLTestRunner #导入 login 文件 import login,test_i_write,test_login import smtplib from email.mime.text import MIMEText import unittest import HTMLTestRunner import time,os import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import smtplib import email.MIMEMultipart # import MIMEMultipart import email.MIMEText # import MIMEText import email.MIMEBase # import MIMEBase import os.path import mimetypes import email.MIMEImage # import MIMEImage def creatsuite(): suite=unittest.TestSuite() file='F:\\untitled2\\NEW139login' discover=unittest.defaultTestLoader.discover(file,pattern='test_addr*.py',top_level_dir=None) #使用遍历往suite里面添加testcase for test_case in discover: print(test_case) suite.addTest(test_case) return suite def send_mail(file_new): msgRoot = MIMEMultipart("related") #发信邮箱 mail_from='13624493739@139.com' #收信邮箱 mail_to='15013753841@139.com' #定义正文 f = open(file_new, 'rb') mail_body = f.read() f.close() msg_1=MIMEText(mail_body,_subtype='html',_charset='utf-8') #定义标题 msg_1['Subject']=u"自动化测试报告" #msg_1['Subject']= Header(subject, 'utf-8') #定义发送时间(不定义的可能有的邮件客户端会不显示发送时间) msg_1['date']=time.strftime('%a, %d %b %Y %H:%M:%S %z') msgRoot.attach(msg_1) ##构造附件,并且发送有附件的报告 # 构造MIMEMultipart对象做为根容器 main_msg = email.MIMEMultipart.MIMEMultipart() # 构造MIMEText对象做为邮件显示内容并附加到根容器 text_msg = email.MIMEText.MIMEText("自动化测试报告",_charset="utf-8") #text_msg['Subject']=u"自动化测试报告" main_msg.attach(text_msg) # 构造MIMEBase对象做为文件附件内容并附加到根容器 ctype,encoding = mimetypes.guess_type(file_new) if ctype is None or encoding is not None: ctype='application/octet-stream' maintype,subtype = ctype.split('/',1) file_msg=email.MIMEImage.MIMEImage(open(file_new,'rb').read(),subtype) print ctype,encoding ## 设置附件头 basename = os.path.basename(file_new) file_msg.add_header('Content-Disposition','attachment', filename = basename)#修改邮件头 main_msg.attach(file_msg) # 得到格式化后的完整文本 msgRoot['Subject'] = u'自动化测试报告' msgRoot.attach(main_msg) #发送邮件 smtp=smtplib.SMTP() #连接 SMTP 服务器,此处用的 126 的 SMTP 服务器 smtp.connect('smtp.139.com') #用户名密码 smtp.login('13624493739','aa3851') smtp.sendmail(mail_from,mail_to,msgRoot.as_string( )) #msg.as_string() smtp.quit() print 'email has send out !' def send_report(testreport): result_dir = testreport lists=os.listdir(result_dir) lists.sort(key=lambda fn: os.path.getmtime(result_dir+"\\"+fn)) #print (u'最新测试生成的报告: '+lists[-1]) #找到最新生成的文件 file_new = os.path.join(result_dir,lists[-1]) print file_new #调用发邮件模块 send_mail(file_new) if __name__=='__main__': tt=creatsuite() now = time.strftime("%Y-%m-%d %H-%M-%S") testreport='F:\\untitled2\\NEW139login\\report\\' filename = testreport+now+'log.html' fl=file(filename,'wb') runner=HTMLTestRunner.HTMLTestRunner(fl,title=u'测试报告',description=u'测试用例情况') #使用htmltestrunner输出有时间的报告 runner.run(tt) fl.close() send_report(testreport) #发送报告