四.hmtl报告之内容提取和报告最为附件发送到你邮箱

一.代码直接附上后面都有说明,一看就懂,这里就不介绍了

#__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) #发送报告

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值