前两篇单独介绍了生成测试报告和自动发送邮件,那么现在把两者整合到一起;生成测试报告后然后自动发送邮件,这里只是简单的整合实现功能,其实还可以优化的,先用吧,后面再慢慢优化

先看下目录,其实目录还是一样,只是在run_all_case中添加了函数

  • case 存放测试用例
  • commen 存放公共模块
  • report 存放测试报告


# coding:utf-8
import unittest
from commen import HTMLTestRunner_jpg
import os
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText current_path = os.getcwd() # 当前文件路径
report_path = os.path.join(current_path, "report")
# 测试报告为result.html
result_path = os.path.join(report_path, "result.html") # 加载全部用例
def all_case():
case_path = os.path.join(current_path, "case") # 用例路径
discover = unittest.defaultTestLoader.discover(case_path,
pattern="test*.py")
return discover def send_email(smtpserver, port, sender, psw, receiver):
# 写信模板
msg = MIMEMultipart()
msg['Subject'] = "这是opa项目的自动化测试报告"
msg['From'] = sender
msg['to'] = receiver # 通过os获取文件路径
annex = open(result_path, "r", encoding="utf-8").read() # 附件,打开并且读取测试报告 main_body = '<pre><h1>这是opa项目的自动化测试报告,请查阅!`</h1></pre>' # 正文的内容 # 添加正文到容器
body = MIMEText(main_body, "html", "utf-8")
msg.attach(body) # 添加附件到容器
att = MIMEText(annex, "base64", "utf-8")
att["Content-Type"] = "application/octet-sream"
att["Content-Disposition"] = 'attachment;filename="opa_test_report.html"' # 附件名称
msg.attach(att) # 连接发送邮件
smtp = smtplib.SMTP_SSL(smtpserver, port)
smtp.login(sender, psw)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit() if __name__ == "__main__": # 打开文件,把结果写进文件中,w,有内容的话,清空了再写进去
fp = open(result_path, "wb") # 打开result.html,把测试结果写进去
runner = HTMLTestRunner_jpg.HTMLTestRunner(stream=fp,
title="测试报告",
description="用例执行情况")
# 调用all_case函数返回值
runner.run(all_case())
# 有开有闭,关闭刚才打开的文件
fp.close() # 发送邮件
send_email("smtp.qq.com", 465, "3437871062@qq.com", "这里填自己的授权码", "1039020476@qq.com")

python-生成测试报告-然后自动发送邮件的更多相关文章

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

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

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

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

  3. 19.Selenium+Python生成测试报告

    1.代码如下所示: from selenium import webdriver import unittest import HTMLTestRunner class BaiduSearch(uni ...

  4. Github 大牛封装 Python 代码,实现自动发送邮件只需三行代码

    *注意:全文代码可左右滑动观看 在运维开发中,使用 Python 发送邮件是一个非常常见的应用场景.今天一起来探讨一下,GitHub 的大牛门是如何使用 Python 封装发送邮件代码的. 一般发邮件 ...

  5. Python(1)自动发送邮件

    python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块主要负责构造邮件. sm ...

  6. python生成测试报告HTMLTestRunner时报错ValueError: write to closed file的解决办法

    使用HTMLTestRunner时出现了以下问题: self.stream.write(output.encode('utf8')) ValueError: write to closed file ...

  7. jmeter自动生成测绘报告并发送邮件

    步骤: 1.安装ant,添加到环境变量(windows是将bin目录添加到path.cmd命令输入 ant -v 查看版本号) (mac:brew install ant ant –version) ...

  8. python☞自动发送邮件

    一.SMTP 协议 SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式 二.smtplib ...

  9. Unittest单元测试框架——BeautifulReport测试报告和Yagmail自动发送邮件

    一.前言 之前在做appium自动化的时候,已经提到过unittest框架的基本概念.用例执行,以及BeautifulReport测试报告的简单使用了(地址:https://www.cnblogs.c ...

随机推荐

  1. 大白话,讲编程之《ES6系列连载》汇总

    如果你经历过2,3年前的前端开发,你一定感受过兼容IE6,7的痛苦,一定用过网页三剑客的dreamweaver编写html,面试的时候面试官一定会问你:会用PS切图吗? 刚开始的时候你发现,web前端 ...

  2. IOS-下载动画

    就2小时教会你抽丝剥茧CAAnimation核心动画之精美的下载动画 header 设计灵感 设计此效果的作者 Nick; images 开始之前你需要了解的 先上一张CAAnimation层次图: ...

  3. scrapy 6023 telnet查看爬虫引擎相关状态

    Telnet终端(Telnet Console) Scrapy提供了内置的telnet终端,以供检查,控制Scrapy运行的进程. telnet仅仅是一个运行在Scrapy进程中的普通python终端 ...

  4. my.cnf 参数说明

    [mysql] prompt="\\u@\\h:\p  \\R:\\m:\\s [\\d]>"  The prompt command reconfigures the de ...

  5. 【2018多校第一场】hdu6308-Time Zone(日期)

    Problem Description Chiaki often participates in international competitive programming contests. The ...

  6. Partition 1 does not start on physical sector boundary.分区信息不正常

    [root@v1 ~]# df -h Filesystem      Size  Used Avail Use% Mounted on /dev/sda2        20G  3.3G   16G ...

  7. CF911D

    题解: 简单的奇偶判断 代码: #include<bits/stdc++.h> using namespace std; ; int n,a[N],ans,m,p,q; int main( ...

  8. html5 圆角ie8

    http://files.cnblogs.com/files/panmy/%E5%9C%86%E8%A7%92.rar

  9. ios 第2天

    类的方法和实例的方法 -(void)runwithspeed:(int)speed and direction:(int)direction; 实例方法 -开头 运用对象调用 函数名为runwiths ...

  10. Flask数据库常见关系模板代码

    常见关系模板代码 以下罗列了使用关系型数据库中常见关系定义模板代码 一对多 示例场景: 用户与其发布的帖子(用户表与帖子表) 角色与所属于该角色的用户(角色表与多用户表) 示例代码 class Rol ...