MOOC(7)- case依赖、读取json配置文件进行多个接口请求-发送测试报告邮件(19)
给多个人发邮件时,可以传入邮箱列表
把多个收件人用分号隔开
# -*- coding: utf-8 -*-# @Time : 2020/2/15 17:02# @File : send_mail_19.py# @Author: Hero Liuimport smtplibimport timefrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.application import MIMEApplication
# 邮件发送的用户名和密码 常识:第三方授权码_user = "1399630688@qq.com"_pwd = "ycsrylfcyrxhhaeh" # 这是授权码
now = time.strftime("%Y-%m-%d_%H_%M_%S") # 获取时间戳
class SendEmail: def send_email(self, email_to, filepath): # email_to收件人 # filepath 准备发送的附件的地址 # Multipart分多个部分 msg = MIMEMultipart() msg["Subject"] = now + "lhui的测试报告" msg["From"] = _user # msg["To"] = email_to # 表示如果有多个收件人时,用分号分隔,用分号的原因是实际手动发邮件选择多个收件人时,也是分号分隔的 msg["To"] = ";".join(email_to)
# 这是正文部分 part = MIMEText("这是自动化测试报告结果,请查收!") msg.attach(part)
# 这是附件部分,上传一个附件 # 这里必须是上传的文件,不可以是文件夹,需是完整的路径 part = MIMEApplication(open(filepath, "rb").read()) part.add_header("Content-Disposition", "attachment", filename=filepath) msg.attach(part) s = smtplib.SMTP_SSL("smtp.qq.com", timeout=30) # 连接smtp邮件服务器,端口默认是25 s.login(_user, _pwd) # 登录服务器 s.sendmail(_user, email_to, msg.as_string()) # 发送邮件
# 上传多个附件的方法:把多个文件放在列表里,或者是获取文件夹下的文件列表 # path = ["1", "2", "3"] # 假设这是文件列表 # for item in path: # part = MIMEApplication(open(item, "rb").read()) # part.add_header("Content-Disposition", "attachment", filename=item) # msg.attach(part) # s = smtplib.SMTP_SSL("smtp.qq.com", timeout=30) # 连接smtp邮件服务器,端口默认是25 # s.login(_user, _pwd) # 登录服务器 # s.sendmail(_user, email_to, msg.as_string()) # 发送邮件
if __name__ == "__main__": email_to = ["lhclouds@163.com", "echat1@163.com"] SendEmail().send_email(email_to, r"H:\python_lemon\day_20200208_mooc\data\result.html")
MOOC(7)- case依赖、读取json配置文件进行多个接口请求-发送测试报告邮件(19)的更多相关文章
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-解决用例间依赖问题(17)
最最重要,处理case依赖.字段依赖 # -*- coding: utf-8 -*- # @Time : 2020/2/13 21:14 # @File : data_depend_17.py # @ ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-读取json封装成类(13)
把读取json数据的函数封装成类 # -*- coding: utf-8 -*- # @Time : 2020/2/12 16:44 # @File : do_json_13.py # @Author ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-openpyxl读取excel(14)
从excel中读取数据 # -*- coding: utf-8 -*- # @Time : 2020/2/12 17:23 # @File : do_excel_openpyxl_14.py # @A ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-执行测试用例(16)
执行测试用例 # -*- coding: utf-8 -*- # @Time : 2020/2/12 22:56 # @File : run_test_16.py # @Author: Hero Li ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-完整的测试类,含依赖测试(15)
ddt.依赖测试.断言.测试数据写回 # -*- coding: utf-8 -*- # @Time : 2020/2/12 23:07 # @File : test_class_15.py # @A ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-模拟接口响应数据(18)
这里是把传入的请求数据作为响应值返回 # -*- coding: utf-8 -*- # @Time : 2020/2/15 9:47 # @File : do_mock_18.py # @Autho ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-xlrd操作excel(11)
xlrd操作excel # -*- coding: utf-8 -*- # @Time : 2020/2/12 9:14 # @File : do_excel_xlrd_11.py # @Author ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-测试类中调用封装的mock(10)
封装mock后,在单元测试中调用 # -*- coding: utf-8 -*- # @Time : 2020/2/11 8:35 # @File : test_class_10.py.py # @A ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-封装mock(9)
封装mock # -*- coding: utf-8 -*- # @Time : 2020/2/12 8:51 # @File : mock_demo_9.py # @Author: Hero Liu ...
随机推荐
- 从编程实现角度学习Faster R-CNN(附极简实现)
https://www.jianshu.com/p/9da1f0756813 从编程实现角度学习Faster R-CNN(附极简实现) GoDeep 关注 2018.03.11 15:51* 字数 5 ...
- 题解【[FJOI2018]所罗门王的宝藏】
本题解同步于luogu emmm切了近年省选题来写题解啦qwq 该题较其他省选题较水吧(否则我再怎么做的出来 思路是图论做法,做法上楼上大佬已经讲的很清楚了,我来谈谈代码实现上的一些细节 \[\tex ...
- spring容器抽象的具体实现
1.BeanFactory 接口与 ApplicationContext 接口 (1)spring 提供了两种类型的IOC容器实现.BeanFactory 和 ApplicationContext ( ...
- 总结一些常用的训练 GANs 的方法
众所周知,GANs 的训练尤其困难,笔者自从跳入了 GANs 这个领域(坑),就一直在跟如何训练 GANs 做「对抗训练」,受启发于 ganhacks,并结合自己的经验记录总结了一些常用的训练 GAN ...
- 使用pyintaller打包python3.6项目,并用c#调用该脚本
一.pythoninstaller 打包python项目 前提:安装python3.6环境+pycharm 1. 安装pyinstaller pip install pyinstaller 2. cm ...
- hdu1066 Last non-zero Digit in N!(求阶乘最后一位不为0的数字)
http://acm.hdu.edu.cn/showproblem.php?pid=1066 转自:https://blog.csdn.net/fengyu0556/article/details/5 ...
- Python中列表的copy方法
1.在列表中存在一个名为copy的方法,就像字面意思一样copy方法是用于复制列表元素的,示例如下: names = [‘Zhangsan’,’Lisi’,’WangErgou’] names2 = ...
- 【C#并发】00概述
摘自<C#并发编程经典实例>[美]Stephen Cleary 并发:同时做多件事情.终端用户利用并发功能,在输入数据库的同时相应用户输入.服务器应用并发,在处理第一个请求的同时响应第二个 ...
- 第二季第八天 HTML5新特性
在函数内部window.a = a 在全局中就可以拿到这个变量 变量命名.作为函数的参数的时候要详细.调用的时候可以简单点 做全局变量的两个方案 1.绑在标签上data 2.闭包 视频一般都是二进 ...
- win32概述
win32基于已有的框架 有意入口函数只有一个 都需要有一个主函数 所有程序的入口都是maincrtstartup tydedef 顾名思义 window是基于c,c++ 又想有自己所特有的数据类型 ...