• Python+selenium整合自动发邮件功能


    主要实现的目的是:自动将测试报告以邮件的形式通知相关人员

     1 from HTMLTestRunner import HTMLTestRunner
     2 import HTMLTestReport
     3 from email.mime.text import MIMEText
     4 from email.header import Header
     5 import smtplib
     6 import unittest
     7 import time
     8 import os
     9 
    10 
    11 # ******************定义发送邮件******************
    12 def send_mail(file_new):
    13     f = open (file_new, 'rb')
    14     filename = f.read ()
    15     f.close ()
    16     smtp = smtplib.SMTP ()
    17     smtp.connect ('smtp.163.com')
    18     sender = 'fengyiru6369@163.com'
    19     receiver = '1194150169@qq.com'
    20     username = 'fengyiru6369@163.com'
    21     password = 'FYRu19200915'
    22     smtp.login (username, password)
    23 
    24     subject = '附件为最新测试报告,望查收'
    25     msg = MIMEText (filename, 'html', 'utf-8')
    26     msg['Subject'] = Header("自动化测试报告",'utf-8')
    27     msg['From'] = 'Tim<fengyiru6369@163.com>'
    28     msg['To'] = '1194150169@qq.com'
    29     smtp.sendmail (sender, receiver, msg.as_string ())
    30     smtp.quit ()
    31 
    32     print ('email has send out!')
    33 
    34 
    35 # ===========================查找测试报告目录,找到最新的测试报告文件 ===========================
    36 def new_report(testreport):
    37     lists = os.listdir (testreport)
    38     lists.sort (key=lambda fn: os.path.getmtime (testreport + "\" + fn))
    39     file_new = os.path.join (testreport, lists[-1])
    40     print (file_new)
    41     return file_new
    42 
    43 
    44 if __name__ == "__main__":
    45     test_dir = r'E:python测试报告'
    46     test_report = r'E:python测试报告'
    47     discover = unittest.defaultTestLoader.discover (test_dir, pattern='testreport1.py')
    48     now = time.strftime ("%Y-%m-%d_%H_%M_%S")
    49     filename1 = test_report + '\' + now + 'result.html'
    50     fp = open (filename1, 'wb')
    51     # runner = HTMLTestReport.HTMLTestRunner (stream=fp, title=u"自动化测试报告", description='自动化测试演示报告', tester='fyr')
    52     runner = HTMLTestRunner (stream=fp, title='集成测试报告', description='测试用例执行情况')
    53     runner.run (discover)
    54     fp.close ()
    55     new_report = new_report (test_report)
    56     print(new_report)
    57     send_mail (new_report)  # 发送测试包

    该程序的执行过程分为三个步骤:

       1.通过unittest框架的discover()找到匹配的测试用例,由HTMLTestRunner的run()方法执行测试用例并生成最新的测试报告。

       2.调用new_report()函数找到测试报告目录找到测试报告目录(report)下最新的测试报告,返回测试报告的测试报告的路径。

       3.将得到的最新测试报告的完整路径传给send_mail()函数,实现发送邮件功能。

       

  • 相关阅读:
    网络编程(1)
    反射,魔法方法,单例模式
    远程的文件传输
    DNS
    windows服务
    outlook邮箱配置
    win7服务器搭建
    windows常用命令
    C盘满了怎么办
    0x80070035找不到网络路径
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/7493412.html
Copyright © 2020-2023  润新知