Python+Selenium框架篇11-封装一个自动发邮件测试报告功能系列-终
2019-06-28 18:27
302 查看
本文介绍如何封装一个自动发邮件测试报告功能系列
这一篇是我后面补上的,有些人觉得还比较麻烦,每次都要单独写脚本生成HTMLRunner测试报告,载调用两个方法才能实现自动发邮件测试报告功能。那么这篇我们就把前面学的【生成HTMLRunner方法】和【获取最新测试报告方法】以及【发送带附件邮件方法】都整合封装到一起,这样以后需要自动发送邮件测试报告,只需要调用一个方法就行了。
层次结构如下:
还是把这个方法整合到公共method.py文件中,这次单独写的没详细注释(看不懂可以参照前面几篇)
代码如下
import time import HTMLTestRunner import os.path from email.mime.text import MIMEText from email.header import Header import smtplib class Method(object): def __init__(self, driver): self.driver = driver #邮件发送最新HTML测试报告 def report_email(suite, title): #生成HTMLRunner测试报告 now = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime()) filename = os.path.dirname(os.path.abspath('.')) + '/report/' HtmlFile = filename + now + 'HTMLRunner.html' fp = open(HtmlFile, 'wb') runner = HTMLTestRunner.HTMLTestRunner( stream=fp, title=title, description=u"用例执行情况" ) try: runner.run(suite) fp.close() print("报告已生成:%s" % HtmlFile) #获取最新报告 try: lists = os.listdir(filename) lists.sort(key=lambda fn: os.path.getatime(filename + "\\" + fn)) file_new = os.path.join(filename, lists[-1]) print("已获取最新测试报告:" + file_new) #发送邮件 try: f = open(file_new, 'rb') mail_bady = f.read() f.close() msg = MIMEText(mail_bady, 'html', 'utf-8') rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time())) msg['Subject' 3ff7 ] = Header("自动化测试报告" + rq, encoding='utf-8') try: smtp = smtplib.SMTP() smtp.connect("smtp.qq.com") smtp.login("xxxxxxxxx@qq.com", "xxxxxxxxxx") smtp.sendmail("xxxxxxxxx@qq.com", "xxxxxxxxx@qq.com", msg.as_string()) smtp.quit() print('测试报告已发送到邮箱:' + "xxxxxxxxx@qq.com") except Exception as e: print("测试报告发送失败 !" + e) except Exception as e: return e except Exception as e: print("最新报告获取失败 !" + e) except Exception as e: print("报告生成失败 !" + e)
新建TestRunner.py文件
代码如下
import unittest from com.method import Method suite = unittest.TestLoader().discover('testcase') if __name__=="__main__": Method.report_email(suite, u"百度搜索测试"
这次可以看到代码很简洁了,只需要构建一个suite,再调用report_email方法,就实现了,是不是很简单啊。
下面是执行结果:
报告已生成:D:\Program Files\PycharmProjects\pycharmPrj/report/2019-06-28 18_23_39HTMLRunner.html 已获取最新测试报告:D:\Program Files\PycharmProjects\pycharmPrj/report/2019-06-28 18_23_39HTMLRunner.html 测试报告已发送到邮箱:xxxxxxxxx@qq.com
邮件收到报告如图:
相关文章推荐
- python自动发送测试报告邮件功能的实现
- python unittest自动化测试,生成测试报告,自动发邮件
- 最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
- python3.6+selenium3.13 自动化测试项目实战一(增加自动发送邮件报告接口)
- 最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
- 【Python系列】Python自动发邮件脚本-html邮件内容
- 使用sqlite3的接口函数完成一个用户登录验证功能模块设计 要封装成独立函数,在独立的main中调用测试;
- Python实现日志自动记录功能(一个思路代码,详细可以自己扩展)
- Appium跑python脚本自动生成简单测试结果报告
- Appium自动化测试系列2- 写一个Python测试脚本来测试一下YY语音
- 封装 RecyclerView, 打造为一个非常实用的开发工具 , 添加一些开发中常用的功能 , 例如下拉刷新, 分页, 自动加载 , 加载错误等等
- 最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
- 最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
- (转载)最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
- 在tornado的database.py基础上封装了一个Python的DAL出来,召集帮忙测试的同学
- python--selenium实用的自动生成测试HTML报告方法--HTMLTestRunner
- python的GUI编程--wxpython学习(四)-->练习:一个自动测试app启动时间的小工具
- 一个AJAX自动完成功能的js封装源码[支持中文]第1/2页
- python 支持自动群发测试报告邮件到指定的邮箱
- python实现自动生成接口自动化测试报告