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 ...
随机推荐
- [CF百场计划]#2 Codeforces Round #618 (Div. 2)
A. Non-zero Description: Guy-Manuel and Thomas have an array \(a\) of \(n\) integers [\(a_1, a_2, \d ...
- 28. docker swarm 容器编排简介
1.采用集群架构 集群架构包含节点和角色 docker 节点中 包含 worker 和 manager 两个角色 manager 相当于 swarm 集群的 大脑 是用来管理配置节点的 (避免单点故 ...
- strpos用法
语法 strpos(string,find,start) 参数 描述 string 必需.规定要搜索的字符串. find 必需.规定要查找的字符串. start 可选.规定在何处开始搜索. 技术细 ...
- 吴裕雄--天生自然 PHP开发学习:魔术常量
<?php echo '这是第 " ' . __LINE__ . ' " 行'; ?> <?php echo '该文件位于 " ' . __FILE__ ...
- android测量的三种模式
测量模式有三种引用官方的解释如下 UNSPECIFIED The parent has not imposed any constraint on the child. It can be whate ...
- PAT Advanced 1052 Linked List Sorting (25) [链表]
题目 A linked list consists of a series of structures, which are not necessarily adjacent in memory. W ...
- UML-从需求到设计--迭代进化
按照UP原则,初始阶段做10%的需求,而细化阶段开始为这10%的需求设计解决方案.后续章节介绍如何设计.
- Ivory Coast Map
Fun Facts about Cote d'Ivoire The Republic of Cote d'Ivoire (previously known as the Ivory Coast) is ...
- 1. Ruby基础知识
1. Ruby执行选项 符号 作用 -c 检查代码正确性 -w 警告模式运行 -e 字面脚本 -l 行模式运行 单独 ruby -c Hello.rb 组合 ruby -le 'print " ...
- 了解Kafka生产者
了解Kafka生产者 之前对kafka的整体架构有浅显的了解,这次正好有时间,准备深入了解一下kafka,首先先从数据的生产者开始吧. 生产者的整体架构 可以看到整个生产者进程主要由两个线程进 ...