您的位置:首页 > 编程语言 > Python开发

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

邮件收到报告如图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐