Python查找最新测试报告到邮件功能
#coding=utf-8
import smtplib from email.mime.text
import MIMEText import unittest
import HTMLTestRunner import time,os
#=============定义发送邮件==========
def send_mail(file_new):
#发信邮箱
mail_from='testingwtb@126.com'
#收信邮箱
mail_to='xiaoming@126.com'
#定义正文
f = open(file_new, 'rb')
mail_body = f.read()
f.close()
msg=MIMEText(mail_body,_subtype='html',_charset='utf-8')
#定义标题
msg['Subject']=u"自动化测试报告"
#定义发送时间(不定义的可能有的邮件客户端会不显示发送时间)
msg['date']=time.strftime('%a, %d %b %Y %H:%M:%S %z') smtp=smtplib.SMTP()
#连接SMTP服务器,此处用的126的SMTP服务器
smtp.connect('smtp.126.com')
#用户名密码
smtp.login('testingwtb@126.com','123456')
smtp.sendmail(mail_from,mail_to,msg.as_string())
smtp.quit()
print 'email has send out !'
#======查找测试报告目录,找到最新生成的测试报告文件====
def send_report(testreport):
result_dir = testreport lists=os.listdir(result_dir)
lists.sort(key=lambda fn: os.path.getmtime(result_dir+"\\"+fn))
#print (u'最新测试生成的报告: '+lists[-1])
#找到最新生成的文件
file_new = os.path.join(result_dir,lists[-1])
print file_new
#调用发邮件模块
send_mail(file_new)
#================将用例添加到测试套件===========
def creatsuite(): testunit=unittest.TestSuite()
#定义测试文件查找的目录
test_dir='.\\test_case'
#定义discover方法的参数
discover=unittest.defaultTestLoader.discover(test_dir,pattern ='test*.py',top_level_dir=None)
#discover方法筛选出来的用例,循环添加到测试套件中
for test_case in discover:
print test_case testunit.addTests(test_case)
return testunit
if __name__ == '__main__':
now = time.strftime("%Y-%m-%d %H_%M_%S")
testreport = 'E:\\test_object\\report\\'
filename = testreport+now+'result.html'
fp = file(filename, 'wb')
runner =HTMLTestRunner.HTMLTestRunner( stream=fp, title=u'自动化测试报告', description=u'用例执行情况:')
alltestnames = creatsuite()
runner.run(alltestnames)
fp.close() #关闭生成的报告
send_report(testreport) #发送报告
Python查找最新测试报告到邮件功能的更多相关文章
- Python+selenium整合自动发邮件功能
主要实现的目的是:自动将测试报告以邮件的形式通知相关人员 from HTMLTestRunner import HTMLTestRunner import HTMLTestReport from em ...
- Python 实现发送、抄送邮件功能
发送邮件 问题 在web.py中,如何发送邮件? 解法 在web.py中使用web.sendmail()发送邮件. web.sendmail('cookbook@webpy.org', 'user@e ...
- python接口自动化(二十九)--html测试报告通过邮件发出去——上(详解)
简介 前边几篇,已经教小伙伴们掌握了如何生成HTML的测试报告,那么生成测试报告,我们也不能放在那里不管了,这样即使你报告在漂亮,领导也看不到.因此如果想向领导汇报工作,不仅需要提供更直观的测试报告. ...
- 最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写 ...
- (转载)最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写 ...
- python接口自动化(三十)--html测试报告通过邮件发出去——中(详解)
简介 上一篇,我们虽然已经将生成的最新的测试报告发出去了,但是MIMEText 只能发送正文,无法带附件,因此我还需要继续改造我们的代码,实现可以发送带有附件的邮件.发送带附件的需要导入另外一个模块 ...
- Selenium 2自动化测试实战37(自动发邮件功能)
自动发邮件功能 例如,如果想在自动化脚本运行完成之后,邮箱就可以收到最新的测试报告结果.SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到 ...
- Python+unittest发送测试报告
案例:将E:\Python_script\unittest\Test_Baidu生成的最新测试报告发送到指定邮箱. 我们将之前的unittest的报告生成和Python自动发送邮件结合在一起,就可以完 ...
- Selenium 2自动化测试实战38(整合自动发邮件功能)
整合自动发邮件功能 解决了前面的问题后,现在就可以将自动发邮件功能集成到自动化测试项目中了.下面重新编辑runtest.py文件 #runtest.py #coding:utf-8 from HTML ...
随机推荐
- 2017ICPC南宁 M题 The Maximum Unreachable Node Set【二分图】
题意: 找出不能相互访问的点集的集合的元素数量. 思路: 偏序集最长反链裸题. 代码: #include<iostream> #include<cstring> using n ...
- linux find 只获取文件名而去除路径
find /var/process_log/ -name '*.log' -exec basename {} \;
- AMD/CMD/CommonJs到底是什么?它们有什么区别?
知识点1:AMD/CMD/CommonJs是JS模块化开发的标准,目前对应的实现是RequireJs/SeaJs/nodeJs. 知识点2:CommonJs主要针对服务端,AMD/CMD主要针对浏 ...
- day 11 - 1 装饰器
装饰器 装饰器形成的过程:最简单的装饰器——有返回值的——有一个参数——万能参数装饰器的作用:不想修改函数的调用方式 但是还想在原来的函数前后添加功能原则:开放封闭原则语法糖:@装饰器函数名装饰器的固 ...
- Mybatis(二)入门程序-通过id查找用户、模糊查找用户、添加用户、删除用户
根据下图myBatis的架构,创建一个使用MyBatis的工程. 一.配置MyBatis 环境(如图) 1.sqlMapConfig.xml 首先,导入jar包(上图右边)并加载路径,然后 ...
- ClassNotFoundException和NoClassDeFoundError
ClassNotFoundException:反射时(类加载时)类名写错了(属于可捕获的异常) NoClassDeFoundError:编译时依赖的类(jar包)在运行环境机器中不存在(属于无法处理的 ...
- RabbitMQ简单应用の简单队列
(1)首先创建一个maven项目: pom.xml,重点是配置RabbitMQ <dependencies> <dependency> <groupId>junit ...
- Eclipse同时显示两个编辑窗口
同时打开两个编辑窗口,点住一个窗口,拖到编辑窗口的最下面时或者最右面,会出现两个两个编辑窗口的轮廓,松开即可!
- [机器学习] k近邻算法
算是机器学习中最简单的算法了,顾名思义是看k个近邻的类别,测试点的类别判断为k近邻里某一类点最多的,少数服从多数,要点摘录: 1. 关键参数:k值 && 距离计算方式 &&am ...
- 【SVN】SVN初识
SVN 介绍 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Sub ...