• Python+Selenium 自动化测试获取测试报告内容并发送邮件


    Python+Selenium 自动化测试获取测试报告内容并发送邮件

    这里封装一个send_mail()方法,用于测试完成后读取测试报告内容,并将报告内容通过邮件发送到接收人

    SMTP:Simple Mail Transfer Protocol,简单邮件传输协议

    复制代码
     1 # coding: utf-8
     2 
     3 import smtplib                            # 导入smtplib模块
     4 from email.mime.text import MIMEText
     5 from email.header import Header
     6 from .logger import *
     7 
     8 
     9 def send_email(test_report):
    10 
    11     with open(test_report, 'r', encoding='utf-8') as f:
    12         mail_body = f.read()                                    # 打开测试报告,读取报告内容作为邮件内容
    13     sender = '*********@***.com'                                # 发出邮箱
    14     receiver = ['******@***.com', '*******@**.com']             # 接收邮箱
    15     mail_server = 'smtp.139.com'                                # 邮箱服务地址,这里以139邮箱为例
    16     subject = '自动化测试报告'                                    # 邮件标题
    17     username = '#########'                                      # 邮箱登录名
    18     passwd = '########'                                         # 密码
    19     message = MIMEText(mail_body, 'html', 'utf-8')              # 设置邮件格式
    20     message['Subject'] = Header(subject, charset='utf-8')
    21     # 邮箱登录
    22     smtp = smtplib.SMTP()                       # 实例化smtplib.SMTP()类对象
    23     smtp.connect(mail_server)                     # 连接邮件服务器
    24     smtp.login(username, passwd)                   # 登录
    25     # 发送邮件
    26     for i in receiver:
    27         smtp.sendmail(sender, i, message.as_string())
    28         Logger().get_log().info( '邮箱:' + i + ',发送邮件成功!
    ')  # 打印log
    29     smtp.quit()
    复制代码

    发送邮件这点,理论上可以直接使用smtp.sendmail(sender, receiver, message.as_string);

    实际使用中发现同时发送到多个邮箱时效果不理想,会出现部分邮箱没有发送;

    所以这里使用for循环取接收邮箱遍历发送!

    用例执行后,调用此方法即可实现邮件发送

     

    复制代码
     1 # coding: utf-8
     2 # Team : Quality Management Center
     3 # Author:Carson
     4 # Date :2019/6/19 17:26
     5 # Tool :PyCharm
     6 
     7 from constant.path import *
     8 import HTMLTestRunner
     9 from encapsulation.add_case import *
    10 from encapsulation.send_mail import *
    11 
    12 # 设置测试报告参数
    13 fp = open(report_path, "wb")
    14 runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
    15                                        title=u'测试报告标题',
    16                                        description=u'描述信息:',
    17                                        tester=u'测试人员')
    18 # run所有用例
    19 runner.run(add_test())
    20 fp.close()
    21 time.sleep(1)
    22 print(u'测试报告生成地址:' + report_path)
    23 time.sleep(5)
    24 send_email(report_path)
  • 相关阅读:
    实现tip浮层
    c++实现冒泡排序
    一天一小段js代码(no.4)
    html5 css3实现图中结构
    html表格相关
    js跨浏览器的事件处理函数
    js实现DOM结构
    CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义)
    正则表达式学习笔记
    使用JS与CSS3的翻转实现3D翻牌效果
  • 原文地址:https://www.cnblogs.com/valorchang/p/11398339.html
Copyright © 2020-2023  润新知