zoukankan      html  css  js  c++  java
  • python3+selenium3学习——发送邮件

    1、安装yagmail

    直接 pip install yagmail 

    2、发送邮件前配置

     3、发送邮件

    参考代码;

    import unittest
    import HTMLTestRunner
    import yagmail
    import os
    
    username = '1234567@qq.com'
    passwd = 'abcdfefgh'
    smtp = yagmail.SMTP(user=username,
                        password=passwd,
                        host='smtp.qq.com',    # 其他服务器就  smtp.126.com
                        smtp_ssl=True
                        )
    
    case_path = os.path.join(os.getcwd(),"case")  # 用例路径
    report_path = "D:\test02\report"            # 报告存放路径
    
    def all_case():
        discover = unittest.defaultTestLoader.discover(case_path,
                                                   pattern="test*.py",
                                                   top_level_dir = None)
        print(discover)
        return discover
    if __name__ =="__main__":
        # runner = unittest.TextTestRunner()
        # runner.run(all_case())
        # html报告文件路径
        report_abspath = os.path.join(report_path,"result.html")
        fp = open(report_abspath,"wb")
        runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                                               title = u"自动化测试报告,测试结果如下:",
                                               description = u"用例执行情况:")
    
        # run所有用例
        runner.run(all_case())
        smtp.send(
            to = 'qpbj0we@dingtalk.com',
            subject ='发送邮件的标题',
            contents = '测试用例报告',
            attachments=r'D:	est02
    eport
    esult.html'
        )
        print('发送成功')
        fp.close()

    ps: 发送邮件时,也可不用关键字

    参考代码:

    import yagmail
    
    # 连接邮箱服务器
    yag = yagmail.SMTP(user='234534@qq.com',
                       password='随机码',
                       host='smtp.qq.com',
                       smtp_ssl=True
                       )
    
    # 发送邮件
    yag.send(['43353534@163.com','fdggdffdgd@dingtalk.com'],
          '我的第一个电子邮件', ['哈哈哈哈哈哈'], ['/Users/xuer/PycharmProjects/test01/32453563/fdgdf/20201016.09.33.16.jpg', '/Users/xuer/PycharmProjects/test01/xyuer/github/git_login.py'] ) yag.close()

     使用企业邮箱发送邮件

    # @Time   :    2021/3/4:下午4:03
    # @File   :    run_main.py
    
    import unittest
    import HTMLTestRunner
    import os
    import time
    import yagmail
    
    
    # 当前脚本所在文件真实路径
    cur_path = os.path.dirname(os.path.realpath(__file__))
    print(cur_path)
    
    
    # 加载所有的测试用例
    def add_case(caseName='case', rule='test*.py'):
        case_path = os.path.join(cur_path, caseName)
        # 如果不存在这个case文件夹,就自动创建一个
        if not os.path.exists(case_path):
            os.mkdir(case_path)
        print("test case path:%s"%case_path)
        # 定义discover方法的参数
        discover = unittest.defaultTestLoader.discover(case_path,
                                                       pattern=rule,
                                                       top_level_dir=None)
        print(discover)
        return discover
    
    
    # 生成html报告
    def run_case(all_case, reportName = 'report'):
        now = time.strftime("%Y-%m-%d-%H-%M-%S")
        report_path = os.path.join(cur_path, reportName)    # 用例文件夹
        if not os.path.exists(report_path):
            os.mkdir(report_path)
        report_abspath = os.path.join(report_path, now+'report.html')
        fp = open(report_abspath, 'wb')
        runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                                               title=u'pc端自动化测试报告',
                                               description='测试用例执行结果如下:')
    
        runner.run(all_case)
        fp.close()
    
    
    # 获取最新的测试报告
    def get_report_file(report_path):
        lists = os.listdir(report_path)
        lists.sort(key=lambda fn: os.path.getmtime(os.path.join(report_path, fn)))
        print(u'最新测试生成的报告:' + lists[-1])
        # 找到最新生成的报告文件
        report_file = os.path.join(report_path, lists[-1])
        return report_file
    
    
    # 发送测试报告到邮箱
    def send_mail(sender, psw, receiver, smtpserver, port, report_file):
        yag = yagmail.SMTP(user=sender,
                           password=psw,
                           host=smtpserver,
                           port=port,
                           smtp_ssl=True)
        yag.send(
                 receiver,
                 '测试报告',
                 '测试用例报告',
                 report_file)
        print('发送成功')
        yag.close()
    
    
    # 执行代码
    if __name__ == '__main__':
        all_case = add_case()
        run_case(all_case)
        report_path = os.path.join(cur_path, 'report')
        report_file = get_report_file(report_path)
        sender = '企业邮箱'
        psw = '企业邮箱登录密码'
        smtp_server = 'smtp.exmail.qq.com'
        port = 465
        receiver = ['收件人c', '收件人b, '收件人c']
    
        send_mail(sender, psw, receiver, smtp_server, port, report_file)
  • 相关阅读:
    用C语言代码实现n进制数转换为十进制数
    RAID简介
    很久没更新自己的博客园的博客了
    微软之于程序员==铁饭碗破了
    sql编译执行过程
    sql server性能终结者锁
    sysprocesses
    SQL SERVER 2008的几个新东西:插入,删除,修改一起来(适合数据的同步)merger
    http Status Code Definitions
    sql server talbe valued parameters (tvp)
  • 原文地址:https://www.cnblogs.com/yuer02/p/12673222.html
Copyright © 2011-2022 走看看