已附件的形式发送测试报告

上一篇中提到了已邮件形式发送报告,但是发送的报告不能查看具体的内容,如果想看到具体的内容,需要已附件的形式发送报告

测试用例Demo不用修改,只需要修改发送邮件的代码,具体的就是引入了MIMEMultipart类,邮件中的内容是分段存储的,附件是related类型。

代码如下:

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

# 发送邮件
def sendReport(file_path):
    """发送带附件的邮件"""
    sendfile = open(file_path,"rb").read()
    # 创建一个MIME类型的文件
    # base64:就是一种基于64个可打印字符来表示二进制数据的方法
    msg = MIMEText(sendfile,"base64","utf-8")
    # 附件类型,不知道附件类型是什么的时候就用这个
    # 具体可以参考:http://tool.oschina.net/commons
    msg["Content-Type"] = "application/octet-stream"
    # 这个主要是在下载时,默认的文件名为result.html
    # 具体可以详见content-Disposition的相关知识
    msg["content-Disposition"] = "attachment;filename=result.html"
    # 附件的存储类型
    msgRoot = MIMEMultipart("related")
    msgRoot.attach(msg)
    # 标题
    msg["Subject"] = Header("自动化测试报告",‘utf-8‘)
    # 发件人
    msg["From"] = "用户名"
    # 收件人,如果给多人发送邮件,以分号隔开
    msg["To"] = "用户名"
    # SMTP协议,调用smtp.qq.com
    smtp = smtplib.SMTP(‘smtp.126.com‘)
    # 登陆邮箱,参数为用户名和授权码
    smtp.login("用户名", "授权码")
    # 发件人给接收者发送邮件,收件人以分号隔开,内容以字符串形式
    smtp.sendmail(msg["From"],msg["To"].split(";"),msg.as_string())
    # 退出
    smtp.quit()

# 查找测试报告目录,找到最新的测试报告文件,把最新的测试报告文件作为邮件发送内容
def newReport(testReport):
    # 返回测试报告所在目录下所有的文件夹
    lists = os.listdir(testReport)
    # 获得升序排列后的测试报告列表
    lists2 = sorted(lists)
    # 获得最后一个测试报告地址
    file_new = os.path.join(testReport,lists2[-1])
    print(file_new)
    return file_new

# 运行
if __name__ == "__main__":
    # 测试用例所在目录
    test_dir = "D:\\PythonDemo\\SeleniumProject\\Email"
    test_report = "D:\\testresult"
    # 加载测试用例所在目录下的bing.py测试用例文件
    discover = unittest.defaultTestLoader.discover(test_dir,pattern="bing.py")
    #获取当前时间
    now = time.strftime("%Y-%m-%d %H%M%S")
    # 测试报告名,测试结果路径+时间+result.html
    filename = test_report + ‘\\‘ + now + ‘result.html‘
    # 以只读的方式打开测试报告
    fp = open(filename,"wb")
    runner = HTMLTestRunner(stream=fp,title="测试报告",description="测试用例执行情况")
    # 执行测试用例,测试用例在discover中加载
    runner.run(discover)
    fp.close()

    # 拿到最新的测试报告
    new_report = newReport(test_report)
    #发送邮件
    sendReport(new_report)

  这样就以附件的形式发送了测试报告,便于查看具体的测试内容

原文地址:https://www.cnblogs.com/bigbigtong/p/10274713.html

时间: 2024-10-06 00:58:14

已附件的形式发送测试报告的相关文章

以邮件附件的形式发送测试报告

1. 创建 EmailAnnex目录, 在 EmailAnnex 下创建 bing.py,并编写 from selenium import webdriver from time import sleep import unittest class Bing(unittest.TestCase): """bing 搜索测试""" def setUp(self): self.driver = webdriver.Firefox() self.dri

以邮件的形式发送测试报告

1.创建一个Email 目录(文件夹),在 Email 中创建 bing.py测试用例 from selenium import webdriver from time import sleep import unittest # driver.find_element_by_xpath("//input[@id='sb_form_q']").send_keys("CMBC") # driver.find_element_by_xpath("//input

获取mysql内容,生成xml文件,并且以webservice形式发送

<xyt> <news id> <url></url> <title></title> </news> </xyt> 其实是三个知识点综合到一起的,包括如何访问mysql,如何生成xml文件,如何使用进行webservice开发 好了,话不多说,直接粘代码 package com.service; import java.io.FileOutputStream; import java.io.IOExcepti

python3 邮件方式发送测试报告

以邮件方式发送测试报告 import smtplib from email.mime.text import MIMEText class SendEmail: """邮件方式发送报告""" global send_user global email_host global password send_user = "[email protected]" email_host = "smtp.163.com"

Python + HTMLTestRunner + smtplib 完成测试报告生成及发送测试报告邮件

一下代码是自己结合教材,并结合以往用到的实例编写的代码,可以做为参考 import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from HTMLTestRunner import HTMLTestRunner from email.header import Header import unittest import time,os #==========

Python Selenium unittest+HTMLTestRunner实现 自动化测试及发送测试报告邮件

1.UI测试框架搭建-目录结构 2. 文件介绍 2.1.baseinfo->__init__.py 配置文件定义基础参数 #-*-coding:utf-8-*- #测试用例配置参数 base_url = "http://xxxxx.com" undirect_username = "username" undirect_password = "password" direct_username = "username"

java后台简单从阿里云下载文件通知前端以附件的形式保存

代码块语法: @Override public MessageVo getDownLoadFile(String fileName, String ossKey, HttpServletResponse response) { // fileName :前台传入的文件名(主要是标识文件是什么格式.png或.zip) // ossKey:上传文件时阿里云返回的标识 // 配置阿里云基本信息 String aliyunId = ApplicationPropertyUtils.getContextP

ant+jmeter+jenkins 发送测试报告邮件

二.部署配置 2.1 jmeter 2.1.1 jar包二次开发: 将jmeter目录D:\apache-jmeter-5.0\extras中的ant-jmeter-1.1.1.jar包进行反编译.添加2个测试类 MailTask和JavaMail.具体代码参考文件中的java文件.然后进行编译生成新的jar包ant-jmeter-1.1.2-SNAPSHOT.jar. 2.1.2 添加build文件和测试文件 在jmeter目录D:\apache-jmeter-5.0\test下新增文件bui

自动化测试基础篇--Selenium发送测试报告邮件

发邮件需要用到python两个模块,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块主要负责构造邮件.其中MIMEText()定义邮件正文,Header()定义邮件标题.MIMEMulipart模块构造带附件. Selenium发送邮件流程: 一.网易邮箱 Selenium发送邮件步骤: 1.导入smtplib和email模块: 2.准备发邮件的参数,每个邮箱的发件服务器都不一样,以163为例,百度搜到发件服务