主要实现的目的是:自动将测试报告以邮件的形式通知相关人员

 from HTMLTestRunner import HTMLTestRunner
import HTMLTestReport
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')
filename = f.read ()
f.close ()
smtp = smtplib.SMTP ()
smtp.connect ('smtp.163.com')
sender = 'fengyiru6369@163.com'
receiver = '1194150169@qq.com'
username = 'fengyiru6369@163.com'
password = 'FYRu19200915'
smtp.login (username, password) subject = '附件为最新测试报告,望查收'
msg = MIMEText (filename, 'html', 'utf-8')
msg['Subject'] = Header("自动化测试报告",'utf-8')
msg['From'] = 'Tim<fengyiru6369@163.com>'
msg['To'] = '1194150169@qq.com'
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.getmtime (testreport + "\\" + fn))
file_new = os.path.join (testreport, lists[-1])
print (file_new)
return file_new if __name__ == "__main__":
test_dir = r'E:\python\测试报告'
test_report = r'E:\python\测试报告'
discover = unittest.defaultTestLoader.discover (test_dir, pattern='testreport1.py')
now = time.strftime ("%Y-%m-%d_%H_%M_%S")
filename1 = test_report + '\\' + now + 'result.html'
fp = open (filename1, 'wb')
# runner = HTMLTestReport.HTMLTestRunner (stream=fp, title=u"自动化测试报告", description='自动化测试演示报告', tester='fyr')
runner = HTMLTestRunner (stream=fp, title='集成测试报告', description='测试用例执行情况')
runner.run (discover)
fp.close ()
new_report = new_report (test_report)
print(new_report)
send_mail (new_report) # 发送测试包

该程序的执行过程分为三个步骤:

1.通过unittest框架的discover()找到匹配的测试用例,由HTMLTestRunner的run()方法执行测试用例并生成最新的测试报告。

2.调用new_report()函数找到测试报告目录找到测试报告目录(report)下最新的测试报告,返回测试报告的测试报告的路径。

3.将得到的最新测试报告的完整路径传给send_mail()函数,实现发送邮件功能。

Python+selenium整合自动发邮件功能的更多相关文章

  1. Selenium 2自动化测试实战38(整合自动发邮件功能)

    整合自动发邮件功能 解决了前面的问题后,现在就可以将自动发邮件功能集成到自动化测试项目中了.下面重新编辑runtest.py文件 #runtest.py #coding:utf-8 from HTML ...

  2. Selenium 2自动化测试实战37(自动发邮件功能)

    自动发邮件功能 例如,如果想在自动化脚本运行完成之后,邮箱就可以收到最新的测试报告结果.SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到 ...

  3. Nagios 配置自动发邮件功能

    安装sendmailyum install -y sendmail* mailx 修改防火墙设置,添加25端口到防火墙vi /etc/sysconfig/iptables 重启 iptables.se ...

  4. java实现后台自动发邮件功能

    web.xml文件 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLI ...

  5. 生成html报告并整合自动发动邮件功能

    from HTMLTestRunner import HTMLTestRunnerfrom email.mime.text import MIMETextfrom email.header impor ...

  6. python自动发邮件库yagmail

    #### 一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from ...

  7. python自动发邮件库yagmail(转)

    一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from email ...

  8. 【python】python 自动发邮件

    一.一般发邮件的方法 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件. 注意到构造MIMETEXT对象时,第一个参数就是邮件正文,第 ...

  9. python连接数据库自动发邮件

    python连接数据库实现自动发邮件 1.运行环境 redhat6 + python3.6 + crontab + Oracle客户端 2.用到的模块  3.操作步骤 (1)安装python3.6参考 ...

随机推荐

  1. Oracle内置函数大全(转)

    SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ...

  2. [提高班] 2017 Summer Training Day1补题

    题目地址:https://vjudge.net/contest/175939#overview A.数据范围是10^9,所以需要一个巧思路.对于一个数n,如何去判定比它的所有数是否是二进制形式.比n小 ...

  3. iView之DatePicker的datetimerange校验

    使用DatePicker的type是datetimerange时,处理开始--结束的持续时间校验如下.遇到的问题:时间弹出校验提示,但是程序还是会继续往下走,所以调完校验后,再做判断开始时间是否为tr ...

  4. css3文字与字体的相关样式

    给文字添加阴影——text-shadow属性 text-shadow属性是css2中定义的,在css2.1中删除了,在css3中恢复text-shadow:length length length c ...

  5. JS控制GridView行选择

    ASP.NET里的GridView控件使用非常广泛,虽然其功能强大,但总有一些不尽如人意的地方.比如在选择行的时候,它就没有UltraWebGrid做的友好:UltraWebGrid允许用户设置是否显 ...

  6. Debian系统下的ftp服务搭建

    安装vsftpd服务 $ sudo apt install vsftpd 配置参数 命令输入 $ vim /etc/vsftpd.conf 使用如下配置 # Example config file / ...

  7. windows和Dos常见命令总结

    linux最常见命令 (1) pwd命令pwd (即print working directory,打印工作路径) 命令的功能是显示当前的工作路径.如现在是在“/home/CAI”目录下,则可以用此命 ...

  8. cogs1583. [POJ3237]树的维护

    1583. [POJ3237]树的维护 http://www.cogs.pro/cogs/problem/problem.php?pid=1583 ★★★☆   输入文件:maintaintree.i ...

  9. MyBaties源码解析

    觉得查看源代码确实是一个学习的一种方法 因为很多时候别人把最核心的代码给我们都封装好了 我们直接可以来拿使用 很多时候自己也会问 为什么通过这个方法就可以得到我觉得就是一颗好奇心吧 我算了算 就这三个 ...

  10. 日期和时间-time时间模块

    时间的检测 #时间的检测 #导入时间模块 import time #返回当前时区与格林尼治所在时区的相差秒数(推荐) print(time.timezone) #输出结果:-28800 #返回当前时区 ...