一下代码是自己结合教材,并结合以往用到的实例编写的代码,可以做为参考

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from HTMLTestRunner import HTMLTestRunner
from email.header import Header
import unittest
import time,os#==============定义发送邮件 ===============def send_mail(file_new):f = open(file_new,'rb')#读取测试报告正文mail_body = f.read()f.close()# 发送邮箱服务器smtpserver = "smtp.163.com"# 发件人邮箱sender = 'qwe_test@163.com'# 接收人邮箱receiver = 'qwe@163.com'# 发送邮箱用户信息username = 'qwe@163.com'# 客户端授权码password = 'qweqw18'#通过  模块构造的带附件的邮件如图msg = MIMEMultipart()#编写html类型的邮件正文,MIMEtext()用于定义邮件正文#发送正文text = MIMEText(mail_body, 'html', 'utf-8')text['Subject'] = Header('自动化测试报告', 'utf-8')msg.attach(text)#发送附件#Header()用于定义邮件标题msg['Subject'] = Header('自动化测试报告', 'utf-8')msg_file = MIMEText(mail_body, 'html', 'utf-8')msg_file['Content-Type'] = 'application/octet-stream'msg_file["Content-Disposition"] = 'attachment; filename="TestReport.html"'msg.attach(msg_file)# 如果只发正文的话,上面的代码 从password 下面到这段注释上面
# 全部替换为下面的两行代码即可,上面的代码是增加了发送附件的功能。
#     text = MIMEText(mail_body, 'html', 'utf-8')
#     text['Subject'] = Header('自动化测试报告', 'utf-8')#连接发送邮件# smtp = smtplib.SMTP()# smtp.connect(smtpserver)# smtp.login(username, password)# smtp.sendmail('qwet@163.com', 'qewq@163.com', msg.as_string())# smtp.quit()# print("email has send out !")#一样的逻辑,不一样的写法导致上面的发送失败,下面这种发送成功,所以要使用msg['from']这种写法msg['from'] = 'qweqt@163.com'  # 发送邮件的人msg['to'] = 'q10@163.com'# smtp = smtplib.SMTP('smtp.163.com', 25)  # 连接服务器smtp = smtplib.SMTP()smtp.connect('smtp.163.com')smtp.login(username, password)  # 登录的用户名和密码smtp.sendmail(msg['from'], msg['to'], msg.as_string())  # 发送邮件
    smtp.quit()print('sendmail success')#======================查找最新的测试报告==========================def new_report(testreport):#方式1:# lists = os.listdir(testreport)# lists.sort(key = lambda fn: os.path.getmtime(testreport + '\\' + fn))# file_new = os.path.join(testreport,lists[-1])# print(file_new)# return file_new#方式2:dirs = os.listdir(testreport)dirs.sort()newreportname = dirs[-1]print('The new report name: {0}'.format(newreportname))file_new = os.path.join(testreport, newreportname)return file_newif __name__ == '__main__':test_dir = os.path.join(os.getcwd(),'test_case')#test_report = "D:/SProgram/PySpace/wmq/SendHtmlMail/report"test_report = os.path.join(os.getcwd(), 'report')discover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')now = time.strftime("%Y-%m-%d-%H_%M_%S")filename = test_report+'/result_'+now+'.html'fp = open(filename,'wb')runner = HTMLTestRunner(stream=fp,title="测试报告",description='用例执行情况:')runner.run(discover)fp.close()new_report = new_report(test_report)send_mail(new_report)

转载于:https://www.cnblogs.com/Skyyj/p/6720814.html

Python + HTMLTestRunner + smtplib 完成测试报告生成及发送测试报告邮件相关推荐

  1. email邮件中 内嵌iframe_邮件发送,使用Python中 smtplib与email 模块实现自动发送QQ邮件...

    在 Python 的实际应用中,特别是在执行周期性定时任务的场景中,我们希望能够一种简单.方便的方式获取任务的运行结果和状态.一般我们通过支持邮件发送功能的方式,实现任务结果的反馈.本文主要介绍,如何 ...

  2. 用python监控A股股票波动并发送预警邮件_V3

    随着中国金融市场的发展,越来越多的中国人拥有了股票,特别是一些高收入的程序员和高级白领,往往都持有一定数量的股票,但是每时每刻人工盯盘还是很困难的,而且会被罚工资...... 而且随着量化交易的流行, ...

  3. python修改html的td_python3修改HTMLTestRunner,生成有截图的测试报告,并发送测试邮件(一)...

    首先思路是酱紫的.想要在测试报告后面加一列截图信息.主要的任务 获得截图 拿到截图地址和名称 在HTMLTestRunner生成的表格中多加一列 在表格中将截图地址和名称输入进对应的测试用例里 最后将 ...

  4. python修改html的td_python3修改HTMLTestRunner,生成有截图的测试报告,并发送测试邮件(二)...

    3. 如何将第一步得到的地址和名称 输入 进第二步里的表格中呢... 用上述查找元素的方法,发现HTMLTestRunner.py中REPORT_TEST_WITH_OUTPUT_TMPL是用来输出测 ...

  5. python模拟登录网易163邮箱并发送SOS邮件

    基本环境配置 1. Selenium - 建议使用低版本的Python-Selenium库,因为高版本在Chrome中不支持. pip3 install selenium==2.48.0 2. chr ...

  6. Python每天定时发送监控邮件

    不管是在信贷领域还是支付领域,作为一个风控人员,我们都需要对部署的策略模型进行监控,信贷领域可能还需要对客户的逾期表现进行监控.这时,如果我们能用python自动连接数据库,对策略.模型.贷后表现等数 ...

  7. 【转载】如何用Python发送Email邮件?

    文章目录 综述 连接SMTP服务器 登录SMTP服务器 如何获得邮箱授权码 通过SSL登录SMPT服务器 发送\抄送文本邮件 密送文本邮件 发送HTML邮件 参考 综述 用代码发送Email,在很多场 ...

  8. Selenium+python怎么搭建自动化测试框架、执行自动化测试用例、生成自动化测试报告、发送测试报告邮件

    目录 一.项目结构介绍 1.mztestpro测试项目 2.bbs目录 3.test_case 二.编写公共模块 三.编写Page Object 四.编写测试用例 五.执行测试用例 小结: 本人在网上 ...

  9. python htmltestrunner报告_python3使用HTMLTestRunner生成测试报告

    自动化测试运行完了需要直观的了解测试结果,需要用到第三方的模块HTMLTestRunner. 一:下载 HTMLTestRunner 右键点击 HTMLTestRunner.py 目标另存为pytho ...

最新文章

  1. python写入txt文件正常,但是写入csv文件中文乱码问题
  2. 使用Docker中的mysql
  3. PCA降维算法原理及代码实现(python和matlab)
  4. boost::histogram模块实现导向轴的测试程序
  5. AOP 中必须明白的概念-目标对象(Target Object)
  6. Python—实训day4—爬虫案例3:贴吧图片下载
  7. GitHub 2019年度报告,用户超4000万
  8. 接收xml参数_SpringBoot实战(二):接收xml请求
  9. Flutter PageView 使用详细概述
  10. java三步 网易_Java基础:三步学会Java Socket编程·网易学院·教程
  11. 《脱颖而出——成功网店经营之道》一2.5 后方——不可忽视的金库
  12. ros简版Action通讯SimpleAction
  13. 无法将 flash.display::BitmapData 转换为 flash.display.Bitmap
  14. oracle中存储函数,oracle中存储函数与存储过程的区别介绍
  15. wordpress不登陆后台禁用插件
  16. OFDM插入导频过程详解
  17. 威纶通定时循环操作宏_「精品详解」威纶通触摸屏宏指令应用(三)
  18. 国内智能手机市场寒风凛冽,华米OV谁更受伤?
  19. 城市公交出行管理查询系统
  20. windows企微应用双开/多开

热门文章

  1. thinkphp的控制器包含在Url中时注意区分大小写
  2. SQLAlchemy 用于 MySQL创建表时的bug修正
  3. 用OpenCV建立一幅只有几个像素且值可以自定义的图像,并输出保存到硬盘的方法
  4. OpenCV中CV_IS_MAT_CONT(src->type dst->type) 的含义
  5. linux device结构体,struct device结构体
  6. WebService大讲堂之Axis2(4):二进制文件传输
  7. leetcode算法题--全排列
  8. OVS DPDK--虚拟设备配置(六)
  9. linux内核网络协议栈--数据包的网卡缓冲区(二十四)
  10. java http连接_Java中通过方法创建一个http连接并请求(服务器间进行通信)