• python3.6+selenium_发送邮件(包含自动生成的测试报告)


    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2018/10/16 16:02
    # @Author : zhouyang
    # @File : run_bbs_test.py
    
    # _author_ = "janehost"
    import os
    import smtplib
    import sys
    import time
    import unittest
    from email.mime.text import MIMEText
    from HTMLTestRunner import HTMLTestRunner
    
    # =========================邮件接收者============================
    #mailto_list = ["*****@qq.com"]
    mailto_list='*****@qq.com'
    #============= 设置服务器,用户名、口令以及邮箱的后缀===============
    mail_host = "smtp.126.com"
    mail_user = "*****@126.com"
    mail_pass = "*****" #授权码
    #===========================发送邮件============================
    def send_mail(to_list, file_new):
            """
            to_list: 发给谁
            sub: 主题
            content:内容
            send_mail("*******@126.com","商城测试报告","主要功能回归测试")
            """
            f = open(file_new, 'rb')
            mail_body = f.read()
            f.close()
            me = mail_user
            msg = MIMEText(mail_body, 'html', 'utf-8')
            msg['Subject'] = u'自动化测试报告'
            msg['From'] = me
            #msg['To'] = ",".join(to_list)
            msg['To'] =to_list
            try:
                s = smtplib.SMTP()
                s.connect(mail_host, 25)
                s.login(mail_user, mail_pass)
                s.sendmail(me, to_list, msg.as_string())
                s.close()
                return True
            except Exception as e:
                print (str(e))
                return False
    # ==============查找测试报告目录,找到最新生成的测试报告文件==========
    def new_report(testreport):
            lists = os.listdir(testreport)
            lists.sort(key=lambda fn:os.path.getatime(testreport + "\" + fn))
            file_new = os.path.join(testreport, lists[-1])
            print (file_new)
            return file_new
    
    
    if __name__ == '__main__':
            now = time.strftime("%Y-%m-%d %H_%M_%S ")
            filename = './bbs/report/' + now + 'result.html'
            fp = open(filename, 'wb')
            runner = HTMLTestRunner(stream=fp, title=u'商城自动化测试报告', description=u'环境:windows 7 浏览器:Chrome')
            discover = unittest.defaultTestLoader.discover('./bbs/test_case', pattern='TestCase.py')
            runner.run(discover)
            fp.close()
            file_path = new_report('./bbs/report/')
            if send_mail(mailto_list, file_path):
                print (u"发送成功")
            else:
                print (u"发送失败")

    如果收不到邮件可以去邮箱的垃圾箱看看,若垃圾箱有说明成功,只是qq邮箱拦截了,可以设置白名单

  • 相关阅读:
    字符集转换
    基础语法
    python print格式化输出。
    错误:SyntaxError: Missing parentheses in call to 'print'
    delphi 线程教学第一节:初识多线程
    delphi 7 信息对话框的按钮屏蔽键盘操作,只允许鼠标点击
    delphi 7 下安装 indy 10.5.8 教程
    delphi 实现vip126发邮件
    delphi 基础书籍推荐
    delphi 编码速度提升技能
  • 原文地址:https://www.cnblogs.com/xiuxiu123456/p/10950369.html
Copyright © 2020-2023  润新知