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

  1. from HTMLTestRunner import HTMLTestRunner
  2. import HTMLTestReport
  3. from email.mime.text import MIMEText
  4. from email.header import Header
  5. import smtplib
  6. import unittest
  7. import time
  8. import os
  9.  
  10. # ******************定义发送邮件******************
  11. def send_mail(file_new):
  12. f = open (file_new, 'rb')
  13. filename = f.read ()
  14. f.close ()
  15. smtp = smtplib.SMTP ()
  16. smtp.connect ('smtp.163.com')
  17. sender = 'fengyiru6369@163.com'
  18. receiver = '1194150169@qq.com'
  19. username = 'fengyiru6369@163.com'
  20. password = 'FYRu19200915'
  21. smtp.login (username, password)
  22.  
  23. subject = '附件为最新测试报告,望查收'
  24. msg = MIMEText (filename, 'html', 'utf-8')
  25. msg['Subject'] = Header("自动化测试报告",'utf-8')
  26. msg['From'] = 'Tim<fengyiru6369@163.com>'
  27. msg['To'] = '1194150169@qq.com'
  28. smtp.sendmail (sender, receiver, msg.as_string ())
  29. smtp.quit ()
  30.  
  31. print ('email has send out!')
  32.  
  33. # ===========================查找测试报告目录,找到最新的测试报告文件 ===========================
  34. def new_report(testreport):
  35. lists = os.listdir (testreport)
  36. lists.sort (key=lambda fn: os.path.getmtime (testreport + "\\" + fn))
  37. file_new = os.path.join (testreport, lists[-1])
  38. print (file_new)
  39. return file_new
  40.  
  41. if __name__ == "__main__":
  42. test_dir = r'E:\python\测试报告'
  43. test_report = r'E:\python\测试报告'
  44. discover = unittest.defaultTestLoader.discover (test_dir, pattern='testreport1.py')
  45. now = time.strftime ("%Y-%m-%d_%H_%M_%S")
  46. filename1 = test_report + '\\' + now + 'result.html'
  47. fp = open (filename1, 'wb')
  48. # runner = HTMLTestReport.HTMLTestRunner (stream=fp, title=u"自动化测试报告", description='自动化测试演示报告', tester='fyr')
  49. runner = HTMLTestRunner (stream=fp, title='集成测试报告', description='测试用例执行情况')
  50. runner.run (discover)
  51. fp.close ()
  52. new_report = new_report (test_report)
  53. print(new_report)
  54. 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. 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 ...

  2. [codeforces274b]Zero Tree(树形dp)

    题意:给出一棵树,每个点有权值,每次操作可以对一个联通子集中的点全部加1,或者全部减1,且每次操作必须包含点1,问最少通过多少次操作可以让整棵树每个点的权值变为0. 解题关键:自底向上dp,记录up, ...

  3. struts2的method=&quot;{1}&quot;

    这里的{1}表示接收前面action里通过通配符传来的值,例如你配置的是 ,然后调用***/editCrud.action,则method里获得的值是edit,将会调用这个action里面的 edit ...

  4. 《精通Spring4.X企业应用开发实战》读后感第三章

  5. windows如何定时关闭一个程序

    方法一其实系统本身有这项功能的,打开记事本,将以下内容保存为.bat文件(将下面cmd.exe的名字改成你的音乐播放软件的exe名)@echo offTASKKILL /F /IM cmd.exe / ...

  6. codevs1553 互斥的数

    1553 互斥的数    

  7. 两数相加LeetCode

    给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和 ...

  8. java 性能调优和GC

    JAVA 性能调优和GC http://blog.csdn.net/gzh0222/article/details/7663181 JAVA GC调优手记 http://blog.csdn.net/f ...

  9. Linux基本系统优化

    Linux基本系统优化  Linux Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令, 在配置服务器基础环境时,先了解下网络参数设定命令. ifconfig 查询.设置网卡和ip等参 ...

  10. 072 Edit Distance 编辑距离

    给出两个单词 word1 和 word2,找出将 word1 转换成 word2 所使用的最少的步骤数 (每个操作记为一步).你可以对一个单词进行以下三种操作:a) 插入一个字符b) 删除一个字符c) ...