生成html报告并整合自动发动邮件功能
from HTMLTestRunner import HTMLTestRunner
from email.mime.text import MIMEText
from email.header import Header
import smtplib
import unittest
import time
import os
#---------定义发送邮件--------------#
def send_mail(file_new):
f = open(file_new,'rb')
mail_body = f.read()
f.close()
# 发送邮箱服务器
smtpserver = 'smtp.163.com'
# 发送邮箱用户/密码
user = 'dashu10_0@163.com'
password = 'ren313123'
# 发送邮箱
sender = 'dashu10_0@163.com'
# 接收邮箱
receiver = '568330959@qq.com','dehom_123@163.com'
#receiver = 'dehom_123@163.com'
# msg = MIMEText(mail_body, 'html', 'utf-8')
msg = MIMEText(mail_body, _subtype = 'html', _charset = 'utf-8')
# 发送邮件主题
subject = '自动化测试报告'
msg['from'] = sender
msg['to'] = ','.join(receiver)
# 编写HTML类型的邮件正文
msg['Subject'] = Header(subject, 'utf-8')
# 连接发送邮件
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(user, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
print('email has send out!')
# ------------查找测试报告目录,找到最新生成的测试报告文件
def new_report(testreport):
lists = os.listdir(testreport)
lists.sort(key=lambda fn:os.path.getatime(testreport + "\\" + fn))
file_new = os.path.join(testreport,lists[-1])
print(file_new)
return file_new
if __name__ == '__main__':
#.py文件包的位置
test_dir = 'C:\\Users\\dingce\\PycharmProjects\\untitled2\\ecshopPackage'
#HTML报告的位置
test_report = 'E:\\'
#运行指定py文件s生成以下的报告
discover = unittest.defaultTestLoader.discover(test_dir,pattern='suiyi*.py')
#时间
now = time.strftime("%Y-%m-%d_%H_%M_%S")
filename = test_report + '\\' + now + 'result.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) #发送测试报告
#整个程序的执行过程可以分为三个步骤
#1.通过unittest框架的discover()找到匹配测试用例,由HTMLTestRunner的run()方法执行测试用例并生成最新的测试报告
#2.调用new_report()函数找到测试报告目录(E盘)下最新生成的测试报告,返回测试报告的路径
生成html报告并整合自动发动邮件功能的更多相关文章
- Selenium 2自动化测试实战38(整合自动发邮件功能)
整合自动发邮件功能 解决了前面的问题后,现在就可以将自动发邮件功能集成到自动化测试项目中了.下面重新编辑runtest.py文件 #runtest.py #coding:utf-8 from HTML ...
- Python+selenium整合自动发邮件功能
主要实现的目的是:自动将测试报告以邮件的形式通知相关人员 from HTMLTestRunner import HTMLTestRunner import HTMLTestReport from em ...
- Selenium 2自动化测试实战37(自动发邮件功能)
自动发邮件功能 例如,如果想在自动化脚本运行完成之后,邮箱就可以收到最新的测试报告结果.SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到 ...
- Nagios 配置自动发邮件功能
安装sendmailyum install -y sendmail* mailx 修改防火墙设置,添加25端口到防火墙vi /etc/sysconfig/iptables 重启 iptables.se ...
- java实现后台自动发邮件功能
web.xml文件 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLI ...
- python自动发邮件库yagmail
#### 一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from ...
- python自动发邮件库yagmail(转)
一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from email ...
- 【python】python 自动发邮件
一.一般发邮件的方法 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件. 注意到构造MIMETEXT对象时,第一个参数就是邮件正文,第 ...
- 关于TD邮件功能不能发到认证邮箱的解决之法
[原创] 关于TD邮件功能不能发到认证邮箱的解决之法 认证邮箱, 邮件服务器, 用户, 邮件系统 鉴于不少同行询问TD发邮件的问题,今天重新更新一下说明 解决问题的原则如下一.在TD服务器上安装一个邮 ...
随机推荐
- 用docker部署flask+gunicorn+nginx
说来惭愧,写了好几个flask django项目都是在原型阶段直接python app.py 运行的,涉及到部署用nginx和gunicorn 都是让别人帮我部署的,据说好像说很麻烦的样子,我就没自己 ...
- RabbitMQ入门_12_发布方确认
参考资料:https://www.rabbitmq.com/confirms.html 通过 ack 机制,我们可以确保队列中的消息一定能被消费到.那我们有办法保证消息发布方一定把消息发送到队列了吗? ...
- React生命周期钩子
最近的工作都很忙,所以很少完整的时间可以用来总结和回顾知识点,今天就趁着是周末,我准备在这里复习和回顾一下React的基础.工作中主要用的vue比较多,在工作中使用React也已经是一年前了,当时用的 ...
- 3-30 flash(api),rescue_from(); logger简介
ActionDispatch::Flash < Objec pass temporary primitive-types (String, Array, Hash) between action ...
- Memory and Casinos CodeForces - 712E (概率,线段树)
题目链接 题目大意:$n$个点, 每个点$i$有成功率$p_i$, 若成功走到$i+1$, 否则走到走到$i-1$, 多组询问, 求从$l$出发, 在$l$处不失败, 最后在$r$处胜利的概率 设$L ...
- EBS标准的查看供应商地点
VO数据源:oracle.apps.pos.supplier.server.SitesVO SELECT pvsa.address_style, hzl.language, pvsa.province ...
- OC MRC之计数器的基本操作(代码分析)
/* 1.方法的基本使用 1> retain :计数器+1,会返回对象本身 2> release :计数器-1,没有返回值 3> retainCount :获取当前的计数器 4> ...
- $digest already in progress 解决办法——续
什么时候手动调用$apply()方法? 如果AngularJS总是将我们的代码wrap到一个function中并传入$apply(),以此来开始一轮$digest循环,那么什么时候才需要我们手动地调用 ...
- jsp jsp属性范围
jsp提供了4中属性分别是 当前页:一个属性只能在一个页面中取得,跳转淘其他页面无法取得. 一次服务器请求:一个页面中设置的属性,只要经过了服务跳转,而跳转之后的页面可以继续取得 一次回话:一个用户设 ...
- ajax 函数的相关介绍
函数serialize serialize() 是jquery对象的一个方法,其作用是将对象的包含的值序列化为一个字符串,常用在get请求中. exp: $('#formname').serializ ...