selenium测试报告生成找到测试报告路径实现发邮件(整合)

Posted linxiu-0925

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium测试报告生成找到测试报告路径实现发邮件(整合)相关的知识,希望对你有一定的参考价值。

有这样的一个场景:

假设生成的测试报告与多人相关,每个人都去测试服务器査看就会比较麻烦,如果把这种主动的且不及时的査看变成被动且及时的査收,就方便多了。

整个程序的执行过程可以分为三个步骤:

①    通过unittest框架的discover()找到匹配测试用例,由htmlTestRunner的run()方法执行测试用例并生成最新的测试报告。

②    调用new_report()函数找到测试报告目录(test_case)下最新生成的测试报告,返回测试报告的路径。

③    将得到的最新测试报告的完整路径传给send_mail()函数,实现发邮件功能。

 实例代码如下:

import unittest
import time
import os
import smtplib
from HTMLTestRunner import HTMLTestRunner
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart

#定义发送邮件
def send_mail(file_new):
f=open(file_new,‘rb‘)
mail_body=f.read()
f.close()
#构造附件
att = MIMEText(mail_body, ‘base64‘, ‘utf-8‘)
att["Content-Type"] = ‘application/octet-stream‘
att["Content-Disposition"] = ‘attachment;filename="latestResult.html"‘
msg = MIMEMultipart(‘related‘)
msg[‘subject‘] = Header("自动化测试报告", ‘utf-8‘)
msg.attach(att)
#加邮件头
#加邮件头
msg[‘From‘] = ‘[email protected] <[email protected]>‘
msg[‘To‘] = ‘[email protected]
smtp=smtplib.SMTP()
smtp.connect("smtp.sina.com",25)
smtp.login("[email protected]","lili123456")
smtp.sendmail(‘[email protected]‘,‘[email protected]‘,msg.as_string())
smtp.quit()
print("email has send out!")

#查找测试报告目录,找到最新生成的测试报告文件,并发送
def new_report(test_report):
lists=os.listdir(test_report)
lists.sort(key=lambda fn :os.path.getmtime(test_report+‘\\‘+fn))
print((‘最新的文件为:‘+lists[-1]))
file_new=os.path.join(test_report,lists[-1])
print(file_new)
return file_new
if __name__==‘__main__‘:
test_dir = r‘E:selenium+puthon+pycharm学习 est_project est_case‘
discover = unittest.defaultTestLoader.discover(test_dir, pattern=‘test_*.py‘)
now = time.strftime("%Y-%m-%d %H-%M-%S")
filename = test_dir + ‘//‘ + now + ‘result.html‘
fp = open(filename, ‘wb‘)
runner = HTMLTestRunner(stream=fp, title=‘测试报告‘, description=‘用例测试执行情况:‘)
runner.run(discover)
fp.close()
newReport = new_report(test_dir)
send_mail(newReport)

登录126邮件可以查看到:

技术分享图片

 

生成的测试报告通过邮件附件打开可以看到:

技术分享图片

 



















































以上是关于selenium测试报告生成找到测试报告路径实现发邮件(整合)的主要内容,如果未能解决你的问题,请参考以下文章

cypress一键生成测试报告

Selenium3自动化测试40Html测试报告

selenium+Python(生成html测试报告)

Python+Selenium笔记:生成测试报告

python selenium-webdriver 生成测试报告 (十四)

python selenium2示例 - 生成 HTMLTestRunner 测试报告