整合自动发邮件功能

解决了前面的问题后,现在就可以将自动发邮件功能集成到自动化测试项目中了。下面重新编辑runtest.py文件

#runtest.py

#coding:utf-8
from HTMLTestRunner import HTMLTestRunner
from email.mime.text import MIMEText
from email.header import Header
import smtplib
import unittest,time,os #===================定义发送邮件======================
def send_mail(file_new):
f=open(file_new,'rb')
mail_body=f.read()
f.close() msg=MIMEText(mail_body,'html','utf-8')
msg['subject']=Header(u"自动化测试报告",'utf-8')
msg['from']='xxxxxx@sina.com'
msg['to']='xxxxxx@qq.com' smtp=smtplib.SMTP()
smtp.connect("smtp.sina.com")
smtp.login("xxxxx","xxxxxxx")
smtp.sendmail("xxxxxxx@sina.com","xxxxxxxx@qq.com",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='F:\\study\\web_demo1\\test_case'
test_report='F:\\study\\web_demo1\\report' discover=unittest.defaultTestLoader.discover(test_dir,pattern='test_*.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=u"测试报告",description=u"用例执行情况:")
runner.run(discover)
fp.close() newreport=new_report(test_report)
send_mail(newreport)#发送测试报告

  

执行后,结果如下图所示:

分析如下:
1.通过unittest框架的discover()找到匹配测试用例,由HTMLTestRunner的run()方法执行测试用例并生成最新的测试报告。
2.调用new_report()函数找到测试报告目录(report)下最新生成的测试报告,返回测试报告的路径。
3.将得到的最新测试报告的完整路径传给send_mail()函数,实现发邮件功能。

Selenium 2自动化测试实战38(整合自动发邮件功能)的更多相关文章

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

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

  2. Python+selenium整合自动发邮件功能

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

  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. Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记

    背景 最近在弄 appium,然后顺便发现了 Selenium 框架和这本书,恰好这本书也介绍了一些软件测试&自动化测试的理论知识,遂拿过来学习学习.所以本文几乎没有实践内容,大多都是概念和工 ...

  7. Selenium 2自动化测试实战39(Page Object设计模式)

    Page Object设计模式 Page object是selenium自动化测试项目开发时间的最佳设计模式之一,主要体现在对界面交互细节的封装. 1.认识page object优点如下:1.减少代码 ...

  8. python自动发邮件库yagmail

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

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

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

随机推荐

  1. linux中公钥和私钥的区别以及关系

    导读 在学习ssh章节时,一定有不少人对公钥和私钥产生过不解.在搜索公钥跟私钥的理解时,发现了这篇有趣的图解小文章,与大家共享. 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给 ...

  2. Pycharm中查看内置函数的源码

    方法1.鼠标放在函数上,Ctrl+B,看源码 方法2.将光标移动至要查看的方法处,按住ctrl 键,点击鼠标左键,即可查看该方法的源码.

  3. centos openjdk

    centos openjdk centos openjdk centos openjdk 切换 java jdk

  4. golang restful api

    https://medium.com/@petrousov/how-to-build-a-restful-api-in-go-for-phonebook-app-d55f7234a10 ------- ...

  5. Angular Multiple HTTP Requests with RxJS

    原文:https://coryrylan.com/blog/angular-multiple-http-requests-with-rxjs ----------------------------- ...

  6. HashMap源码分析二

    jdk1.2中HashMap的源码和jdk1.3中HashMap的源码基本上没变.在上篇中,我纠结的那个11和101的问题,在这边中找到答案了.   jdk1.2   public HashMap() ...

  7. ORM高阶补充:only, defer,select_related

    Queryset官方文档:https://docs.djangoproject.com/en/1.11/ref/models/querysets/ 1.需求1:只取某n列 1.方法1:values 2 ...

  8. 题解 [BZOJ1295][SCOI2009] 最长距离

    题面 解析 \(n\)只有\(30\)可以直接枚举每个矩形, 判断他们的左上角到右下角或右上角到左上角的最短路是否小于\(T\). 最短路可以用\(dijkstra\). 一开始想用\(DP\)写最短 ...

  9. Python2.x与3​​.x版本区别Ⅲ

    八进制字面量表示 八进制数必须写成0o777,原来的形式0777不能用了:二进制必须写成0b111. 新增了一个bin()函数用于将一个整https://www.xuanhe.net/数转换成二进制字 ...

  10. CSS 图片自适应容器

    https://www.jb51.net/css/660677.html 经常有这样一个场景,需要让图片自适应容器的大小. 1.img标签的方式 我们马上就能想到,把width.height 设置为1 ...