一、生成HTML测试报告

1、下载HTMLTestRunner

地址:http://tungwaiyip.info/software/HTMLTestRunner.html

保存在Python\Lib目录下

修改它使其支持python3

# 第94行
import datetime
import io
import sys# 第539行
TestResult.startTest(self, test)
# just one buffer for both stdout and stderr
self.outputBuffer = io.StringIO()
stdout_redirector.fp = self.outputBuffer# 第631行
self.generateReport(test, result)
print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))
return result# 第642行
for n,t,o,e in result_list:cls = t.__class__if not cls in rmap:rmap[cls] = []# 第766行
# uo = unicode(o.encode('string_escape'))uo = e# 第772行
# ue = unicode(e.encode('string_escape'))ue = e

2、生成测试报告

# 使用HTMLTestRunner生成测试报告
# 扩展测试用例:calculator文件,增加了sub方法
from calculator import Count
import unittest
from HTMLTestRunner import HTMLTestRunner
import timeclass TestAdd(unittest.TestCase):# doc string类型注释,调用时不显示,可通过help(TestAdd)方法查看# HTMLTestRunner可以读取到'''加法测试'''def setUp(self):print('test add start')def add1(self):'''加法测试第一个'''j = Count(2, 3)self.assertEqual(j.add(), 5)def add2(self):j = Count(1, 2)self.assertEqual(j.add(), 3)def tearDown(self):print('add end')class TestSub(unittest.TestCase):def setUp(self):print('test sub start')def test_sub1(self):j = Count(3, 2)self.assertEqual(j.sub(), 1)def test_sub2(self):j = Count(4, 2)self.assertEqual(j.sub(), 2)def tearDown(self):print('test sub end')if __name__ == '__main__':# 测试用例执行的顺序,为添加套件的顺序,# unittest.main()是以ASCII码的顺序suite = unittest.TestSuite()suite.addTest(TestAdd('add1'))suite.addTest(TestAdd('add2'))suite.addTest(TestSub('test_sub1'))suite.addTest(TestSub('test_sub2'))# 按照一定格式获取时间now = time.strftime("%Y-%m-%d %H-%M-%S")# 定义报告存放路径filename = './' + now + 'result.html'# 定义报告存放路径,如果没有,创建fp = open(filename, 'wb')# 定义测试报告runner = HTMLTestRunner(stream=fp,    # 指定测试报告文件title='我是测试标题', description="我是描述:== 副标题")# 运行测试用例runner.run(suite)# 关闭报告文件fp.close()

二、自动发邮件

# 发邮件
# 负责发送邮件
import smtplib
# 负责构造邮件的正文
from email.mime.text import MIMEText
# 负责邮件的标题
from email.header import Header# 发送邮箱的服务器
smtpserver = 'smtp.163.com'
# 发送邮箱用户、授权密码非登录密码
user = 'xxx@163.com'
password = 'xxxx'# 发送的邮箱
sender = 'xxx@163.com'
# 接受的邮箱
receiver = 'xxx@qq.com'# 发送邮件主题,不能有test,否则会发不出去
subject = '我就来试一下'# 编写HTML类型的邮件正文
msg = MIMEText('<html><h1>你好!</h1></html>', 'html', 'utf-8')
# 主题,固定属性
msg['Subject'] = Header(subject, 'utf-8')
# 谁发的
msg['from'] = 'xueer<xxx@163.com>'
# 发给谁
msg['to'] = 'xxx@qq.com'# 连接发送邮件
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(user, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()

三、发送带附件的邮件

# 发送附件
# 负责发送邮件
import smtplib
# 负责构造邮件的正文
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart# 发送邮箱的服务器
smtpserver = 'smtp.163.com'
# 发送邮箱用户、授权密码非登录密码
user = 'xxx@163.com'
password = 'xxx'# 发送的邮箱
sender = 'xxxx@163.com'
# 接受的邮箱
receiver = 'xxx@qq.com'# 发送邮件主题
subject = '我就来试一下'# 发送的附件
sendfile = open('E:\\workspace\\selenium\\unit_test\\log.txt', 'rb').read()att = MIMEText(sendfile, 'base64', 'utf-8')
att['Content-Type'] = 'application/octet-stream'
att['Content-Disposition'] = 'attachment; filename="log.txt"'msgRoot = MIMEMultipart('related')msgRoot['Subject'] = subject
msgRoot['from'] = 'xueer<xxx@163.com>'
# 发给谁
msgRoot['to'] = 'xxx@qq.com'
msgRoot.attach(att)smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(user, password)
smtp.sendmail(sender, receiver, msgRoot.as_string())
smtp.quit()

四、查找最新的测试报告

# 查找最新的测试报告
import os# 定义文件目录
result_dir = 'E:\\workspace\\Python37\\www\\selenium\\unit_test\\report'
# 列出所有的目录和文件
lists = os.listdir(result_dir)
# 重新按照时间排序
lists.sort(key = lambda x: os.path.getmtime(result_dir+'\\'+x))print(('最新的文件为:' + lists[-1]))
file = os.path.join(result_dir, lists[-1])
print(file)

自动化测试生成HTML测试报告和自动发邮件相关推荐

  1. python脚本自动发邮件功能

    最近给项目加监控,用python写了一个脚本,在出错的时候自动发邮件通知的功能.代码如下 #! /usr/bin/python # -*- coding: utf-8 -*- from smtplib ...

  2. java发邮件_使用MATLAB自动发邮件

    MATLAB作为工程师的得力助手,常被我们誉为万能助手."MATLAB啥都能做,除了生孩子"这种话语常挂在我们嘴边.今天小编就偷偷告诉大家一个使用MATLAB自动发邮件的方法. 在 ...

  3. Linux中使用Msmtp+mutt+shell自动发邮件程序安装说明

    Linux中使用Msmtp+mutt+shell自动发邮件程序安装说明 ------by liyoujia 环境: 需要用到mutt 和 msmtp 这两款软件 Mutt:linux初始化安装的时候自 ...

  4. C++实现自动发邮件代码,这个是用网易邮箱的。

    C++实现自动发邮件代码,指导教师发邮件绿叶衬托着花儿,晶莹的露珠在绿草上,我的目光来到了草地,江上耸立着一座有四十几年历史的嘉陵江大桥,她笑着答应了,刘老师家乡的发邮件嘉陵江大桥我的家乡在南充,这不 ...

  5. python qq群自动加入_Python实现向QQ群成员自动发邮件的方法

    本文实例讲述了Python实现向QQ群成员自动发邮件的方法.分享给大家供大家参考.具体实现方法如下: 原理: 我们需要先获取QQ群中的所有成员并保存到一个txt文本中去,然后再由python读取文件然 ...

  6. 发邮件窗体【支持编辑邮件模板,使用wse多线程上传附件及发邮件(带附件)】以及在服务器端自动发邮件...

    这是前段时间做的一个邮件客户端,支持自定义模板(模板是内置的,固定好了)           其中配置模板的xml <?xml version="1.0" encoding= ...

  7. ASP实现自动发邮件

    ASP实现自动发邮件代码: 摘录一:  <%@LANGUAGE="VBSCRIPT" %> <% email="www@www.com" tx ...

  8. python自动发送qq群消息_Python实现向QQ群成员自动发邮件的方法

    本文实例讲述了Python实现向QQ群成员自动发邮件的方法.分享给大家供大家参考.具体实现方法如下: 原理: 我们需要先获取QQ群中的所有成员并保存到一个txt文本中去,然后再由python读取文件然 ...

  9. Linux任务之自动发邮件

    Linux任务之自动发邮件 文章目录 Linux任务之自动发邮件 1.虚拟机Centos7环境 (1)先设置自己的邮箱,我这用qq邮箱: (2)获取到密码后,我们要在Linux上配置邮件文件: (3) ...

最新文章

  1. 设计模式----组合模式UML和实现代码
  2. CommonJS 的 AMD 规范
  3. 喜讯不断,BCH又迎来两个代币发行方案
  4. leetcode算法题--解码方法★
  5. java网格式布局登录界面_Java学习笔记------自己书写的登录界面实例
  6. Apress Pro Android 2
  7. stm32烧录软件_使用华为LiteOS Studio开发STM32物联网工程1
  8. 【翻译】优秀网站的10个技巧
  9. Java设计模式-工厂模式
  10. DiskFileUpload类
  11. 云计算机教室 国家标准,计算机云网络教室建设方案
  12. 《Sre google运维解密》笔记
  13. 从零开始学习CANoe(六)—— CAPL 测试节点
  14. 给在读研究生+未来要读研同学们的一封受益匪浅的信
  15. Top 10 顶级项目管理工具
  16. Python将小写字母转化为大写字母
  17. Spring boot Failed to bind properties under ‘XXX‘问题
  18. 执行docker命令,出现Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
  19. 男女比例失调,农村“光棍危机”有多严重?
  20. steam怎么看在哪些计算机上登录过,怎么查看在我电脑上登陆过的STEAM账号

热门文章

  1. GitBook 制作电子书
  2. 电商后台开发之商品规格组合算法
  3. MySQl 面试重点_2.常见的索引面试题总结
  4. android之系统相机拍照
  5. C#类与结构体的区别
  6. ANSYS Workbench并行计算设置方法
  7. 基于java jsp的大学教室管理系统
  8. Camera和Image sensor技术基础笔记(7) -- SCCB总线
  9. 视频播放器 影音播放器PotPlayer v1.7.17891 绿色无广告版
  10. 什么是win32编程