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

有这样的一个场景:

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

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

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

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

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

实例代码如下:

import unittestimport timeimport osimport smtplibfrom HTMLTestRunner import HTMLTestRunnerfrom email.mime.text import MIMETextfrom email.header import Headerfrom 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_newif __name__==‘__main__‘:    test_dir = r‘E:\selenium+puthon+pycharm学习\test_project\test_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邮件可以查看到:

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

原文地址:https://www.cnblogs.com/linxiu-0925/p/9946903.html

时间: 2024-10-14 04:57:27

selenium测试报告生成、找到测试报告路径、实现发邮件(整合)的相关文章

Selenium 2自动化测试实战37(自动发邮件功能)

自动发邮件功能 例如,如果想在自动化脚本运行完成之后,邮箱就可以收到最新的测试报告结果.SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规划,由它来控制信件的中转方式.python的smtplib模块提供了一种很方便的途径用来发送电子邮件,它对SMTP协议进行了简单的封装.可以使用SMTP对象的sendmail方法发送邮件,通过help()可查看SMTP所提供的方法,命令如下: -from smtplib impo

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

当自动化测试完成后,我们需要一份漂亮且通俗易懂的测试报告来展示自动化测试成果,仅仅一个简单的log文件是不够的 HTMLTestRunner是Python标准库unittest单元测试框架的一个扩展,它生成易于使用的HTML测试报告,下载后,将其复制到Python的安装目录即可, 例如,Windows,放在...\python27\Lib目录下 补充知识: 1.Python注释 普通注释用#表示 文本注释,放在类或者方法下面:""" 注释内容 ""&quo

Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告2(使用PyCharm )

1.说明 在我前一篇文件(Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE ))中简单的写明了,如何生产测试报告,但是使用IDLE很麻烦,而且在实际的项目中也不方便,所以,查了很多资料来研究如何在PyCharm中生成测试报告,故此记录一下(命名什么的不规范就不要纠结了). 2.步骤 第一步:下载HTMLTestRunner.py 参考:Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使

转 生成 HTMLTestRunner 测试报告

转自:http://www.cnblogs.com/hero-blog/p/4128575.html 04.生成 HTMLTestRunner  测试报告 1.HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展.它生成易于使用的 HTML 测试报告 1>下载HTMLTestRunner.py文件,地址为: http://tungwaiyip.info/software/HTMLTestRunner.html Windows平台: 将下载的文件放入...\P

Selenium2 + Python3.6实战(五):生成HTML测试报告 Invalid argument

今天在学习自动化测试的高级应用,第一篇就是生成HTML测试报告,由于测试报告的名称没有进行设置,所以每次运行测试之前若没有手动修改之前的报告名称,运行时就会把原来的报告覆盖.这样做显然很麻烦,最好的解决办法就是在报告名称中加入当前时间,这样生成的报告既不会重叠,又能更清晰地知道报告生成的时间. 但是却在运行代码的过程中,出现了报错: Traceback (most recent call last):  File "D:/Python/selenium/test_baidu.py",

selenium+python之HTML测试报告

r一.准备 1.本节用到的模块--HTMLTestRunner 1)下载:下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 鼠标右键→目标另存为,保存到本地. 2)安装:将下载的HTMLTestRunner.py文件复制到Python安装目录下即可 ...\Python36\Lib 3)验证:在Python交互模式下引入HTMLTestRunner模块,如系统没有报错,则说明添加成功 2.修改HTMLTestRunner 因为HTM

测试报告生成(四)

使用python+selenium写好测试代码之后,对所要测试的web界面进行测试,测试完成之后,下一步需要考虑的就是如何将测试的结果信息生成测试报告. 在网上找了好多资料,发现大家采用的时HTMLTestRunner.py进行测试报告的生成,下载地址 一.修改HTMLTestRunner.py文件 下载完后,发现此文件使用python2编写,而本地使用的是python3,所以要对该代码做出修改,修改内容为: 1.94行,import  StringIO修改为:import io,相应地539行

python接口自动化测试二十五:执行所有用例,并生成HTML测试报告

    import requestsimport unittest class TestQQ(unittest.TestCase):    '''测试QQ号接口'''      # 此注释将展示到测试报告的测试组类 def test_qq(self):        '''测试QQ号码,正确的appkey'''      # 此注释将展示到测试报告的用例标题        url = 'http://japi.juhe.cn/qqevaluate/qq'        par = {     

Selenium3+生成HTMLTestRunner测试报告+发送带附件邮箱

1.导入各功能模块 from HTMLTestRunner import HTMLTestRunner from email.mime.text import MIMEText #发送邮件正文 from email.mime.multipart import MIMEMultipart #发送邮件附件 from email.header import Header import smtplib import unittest import time import os 2.定义发送邮件(QQ邮箱