Python+selenium整合自动发邮件功能
主要实现的目的是:自动将测试报告以邮件的形式通知相关人员
- 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整合自动发邮件功能的更多相关文章
- Selenium 2自动化测试实战38(整合自动发邮件功能)
整合自动发邮件功能 解决了前面的问题后,现在就可以将自动发邮件功能集成到自动化测试项目中了.下面重新编辑runtest.py文件 #runtest.py #coding:utf-8 from HTML ...
- 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 ...
- 生成html报告并整合自动发动邮件功能
from HTMLTestRunner import HTMLTestRunnerfrom email.mime.text import MIMETextfrom email.header impor ...
- 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对象时,第一个参数就是邮件正文,第 ...
- python连接数据库自动发邮件
python连接数据库实现自动发邮件 1.运行环境 redhat6 + python3.6 + crontab + Oracle客户端 2.用到的模块 3.操作步骤 (1)安装python3.6参考 ...
随机推荐
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)
2017-03-16 11:23:29.601 1238 ERROR nova.compute.manager [instance: 3f195047-250a-4eb5-8da0-63bea6e26 ...
- [codeforces274b]Zero Tree(树形dp)
题意:给出一棵树,每个点有权值,每次操作可以对一个联通子集中的点全部加1,或者全部减1,且每次操作必须包含点1,问最少通过多少次操作可以让整棵树每个点的权值变为0. 解题关键:自底向上dp,记录up, ...
- struts2的method="{1}"
这里的{1}表示接收前面action里通过通配符传来的值,例如你配置的是 ,然后调用***/editCrud.action,则method里获得的值是edit,将会调用这个action里面的 edit ...
- 《精通Spring4.X企业应用开发实战》读后感第三章
- windows如何定时关闭一个程序
方法一其实系统本身有这项功能的,打开记事本,将以下内容保存为.bat文件(将下面cmd.exe的名字改成你的音乐播放软件的exe名)@echo offTASKKILL /F /IM cmd.exe / ...
- codevs1553 互斥的数
1553 互斥的数
- 两数相加LeetCode
给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和 ...
- java 性能调优和GC
JAVA 性能调优和GC http://blog.csdn.net/gzh0222/article/details/7663181 JAVA GC调优手记 http://blog.csdn.net/f ...
- Linux基本系统优化
Linux基本系统优化 Linux Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令, 在配置服务器基础环境时,先了解下网络参数设定命令. ifconfig 查询.设置网卡和ip等参 ...
- 072 Edit Distance 编辑距离
给出两个单词 word1 和 word2,找出将 word1 转换成 word2 所使用的最少的步骤数 (每个操作记为一步).你可以对一个单词进行以下三种操作:a) 插入一个字符b) 删除一个字符c) ...