『居善地』接口测试 — 9、接口自动化框架的发送邮件实现
2021-06-06 17:17
267 查看
目录
如果要完整实现自动化测试,需要把项目测试的结果数据等,通过发送电子邮件的方式,通知需要看到测试报告的用户。
1、设置邮箱授权码
想要使用代码发送邮件,首先要对邮箱进行设置:即设置邮箱授权码。
(1)设置163邮箱
第一次设置授权码:登录163邮箱 —> 设置 —> POP3/SMTP/IMAP —> 设置授权码。
第n次设置授权码: 登录163邮箱 —> 设置 —> POP3/SMTP/IMAP —> 在界面左侧栏中有客户端授权码选项 —> 重置授权码。
(2)设置QQ邮箱发送邮件
- 找到QQ邮箱授权码,打开QQ邮箱 —> 设置 —> 账号 —> POP3开启服务 —> 开启
(如果已经开启了,不知道授权码,就点温馨提示里面的‘生成授权码’) - 发验证短信获取授权码,照着提示发个短信,点我已发送,就会收到授权码了。
- 收到授权码后复制,保存下来,这个就可以当QQ邮箱的密码了。
2、安装zmail模块
我们需要适用Python中的
zmail模块,来实现邮件的发送。
首先在
cmd命令行中,执行如下命令,来安装
zmail模块。
pip install zmail或者
python -m pip install zmail
提示:在Python中适用
zmail模块比使用smtplib库更加方便。
3、实现代码
""" 使用python的zmail模块实现发送邮件 1.安装zmail库 pip install zmail python -m pip install zmail 2.设置邮箱的授权码 3.发邮件 1.编辑邮件内容 2.填写发件人邮箱和授权码 3.发送邮件 """ import zmail # 1.准备发送邮件的内容(字典格式) # 注意subject少用测试或者test,邮箱会自动屏蔽,多了还会拉黑你。 mail_content = { "subject": "邮件主题", "content_text": "邮件内容,邮件正文", "attachments": "../data/add_dep.xls" # 邮件附件(路径) } # 2.使用发送邮件的账户和密码,密码是授权码 server = zmail.server("xxxxxxx@163.com", "xxxxxxx123456") """ 说明: 关于邮客户端设置的POP3,SMTP,IMAP地址, zmail模块都帮助我们设置好了 点击zmail.server()方法即可查看,如下: def server(username: str, password: str, smtp_host: Optional[str] = None, smtp_port: Optional[int] = None, smtp_ssl: Optional[bool] = None, smtp_tls: Optional[bool] = None, pop_host: Optional[str] = None, pop_port: Optional[int] = None, pop_ssl: Optional[bool] = None, pop_tls: Optional[bool] = None, config: Optional[str] = None, timeout=60, debug=False, log: Optional[logging.Logger] = None, auto_add_from=True, auto_add_to=True) -> MailServer: """ 1af9 # 3.发送邮件 # 参数:收件人,邮件内容 server.send_mail("yyyyyyy@163.com", mail_content) # 给多人发送邮件 # server.send_mail([收件人1, 收件人2], 邮件内容)
4、发送html格式的邮件
这可以把html格式的测试报告,作为邮件的正文进行发送。
同时也可以把测试报告作为附件一起发送。
# 导入zmail模块 import zmail模块 # 发送HTML作为邮件内容 # 1.读取html文件 with open("report.html", "r", encoding="utf-8") as fp: content_html = fp.read() # 2.准备发送邮件的内容(字典格式) mail_content = { "subject": "自动化测试报告", "content_html": content_html, "attachments": "report.html" } # 3.使用发送邮件的账户和密码,密码是授权码 server = zmail.server("xxxxxxx@163.com", "xxxxxxx123456") # 4.发送邮件 # 参数:收件人,邮件内容 server.send_mail("yyyyyyy@163.com", mail_content)
注意:
zmail.read_html()可以读取html文件,但是
read_html()方法读入纯英文的页面没有问题。但读取带有中文的页面,就会报错,因为没有做编码处理。
所以我们会使用
open()方法来读取html中的内容。
我们也可以把源码中的
read_html()方法修改一下,加上编码即可,如下:
def read_html(html_path: str): """Get html content by its path.""" path = get_abs_path(html_path) with open(path, 'r', encoding="utf-8") as f: content = f.read() return content
修改完之后就可以用下面代码,代替上面的1,2步了。
mail_content = { "subject": "自动化测试报告", "content_html": zmail.read_html("../report/report.html"), "attachments": "report.html" }
相关文章推荐
- ZF框架实现发送邮件的方法
- Java+Selenium3框架设计篇5-如何实现邮件发送测试报告
- thinkphp框架使用PHPMailer实现发送邮件的功能,以及各种问题解析
- Laravel框架实现的使用smtp发送邮件功能示例
- Laravel框架实现的使用smtp发送邮件功能示例
- TP框架实现发送邮件
- 在Laravel框架里实现发送邮件实例(邮箱验证)
- python调用sendcloud接口实现邮件批量发送收取及url回调 推荐
- 在Laravel框架里实现邮箱验证---发送邮件
- PHP_thinkphp框架使用PHPMailer实现发送邮件的功能,以及各种问题解析
- C#程序集成LOTUS邮件发送功能,实现办公自动化
- 关于接口测试——自动化框架的设计与实现
- Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
- 关于接口测试——自动化框架的设计与实现
- python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上(详解)
- ZF框架实现发送邮件的方法
- python办公自动化(6)几行代码实现发送邮件
- [麦先生]在Laravel框架里实现邮箱验证---发送邮件
- 发送邮件和消息接口的实现(一)接口与反射
- 使用yii框架实现邮件发送