Python+Selenium框架篇10-封装一个自动发邮件测试报告功能系列-下
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python+Selenium框架篇10-封装一个自动发邮件测试报告功能系列-下,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2768字,纯文字阅读大概需要4分钟。
内容图文
本文介绍如何封装一个自动发邮件测试报告功能系列
在上两篇介绍了【发送带附件邮件】和【【找到最新的测试报告】的方法,接下来我介绍何如将自动发送邮件测试报告方法集成封装到自动化项目中
层次结构如下:
首先我们将这两个方法统一封装到公共包method.py方法类里,方便以后调取
代码如下:
import time
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
# 保存截图
def get_windows_img(self):
"""
在这里我们把file_path这个参数写死,直接保存到我们项目根目录的一个文件夹.\img下
"""
file_path = os.path.dirname(os.path.abspath('.')) + '/img/'
rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
screen_name = file_path + rq + '.png'
try:
self.driver.get_screenshot_as_file(screen_name)
print("已将截图保存到文件夹/img")
except NameError as e:
print("截图保存失败! %s" % e)
self.get_windows_img()
#定义发送邮件
def send_mail(file_new):
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'] = Header("自动化测试报告" + rq, 'utf-8')
try:
smtp = smtplib.SMTP()
smtp.connect("smtp.qq.com")
smtp.login("593283555@qq.com", "wtgetlxmpuxubfia")
smtp.sendmail("593283555@qq.com", "songyu@gouuse.cn", msg.as_string())
smtp.quit()
print('自动化测试报告发送成功 !')
except Exception as e:
print("自动化测试报告发送失败 !")
print(e)
#查找最新测试报告
def new_report(testreport):
lists = os.listdir(testreport)
lists.sort(key=lambda fn: os.path.getatime(testreport + "\\" + fn))
file_new = os.path.join(testreport,lists[-1])
print(file_new)
return file_new
再结合之前di5篇介绍的HTMLTestRunner自动化测试报告方法,新建一个TestRunner.py文件
代码如下:
import HTMLTestRunner
import os,time
import unittest
from com.method import Method
now = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime()) #获取当前系统时间
file_path = os.path.dirname(os.path.abspath('.')) + '/report/' #设置报告保存路径
HtmlFile = file_path + now + "HTMLtemplate.html" #设置报告名称
fp = open(HtmlFile, 'wb')
#构建suit
suite = unittest.TestLoader().discover("testcase")
if __name__=="__main__":
#初始化HTMLTestRunner实例对象,设置报告title和description。
runner = HTMLTestRunner.HTMLTestRunner(
stream=fp,
title=u'百度测试报告',
description=u"用例执行情况:"
)
#开始执行测试套件
runner.run(suite)
#关闭资源
fp.close()
newreport = Method.new_report(file_path) #获取最新报告
Method.send_email(newreport) #发送测试报告
整个程序的执行过程可分为三个步骤:
【1】通过unittest框架的discover()方法加载测试用例,再由HTMLRunner的run()方法执行测试用例并生成测试报告。
【2】调用封装的new_report()方法找到repor目录下最新生成的测试报告,再返回其路径。
【3】最后将获取到最新测试报告的路径传递给封装的send_email()方法,实现自动发邮件测试报告功能。
内容总结
以上是互联网集市为您收集整理的Python+Selenium框架篇10-封装一个自动发邮件测试报告功能系列-下全部内容,希望文章能够帮你解决Python+Selenium框架篇10-封装一个自动发邮件测试报告功能系列-下所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。