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 ...
随机推荐
- LoadRunner11使用代理录制脚本
一.背景 电脑安装了LoadRunner11,在进行脚本录制时发现录制的脚本为空,即录制时事件为0,也没有自动调出对应的浏览器:如下图: 问了度娘,发现LR11要成功录制脚本,对各浏览器的版本有要求! ...
- BERT模型源码解析
BERT模型源码解析 modeling.py 目录 属性 类 class BertConfig(object) BERT模型配置参数类 class BertModel(object) BERT ...
- 【实操日记】使用 PyQt5 设计下载远程服务器日志文件程序
最近通过 PyQt5 设计了一个下载服务器指定日期日志文件的程序,里面有些有意思的技术点,现在做一些分享. PyQt5 是一套 Python 绑定 Digia Qt5 应用的框架,是最强大的 GUI ...
- Git 分支管理策略汇总
原文链接: Git 分支管理策略 最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码? 我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的 ...
- 2022-11-10 Acwing每日一题
本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的.同时也希望 ...
- 2022春每日一题:Day 41
题目:I Hate It 一个基础的线段树模板,单点修改+区间查询 代码: #include <cstdio> #include <cstdlib> #include < ...
- 【第6篇】AI语音测试简介
1.4 AI语音测试简介 AI语音测试是针对人工智能语音交互的测试,人工智能语音交互一般包含语音识别技术(ASR).自然语言处理技术(NLP)和语音合成技术(TTS)等3大部分,通俗地来讲AI语音测试 ...
- 【Spark】Day01-入门、模块组成、4种运行模式详解及配置、案例实操(spark分析过程)
一.概述 1.概念 基于内存的大数据分析计算引擎 2.特点 快速.通用.可融合性 3.Spark内置模块[腾讯8000台spark集群] Spark运行在集群管理器(Cluster Manager)上 ...
- Python数据类型+运算符
Python基础数据类型 上期练习讲解 # 练习一.想办法打印出jason l1 = [11, 22, 'kevin', ['tony', 'jerry', [123, 456, 'jason'] ] ...
- day36-ThreadLocal
ThreadLocal 线程数据共享和安全 1.什么是ThreadLocal? ThreadLocal的作用,可以实现在同一个线程数据共享,从而解决多线程数据安全问题 当http请求发送到Tomcat ...