python生成自动化测试报告并发送到指定邮箱
#-*-coding:utf-8 -*-
import HTMLTestRunner
import unittest
import time
import sys
import os
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
from login import umeiLogin
reload(sys)
sys.setdefaultencoding('utf8') def new_file(test_dir):
#列举test_dir目录下的所有文件,结果以列表形式返回。
lists=os.listdir(test_dir)
#sort按key的关键字进行排序,lambda的入参fn为lists列表的元素,获取文件的最后修改时间
#最后对lists元素,按文件修改时间大小从小到大排序。
lists.sort(key=lambda fn:os.path.getmtime(test_dir+'\\'+fn))
#获取最新文件的绝对路径
file_path=os.path.join(test_dir,lists[-1])
return file_path # 3.定义:发送邮件,发送最新测试报告html
def send_email(newfile):
# 打开文件
f = open(newfile, 'rb')
# 读取文件内容
mail_body = f.read()
# 关闭文件
f.close() # 发送邮箱服务器
smtpserver = 'smtp.163.com'
# 发送邮箱用户名/密码
user = 'XXXX@163.com'
password = 'XXXXX'
# 发送邮箱
sender = 'XXXXX@163.com'
# 多个接收邮箱,单个收件人的话,直接是receiver='XXX@163.com'
receiver = ['XXXXX@163.com']
# 发送邮件主题
subject = '自动化测试报告' msg = MIMEMultipart('mixed') msg_html1 = MIMEText(mail_body, 'html', 'utf-8')
msg.attach(msg_html1) msg_html = MIMEText(mail_body, 'html', 'utf-8')
msg_html["Content-Disposition"] = 'attachment; filename="TestReport.html"'
msg.attach(msg_html) # 要加上msg['From']这句话,否则会报554的错误。
# 要在163设置授权码(即客户端的密码),否则会报535
msg['From'] = 'XXXX@163.com'
# msg['To'] = 'XXX@doov.com.cn'
# 多个收件人
msg['To'] = ";".join(receiver)
msg['Subject'] = Header(subject, 'utf-8') # 连接发送邮件
smtp = smtplib.SMTP()
smtp.connect(smtpserver, 25)
smtp.login(user, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit() if __name__=="__main__":
print '===== Start ======'
# 1.执行测试用例,生成最新的测试用例
# 指定测试用例为当前文件夹下的test_case目录 test_dir = 'D:\\study\\TestCase'
# 指定测试报告的路径
test_report_dir = 'D:\\study\\report' # 包装测试用例
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(umeiLogin.umeiLogin)) #生成与执行时间相同的测试报告
now = time.strftime('%Y-%m-%d_%H_%M_%S_')
filename = test_report_dir + '\\' + now + 'result.html'
fp = open(filename, 'wb') runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'测试报告', description=u'用例执行情况:')
runner.run(suite)
fp.close() # 2.取最新测试报告
new_report = new_file(test_report_dir) # 3.发送邮件,发送最新测试报告html
send_email(new_report)
print '===== Over ======'
python生成自动化测试报告并发送到指定邮箱的更多相关文章
- Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE)
1.说明 自动化测试报告是一个很重要的测试数据,网上看了一下,使用HTMLTestRunner.py生成自动化测试报告使用的比较多,但是呢,小白刚刚入手,不太懂,看了很多博客,终于生成了一个测试报告, ...
- Python&Selenium&pytest借助allure生成自动化测试报告
一.摘要 本篇博文将介绍Python和Selenium进行自动化测试时,如何借助allure生成自动化测试报告 二.环境配置 首先python环境中安装pytest和pytest_allure_ada ...
- Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告2(使用PyCharm )
1.说明 在我前一篇文件(Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE ))中简单的写明了,如何生产测试报告,但是使用IDLE很麻烦, ...
- Python&Selenium借助HTMLTestRunner生成自动化测试报告
一.摘要 本篇博文介绍Python和Selenium进行自动化测试时,借助著名的HTMLTestRunner生成自动化测试报告 HTMLTestRunner.py百度很多,版本也很多,自行搜索下载放到 ...
- Python&Selenium借助html-testRunner生成自动化测试报告
一.摘要 本博文将介绍Python和Selenium进行自动化测试时,借助html-testRunner 生成自动化测试报告 安装命令:pip install html-testRunner 二.测试 ...
- 使用cmd查看电脑连接过的wifi密码并将密码发送至指定邮箱(三)
之前,我写了使用cmd查看电脑连接过的wifi密码(二)和使用cmd查看电脑连接过的wifi密码(一)但其中的功能不完善,在本次的更新中新增了更多的功能,其实2018/10/24 就更新完成了,一直拖 ...
- iPhone上将短信内容发送到指定邮箱的方法
iPhone上将短信内容发送到指定邮箱的方法 迄今为止,移动应用安全基本聚焦在以下几个方面,一是移动设备管理BYOD(bring your own device),二是移动恶意软件分析,三是移动设备用 ...
- 屏幕监视专家 v1.0 定时录制屏幕动画发送到指定邮箱
ScreenWatcher v1.0功能:定时录制屏幕动画发送到指定邮箱,录制的动画为gif,可指定录制多长时间.指定几点直接开始录制,完全后台运行.作者:Bluefish 下载链接: http:// ...
- PHP自学4——通过mail函数将feedback界面用户填写表单信息发送至指定邮箱
这一讲的内容依旧简单(谁叫PO主水平菜,依旧是个弱鸡ORZ),通过PHP的内置mail函数将一个反馈界面的信息发送到指定邮箱.在Windows平台不能直接需要使用该函数,需要下载一个sendmail并 ...
- python实现树莓派开机自动发送IP到指定邮箱
#!/usr/bin/python # -*- coding:UTF-8 -*- #测试发送邮件163邮箱发送到qq邮箱 import smtplib from email.mime.text imp ...
随机推荐
- Oracle:ORA-00911: invalid character解决办法
问题记录:用jmeter执行sql语句,报错:ORA-00911: invalid character. 解决方法:sql语句末尾";"导致,去掉即可解决. 过程记录: 使用jme ...
- jQuery漏洞复现整理
jQuery DOM-based XSS 免责声明: 本文章仅供学习和研究使用,严禁使用该文章内容对互联网其他应用进行非法操作,若将其用于非法目的,所造成的后果由您自行承担,产生的一切风险与本文作者无 ...
- vue引用MarkDown(mavonEditor)编辑器,文档
mavonEditor Install mavon-editor (安装) npm install mavon-editor --save 如何引入: 全局引用: // 全局注册 import Vue ...
- vulnhub靶场之DEATHNOTE: 1
准备: 攻击机:虚拟机kali.本机win10. 靶机:DEATHNOTE: 1,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub.com ...
- golang基础语法学习
1.函数作为一等公民 2.驼峰命名法/大小写决定是否在包外见 3.包名应该是小写的单个单词命名 4. 包名应为其源码的基础名称,如encoding/base64,包名应为base64而不是encodi ...
- 深度学习之深L层神经网络
声明 本文参考(8条消息) [中文][吴恩达课后编程作业]Course 1 - 神经网络和深度学习 - 第四周作业(1&2)_何宽的博客-CSDN博客 力求自己理解,刚刚走进深度学习希望可以一 ...
- Windows之应用安装程序 —— winget
大家都用过Linux中的应用程序安装工具,如yum.apt.rpm等工具进行安装自己想要的一些工具或则软件之类的,当然Linux操作系统还是很强大的有很多类似的命令来安装我们所需要的程序,但是wind ...
- linux驱动移植
1.1 开发前准备 1.1.1 Linux 驱动(面向对象) 1).Linux 驱动框架 思想:写驱动的时候,只提供操作硬件设备的函数接口 文件存放磁盘: open ,read ,write ,clo ...
- .NET 6 实现滑动验证码(二)、基本数据
上一节,介绍了滑动验证码的基本情况,也创建了一个.NET 6的工程.本节内容是创建一些基础类. 目录 CaptchaData.cs CaptchaValidateData.cs ImageCaptch ...
- elasticsearch 聚合之 date_histogram 聚合
目录 1.背景 2.bucket_key如何计算 3.前置知识 4.日历和固定时间间隔 4.1 Calendar intervals 日历间隔 4.2 Fixed intervals 固定间隔 5.数 ...