Unittest单元测试框架和zmail发送邮件搭配使用,超爽的!谁用谁知道

python发送邮件模块–zmail

前言

  • 每次学习新模块的的时候需要思考以下两个问题
      1.为什么选择zmail?
      2.zmail能解决工作中什么样的问题?

安装zamil模块

pip install zamil

zmail有哪些优点?

  • 自动查找服务器自地址及其端口
  • 自动使用合适的协议登录
  • 自动将python字典转换为MIME对象(带附件)
  • 自动添加邮件标题和本地名称,以避免服务器拒绝您的邮件
  • 轻松自定义邮件标题
  • 支持HTML作为邮件内容
  • 只需要python> = 3.5,您可以将其嵌入到项目中而无需其他模块

演式发送邮件

  1. 文件夹建1个HTML文件

  2. 邮件发送HTML文件

  3. 演式发送邮件效果
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZAgCuwM9-1596532351126)(C:\Users\zhuzhichao\AppData\Roaming\Typora\typora-user-images\image-20200731130139161.png)]


实战演练

  • 测试用例
    在这里插入图片描述
生成HTML测试报告
#!/usr/bin/python3

# @Time    : 2020/7/31 10:55
# @Author  : 骑着乌龟找猪

import unittest
import HTMLTestRunner


# 用例目录地址
test_dir = "./"

def case():
    #  加载测试所有用例
    discover = unittest.defaultTestLoader.discover(test_dir,
                                                   pattern="test*py",
                                                   )
    return discover

if __name__ == '__main__':
    # 测试报告存放目录
    report_path = "D:/report/result.html"
    # 以二制定方式写入文件
    file = open(report_path, 'wb')
    # 定义测试报告
    runner = HTMLTestRunner.HTMLTestRunner(stream=file,
                                           title="测试报告",
                                           description="用列执行结果")
    # 执行用例生成报告
    runner.run(case())

运行结果:

在这里插入图片描述

邮件模块代码
#!/usr/bin/python3

# @Time    : 2020/7/31 8:28
# @Author  : 骑着乌龟找猪

import zmail

def s_mail()
    report_path = "D:/report/result.html"

    MAIL = {
        'subject': '邮件主题',  
        'content_text': '测试发送邮件',
        'attachments': report_path, 
    }
    server = zmail.server("发送邮件人", "QQ邮件的授权码,不是密码")
    # 如果有多个收件人,则用列表
    server.send_mail("[email protected]", MAIL)

备注:重点邮箱使用的是QQ授权码,不是QQ密码


完整代码

#!/usr/bin/python3

# @Time    : 2020/7/31 10:55
# @Author  : 骑着乌龟找猪

import unittest
import HTMLTestRunner
# 导入发送邮件模块
from Mail.zmail import s_mail

# 用例
test_dir = "./"

def case():
    #  加载用例
    discover = unittest.defaultTestLoader.discover(test_dir,
                                                   pattern="test*py",
                                                   )
    return discover

if __name__ == '__main__':
    # 报告生成目录
    report_path = "D:/report/result.html"
    # 测试结果写入到报告里
    file = open(report_path, 'wb')
    runner = HTMLTestRunner.HTMLTestRunner(stream=file,
                                           title="测试报告",
                                           description="用列执行结果")
    # 执行用例生成报告
    runner.run(case())
    # 一定是要先关闭文件再执行下方的发送邮件,否则发送后的附件会为空
    file.close()
    s_mail()

在这里插入图片描述

如果对软件测试、接口测试、自动化测试、持续集成、面试经验。感兴趣可以进到902061117,群内会有不定期的分享测试资料。还会有技术大牛,业内同行一起交流技术

你可能感兴趣的:(Unittest框架实战解析,单元测试,python,unittest)