1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python接口自动化之自动发送测试报告邮件

python接口自动化之自动发送测试报告邮件

时间:2019-12-28 07:03:27

相关推荐

python接口自动化之自动发送测试报告邮件

目录

前言

smtp授权

发送邮件

封装及应用

总结

重点:配套学习资料和视频教学

前言

​ SMTP(Simple Mail Transfer Protocol)也就是简单邮件传输协议,是一种提供可靠且有效电子邮件传输的协议。python的smtplib模块就提供了一种很方便的途径发送电子邮件,它对smtp协议进行了简单的封装。

​ python发邮件主要需要两个模块:smtplib和email,这两个模块是python自带的库,import即可使用。smtplib主要负责发送邮件,即一个发送邮件的动作,如连接邮箱服务器,登录邮箱,发送邮件。email主要负责构造邮件,指的是邮箱页面显示的一些构造,如发件人,收件人,主题,正文,附件等。

smtp授权

​ 上面已经说到发送邮件是基于smtp服务的,那么我们就需要一个可以登录smtp服务器的账号及授权码,这里以qq邮箱为例,登录qq邮箱后,在设置》账户这里就可以开启smtp,开启后发送短信获取授权码即可。

发送邮件

​ 涉及的部分参数说明:

连接到smtp服务器:smtplib.SMTP_SSL(smtp服务器地址, 端口号)登录smtp服务器:smtp.login(smtp邮件地址, 登录smtp的授权码)构造邮件对象:MIMEMultipart()创建邮件内容:MIMEText(邮件内容, "plain", "utf8")两个参数文本类型,编码格式;如果要发送html格式的邮件内容,则把plain(默认)替换成html把相关内容添加到邮件:smg.attach(具体的内容),添加邮件内容设置邮件主题:smg["Subject"] = 主题内容设置邮件发件人:smg["From"] = 邮件地址设置邮件收件人:smg["To"] = 邮件地址发送邮件:smtp.send_message(邮件对象, from_addr=发件人邮件地址, to_addrs=收件人邮件地址)如果有多个收件人则用list格式传给to_addrs创建附件:MIMEApplication(附件内容)创建图片:MIMEImage(图片内容),与附件一样设置附件或图片等:file_msg.add_header(\_name, \_value, **\_params):扩展标题设置,_name为要添加的标题字段,_value为标题的值。msg.add_header('Content-ID', 'imgid') #设置图片IDmsg.add_header('Content-Disposition', 'attachment', filename='test.xlsx')#为附件添加一个标题msg.add_header('Content-Disposition', 'attachment', filename=('utf-8', '', '中文标题')) #添加非ASCII字符时需指定编码

python

import smtplibfrom email.mime.text import MIMEText # 创建文本内容的邮件内容from email.mime.multipart import MIMEMultipart # 创建带附件的实例from email.mime.application import MIMEApplication # 用于创建附件的from email.mime.image import MIMEImage # 用于创建图片,与添加附件一样的,下面不做举例# 第一步: 连接到smtp服务器smtp = smtplib.SMTP_SSL("", 465)smtp.login("xxxxxx@","afajccbab")# 第二步:构建邮件smg = MIMEMultipart()text_smg = MIMEText("这是邮件文本内容", "plain", "utf8")# 邮件内容smg.attach(text_smg)# 添加到邮件# 添加附件file_msg = MIMEApplication(open(r"C:\project\test\reports\report.html","rb").read())file_msg.add_header('content-disposition', 'attachment', filename='report.html')smg.attach(file_msg)# 添加到邮件smg["Subject"] = "测试测试"# 主题smg["From"] = "aaaaaa@" # 邮件内显示的发件人smg["To"] = "bbbbb@" # 邮件内显示的收件人# 第三步发送邮件smtp.send_message(smg, from_addr="aaaaaa@", to_addrs="bbbbb@")

​ 还有更多的用法,有兴趣的可以再深入研究。

封装及应用

​ 下面是一个简单的封装例子,可以根据自己的需要优化,甚至可以把邮件的主题、发件人、收件人以及smtp的登录邮箱授权密码等提取出来放到配置文件来维护。

python

import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.mime.application import MIMEApplicationdef send_email(file_path):smtp = smtplib.SMTP_SSL("",465)smtp.login("xxxxx@","smtp登录密码")smg = MIMEMultipart()text_smg = MIMEText("这是邮件文本内容", "plain", "utf8")smg.attach(text_smg)file_msg = MIMEApplication(open(file_path,"rb").read())file_msg.add_header('content-disposition', 'attachment', filename='report.html')smg.attach(file_msg)smg["Subject"] = "测试报告"smg["From"] = "aaaaaa@"smg["To"] = "bbbbbbb@"smtp.send_message(smg,from_addr="aaaaaa@",to_addrs="bbbbbbb@")

​ 测试报告都是测试用例运行完之后才生成,那么我们就可以把发邮件这一步放到测试报告生成之后:

python

import unittestimport osfrom common.contants import CASE_DIR, REPORT_DIRfrom common.send_email import send_email# 第一步:创建测试套件suite = unittest.TestSuite()# 第二步加载用例到套件loader = unittest.TestLoader()suite.addTest(loader.discover(CASE_DIR))report_path = os.path.join(REPORT_DIR, "report.html")with open(report_path, "wb") as f:runner = HTMLTestRunner(stream=f,title="24期的测试报告",description="测试报告的描述信息。。。。。",tester="MuSen")# 运行测试套件runner.run(suite)# 执行完代码之后,发送报告send_email(report_path)

前言smtp授权发送邮件封装及应用

总结

感谢每一个认真阅读我文章的人!!!

如果下面这些资料用得到的话可以直接拿走:

1、自学开发或者测试必备的完整项目源码与环境

2、测试工作中所有模板(测试计划、测试用例、测试报告等)

3、软件测试经典面试题

4、Python/Java自动化测试实战.pdf

5、Jmeter/postman接口测试全套视频获取

6、Python学习路线图

重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如下,需要的评论区留言或者私信我

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。