在前一篇https://www.cnblogs.com/zhengyihan1216/p/11549820.html 中记录了如何生成html格式的报告,

这篇记录下怎么将测试报告通过邮件发出

1、对test_add_dele.py文件进行修改及完善

  注释:email库定义邮件里的内容,smtplib库进行邮件发送

 #coding=utf-8
from HTMLTestRunner import HTMLTestRunner
from email.mime.text import MIMEText
from email.header import Header
import smtplib
import unittest
import add_dele
import time
import os #在测试报告目录下找到最新的报告文件,打印且返回最新报告的名称
def find_new_report(report_dirc):
lists = os.listdir(report_dirc)
lists.sort(key=lambda fn:os.path.getmtime(report_dirc+"\\"+fn))
new_report = os.path.join(report_dirc,lists[-1])
print(new_report)
return new_report def send_mail(new_report):
#读取报告
f = open(new_report,'rb')
mail_body = f.read()
f.close()
#定义邮件正文,报告以正文的形式发送
msg = MIMEText(mail_body,'html','utf-8') #定义邮件标题
msg['Subject'] = Header("自动化测试报告","utf-8")
mail_server = "mail.xxxxx.com"
user_name = "username1@xxxxx.com"
pwd = "xxxxx"
from_add = "username1@xxxxx.com"
to_add = "username2@xxxxx.com" smtp = smtplib.SMTP()
smtp.connect(mail_server)
smtp.login(user_name,pwd)
smtp.sendmail(from_add,to_add,msg.as_string())
smtp.quit()
print("emial has send out") if __name__ =="__main__":
#构建测试集
suit = unittest.TestSuite()
#测试集加入add_dele文件中被调用的方法。格式suit.addTest(文件名.类名("方法名"))
suit.addTest(add_dele.Test_test("test_shuzi"))
suit.addTest(add_dele.Test_test("test_liangmethod"))
#定义存放测试报告的路径及文件名
#我定义的路径是:当前路径+存放报告的专有目录Report+文件名(文件名是当前时间+report.html)
curent_dirc=os.path.dirname(os.path.realpath(__file__))
report_dirc = curent_dirc + "\Report"
now = time.strftime("%Y%m%d-%H%M%S")
report_name = report_dirc+"\\"+now+"report.html"
fp = open(report_name,"wb")
runner = HTMLTestRunner(stream=fp,
title="测试一下报告生成",
description="用两个数字的相加减来练习")
runner.run(suit)
fp.close()
#发送邮件
send_mail(find_new_report(report_dirc))
2、username2@xxxxx.com 该邮箱中收到的报告如下截图所示:

 3、注意问题

  如果发出的测试报告里测试用例没有展开,则将.....Python35\Lib\HTMLTestRunner.py文件中的改行删除:  .hiddenRow  { display: none; }

  由于大家用的HTMLTestRunner.py文件版本不同,所以该文件具体在第几行不同,可以根据文字进行搜索后删除。

  

Python3+HTMLTestRunner+SMTP生成测试报告后发送邮件的更多相关文章

  1. python+selenium生成测试报告后自动发送邮件

    标签(空格分隔): 自动化测试 运行自动化脚本后,会产生测试报告,而将测试报告自动发送给相关人员,能够让对方及时的了解测试情况,查看测试结果. 整个脚本包括三个部分: 生成测试报告 获取最新的测试报告 ...

  2. python 生成测试报告并发送邮件

    前言: 使用unittest编写自动化测试脚本,执行脚本后可以很方便看到测试用例的执行情况. 但如果想向领导汇报工作,就需要提供更直观的测试报告. 思路: 使用unittest编写测试用例,HTMLT ...

  3. python使用 HTMLTestRunner.py生成测试报告

    HTMLTestRunner.py python 2版本 下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 使用时,先建立一个”PyDe ...

  4. 9.Selenium+HTMLTestRunner无法生成测试报告(Pycharm)

    1.若编辑器为Pycharm,代码无任何错误,且运行成功,但是无法生成测试报告,原因如下:(本质是编辑器原因) 若光标在如图位置,右键显示为“run 'unittest in XX'”,若是显示这种, ...

  5. 记Selenium HTMLTestRunner 无法生成测试报告的总结

      使用Python ,HTMLTestRunner 生成测试报告时,遇到很奇怪的问题,明明运行的结果,没有任何报错,就是不生成测试报告,纠结好久.google+baidu搜索结果也不满意,最后终于解 ...

  6. Python 中 使用 HTMLTestRunner 模块生成测试报告

     使用 HTMLTestRunner 模块可以生成测试报告,但是系统自带的报告不详细,不好看,所以找了一份详细的报告 HTMLTestRunner 模板,直接导入就能使用 两种方法生成HTML报告,都 ...

  7. 关于Selenium HTMLTestRunner 无法生成测试报告

    解决方法 1: filename = ‘E:\testresult.html’,如果是在windows环境,文件名要使用以下几种格式. ①filename = 'E:\\testresult.html ...

  8. python使用HTMLTestRunner.py生成测试报告

    这里我使用的是python selenium webdriver环境,浏览器驱动安装见selenium 1.下载HTMLTestRunner.py:http://tungwaiyip.info/sof ...

  9. Python 通过配置文件 读取参数,执行测试用例,生成测试报告并发送邮件

    #-*-coding:utf-8-*- #测试用例配置参数 #XXXXX_Uitest->baseinfo->__init__.py base_url = "http://XXX ...

随机推荐

  1. jq form表单渲染单选框内容渲染

    单选框赋值 单选按钮赋值的主要就在于一个value值和name值对应,但是单选的选中状态按钮是input标签的check(选中)属性 当newattr的属性是1的时候为true,或者当newattr的 ...

  2. Attention篇(二)

    主要是对<Attention is all you need>的分析 结合:http://www.cnblogs.com/robert-dlut/p/8638283.html  以及自己的 ...

  3. 后来,我发现,要想用好WIMBuilder2你必须具有以下能力:

    后来,我发现,要想用好WIMBuilder2你必须具有以下能力:1.一定的中文语言阅读能力,两个帖子1500楼层中主要的功能要弄明白,包括wimbuilder2的架构.补丁的制作.2.一定的英文语言阅 ...

  4. [LeetCode] 264. Ugly Number II 丑陋数之二

    Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors ...

  5. Spring mvc 前后台通过json交互【转】

    原文转自:https://www.cnblogs.com/zhaojiankai/p/8184596.html 本节内容: @RequestBody @ResponseBody 请求json,响应js ...

  6. 深入理解C语言 - 指针使用的常见错误

    在C语言中,指针的重要性不言而喻,但在很多时候指针又被认为是一把双刃剑.一方面,指针是构建数据结构和操作内存的精确而高效的工具.另一方面,它们又很容易误用,从而产生不可预知的软件bug.下面总结一下指 ...

  7. Docker底层原理介绍

    1.docker介绍 1.1什么是docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻 ...

  8. jsplumb 初识

    Jsplumb官网:https://jsplumbtoolkit.com GitHub:https://github.com/sporritt/jsplumb/    有很多官网示例 基础教程:htt ...

  9. Java中转换为十六进制的几种实现

    public class HexUtil { private static final String[] DIGITS_UPPER = {"0", "1", & ...

  10. ipxe(可选):winboot:网络引导(启动)wim格式的windows PE系统:配置文件写法

    ipxe 无盘[网络]引导wim格式的pe系统 wimboot引导程序需要为其提供4个内核参数 bcd bootmgr boot.sdi boot.wim 所需文件附件 以下是我的可用的ipxe的配置 ...