python自动将新生成的报告作为附件发送并进行封装
发送报告作为自动化部署来讲是一个重要的环节,废话不多说直接上代码吧,如果想更细致的了解内容查阅本博主上篇基本发送文章
特别叮嘱一下:SMTP协议默认端口25,qq邮箱SMTP服务器端口是465 别出丑了噢
- import smtplib
import os
from smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from 000.11111.22222 import 33333 #为了规范代码特将自己需要的方法进行封装成了类,从而直接引用
from time import strftime
class Email:
def __init__(self):
self.cu = 33333()
self.host = self.cu.get_email("host")
self.port = int(self.cu.get_email("port"))
self.user = self.cu.get_email("user")
self.password = self.cu.get_email("password")
self.to_addrs_default = self.cu.get_email("to_addrs").split(",")
# 初始化email服务器
self.smtp = SMTP_SSL(self.host, self.port)
# 登录
self.smtp.login(self.user, self.password)
def send_text(self,title,body=None,to_addrs=None,unipath=None,batch=True):
if to_addrs is None:
to_addrs = self.to_addrs_default
if batch:
#编辑添加邮件内容
mail = str(body)
msg = MIMEMultipart()
text_plain = MIMEText('附件为接口自动化测试报告,请查收!', 'plain', 'utf-8')#邮件内容
msg['From'] = self.user
msg['Subject'] = title
for i in to_addrs:
msg["to"] = i
msg.attach(text_plain)
#当前文件夹下最新文件作为附件进行发送
test_report = r'D:\Basic framework\ZUCC\report' # 存放文件的目录
lists = os.listdir(r'D:\Basic framework\ZUCC\report') # 列出目录的下所有文件保存到lists
lists.sort(key=lambda fn: os.path.getmtime(test_report + "\\" + fn)) # 按时间排序
file_new = os.path.join(test_report, lists[-1]) # 获取最新的文件保存到file_new
sendfile = open(file_new, 'rb').read()
text_att = MIMEText(sendfile, 'base64', 'utf-8')
text_att["Content-Type"] = 'application/octet-stream'
text_att['Content-Disposition'] = f"attachment; filename ='{strftime('%Y%m%d%H%M')}.xls'" # 重新命名附件,后缀格式可以自己定
msg.attach(text_att)
#发送信息
try:
self.smtp.sendmail(self.user,[i], msg.as_string())
self.smtp.close()
print('邮件发送成功')
except Exception as e:
print('邮件发送失败: ', str(e))
if __name__ == '__main__':
Emailutil().send_text('测试标题')
到此结束,希望各位给博主来个关注或点个大大的赞噢
python自动将新生成的报告作为附件发送并进行封装的更多相关文章
- jenkins运行脚本生成HTML报告时遇到的问题
1.jenkins生成HTML报告 1)安装插件:HTML Publisher plugin 2)系统管理->插件管理->安装HTMLHTML Publisher plugin 2.job ...
- python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告
1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请求参数 ...
- python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(二)
可以参考 python+requests接口自动化完整项目设计源码(一)https://www.cnblogs.com/111testing/p/9612671.html 原文地址https://ww ...
- python笔记32-ddt框架优化(生成html报告注释内容传变量)
前言 至于什么是ddt这个可以参考我之前写的博客内容,使用ddt框架的时候,有个问题困扰我很久了,一直没得到解决(也有很大小伙伴问过我,没解决抱歉了!) 这个问题就是:如何使用ddt框架时,生成的ht ...
- 利用python自动生成verilog模块例化模板
一.前言 初入职场,一直忙着熟悉工作,就没什么时间更新博客.今天受“利奇马”的影响,只好宅在家中,写写技术文章.芯片设计规模日益庞大,编写脚本成了芯片开发人员必要的软技能.模块端口动不动就几十上百个, ...
- python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(已弃用)
前言 1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请 ...
- Python自动生成代码工具
项目中有一个需求,对一个基类而言,拥有一个比较方法和拷贝方法,某些地方需要频繁地对这两个方法进行调用.对于所有子类而言,需要重写这两个方法,并在其中维护类内一些成员变量.例如有一个变量m_iMyVal ...
- 从用python自动生成.h的头文件集合和类声明集合到用python读写文件
最近在用python自动生成c++的类.因为这些类会根据需求不同产生不同的类,所以需要用python自动生成.由于会产生大量的类,而且这些类是变化的.所以如果是在某个.h中要用include来加载这些 ...
- 自动生成AWR报告
--自动生成AWR报告 -------------------2013/09/23 脚本代码: #!/bin/bash AWR_FORMAT=html NUM_DAYS=1 MAX_S ...
随机推荐
- JavaScript 中 empty、remove 和 detach的区别
内容 empty.remove 和 detach的区别 jQuery 操作 DOM 之删除节点 方法名 元素所绑定的事件及数据是否也被移除 作用 $(selector).empty() 是 从被选元素 ...
- 浅谈js本地图片预览
最近在工作中遇到一个问题,就是实现一个反馈页面,这个反馈页面的元素有反馈主题.反馈类型.反馈内容.反馈人联系电话以及反馈图片.前端将这些反馈的元素POST给后台提供的接口:实现这个工作的步骤就是:页面 ...
- HTTP长连接和短连接及应用情景
HTTP短连接 HTTP/1.0中默认使用短连接, 客户端和服务器进行一次HTTP操作, 就需要建立一次连接, 任务结束连接也关闭. 当客户端浏览器访问的web网页中包含其他的web资源时, 每遇到一 ...
- allure用法(一)-配置信息及基本用法
allure是一个轻量级的,灵活的,支持多语言的测试报告工具 优点: 可以为dev/qa 提供 详尽的测试报告.测试步骤.日志 可以为管理层提供更好的统计报告 Java语言开发的 可以集成到jenki ...
- css 实现输入效果
<template> <h1>Pure CSS Typing animation.</h1> </template> <script> ...
- 微信小程序--设置和获取剪切板内容
设置 wx.setClipboardData // 复制功能 获取 wx.getClipboardData // 粘贴功能 let _this = this wx.setClipbo ...
- Sql语言-操作表
2. 操作表 1. C(Create):创建 1. 语法: create table 表名( 列名1 数据类型1, 列名2 数据类型2, .... 列名n 数据类型n ); * 注意:最后一列,不需要 ...
- SQL Server 2019 异常服务没有及时响应启动或控制请求
安装到最后一步时发生了如下错误 解决办法: 1.使用管理员打开cmd窗口,输入以下命令 net localgroup administrators "NETWORK SERVICE" ...
- 【安全建设】日志监控的极品工具sysmon
转载请注明出处:https://www.cnblogs.com/vitalemontea/p/16178048.html 1.前言 最近态势感知爆了某个同事有挖矿事件的告警,打开一看,就是会通过dns ...
- 【HCIE】ipv6之6to4隧道如何计算48位前缀地址
6to4隧道支持router-router,host-router,router-host,host-host 采用专用6to4地址,前缀为2002::/16 其中如何结合ipv4地址? 2002:i ...