python+selenium+unittest测试框架4-邮件发送最新测试报告

邮件发送最新测试报告

示例:

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

def allcase():
    ‘‘‘加载测试用例‘‘‘
    discover = unittest.defaultTestLoader.discover(casepath,
                                                   pattern="case*.py",
                                                   top_level_dir=None)
    return discover

def run_case():
    ‘‘‘执行测试用例,生成测试报告‘‘‘
    now = time.strftime("%Y_%m_%d %H_%M_%S")
    htmlreportpath = os.path.join(reportpath, now+"result.html")
    fp = open(htmlreportpath, "wb")
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                                           title=u"自动化测试报告",
                                           description=u"测试用例执行情况")
    # 调用allcase函数返回值
    runner.run(allcase())
    fp.close()

def get_report_file(reportpath):
    ‘‘‘获取最新的测试报告‘‘‘
    lists = os.listdir(reportpath)
    lists.sort(key=lambda fn: os.path.getmtime(os.path.join(reportpath, fn)))
    # 找到最新生成的报告文件
    reportfile = os.path.join(reportpath, lists[-1])
    return reportfile

def send_mail(sender, psw, receiver, smtpserver,reportfile, port=465):
    ‘‘‘发送最新的测试报告内容‘‘‘
    #打开测试报告
    with open(reportfile, "rb") as f:
        mail_body = f.read()
    # 定义邮件内容
    msg = MIMEMultipart()
    body = MIMEText(mail_body, _subtype=‘html‘, _charset=‘utf-8‘)
    msg[‘Subject‘] = u"自动化测试报告"
    msg["from"] = sender
    msg["to"] = receiver
    msg.attach(body)
    # 添加附件
    att = MIMEText(open(reportfile, "rb").read(), "base64", "utf-8")
    att["Content-Type"] = "application/octet-stream"
    att["Content-Disposition"] = ‘attachment; filename= "report.html"‘
    msg.attach(att)
    try:
        smtp = smtplib.SMTP_SSL(smtpserver, port)
    except:
        smtp = smtplib.SMTP()
        smtp.connect(smtpserver,port)
    # 用户名密码
    smtp.login(sender, psw)
    smtp.sendmail(sender, receiver, msg.as_string())
    smtp.quit()

if __name__ == ‘__main__‘:
    casepath = os.path.join(os.getcwd(),"case") #测试用例存放路径
    reportpath = os.path.join(os.getcwd(),"report") #测试报告存放路径
    run_case() #执行测试用例
    reportfile = get_report_file(reportpath)
    smtpserver = "smtp.qq.com"
    sender = "[email protected]" # 自己的账号
    psw = "password" #自己的密码
    receiver = "[email protected]" #对方的账号
    send_mail(sender, psw, receiver, smtpserver,reportfile)

原文地址:https://www.cnblogs.com/txx403341512/p/9353841.html

时间: 2024-08-04 07:05:23

python+selenium+unittest测试框架4-邮件发送最新测试报告的相关文章

python+selenium+unittest测试框架3-项目构建和发送邮件

项目构建和发送邮件 一.项目构建 1.建立项目chen 打开pycharm左上角File>New Project,在Location输入testing项目所在文件夹D:\chen,创建后选择Opin in current window. 2.创建子文件夹 PS:创建文件夹,一定要选Python Package的方式创建. 3.创建测试脚本 4.创建runalltest.py PS:在runalltest.py这个脚本里面写主函数,控制执行所有的用例. 5.下载生成测试报告的源码 import H

python+selenium+unittest测试框架2-装饰器@classmethod

装饰器@classmethod 一.装饰器@classmethod 多个用例可能需要多次打开浏览器,装饰器@classmethod只打开一次浏览器.classmethod是python里的类方法,@是修饰符号. 1.setUpClass(): @classmethod def setUpClass(cls): 2.tearDownClass(): @classmethod def tearDownClass(cls): 示例: from selenium import webdriver fro

python利用unittest测试框架组织测试用例的5种方法

利用unittest测试框架可以编写测试用例,执行方式分两大类:利用main方法和利用testsuite,其中利用测试套件来组织测试用例可以有4种写法. 在此之前,先了解几个概念 TestCase:所有测试用例的基本类,给一个测试方法的名字,就会返回一个测试用例实例: TestSuite:组织测试用例的实例,支持测试用例的添加和删除,最终将传递给  testRunner进行测试执行: TextTestRunner:进行测试用例执行的实例,其中Text的意思是以文本形式显示测试结果.测试的结果会保

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"

Python+Selenium ----unittest单元测试框架

unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做"PyUnit",是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java还有一个很好用的单元测试框架叫TestNG,本系列只学习Python,所以只需要unittest是Python里的一个单元测试框架就可以了.       unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是test,也就是一个测试用例.要了解

Python&Selenium&Unittest&BeautifuReport 自动化测试并生成HTML自动化测试报告

一.摘要 本篇博文将介绍如何借助BeautifulReport和HTML模版,生成HTML测试报告的BeautifulReport 源码Clone地址为 https://github.com/TesterlifeRaymond/BeautifulReport,其中 BeautifulReport.py和其template是我们需要的关键. 二.BeautifulReport 如下代码是BeautifulReport.py的源码,其中几个注释的地方需要注意,将其集成进自己的自动化框架时需要做相应的

Python 下的unittest测试框架

unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例:使用unittest框架编写测试用例: report:测试报告:保存测试报告,调用封装好的runcases.py,其中加入时间和HTMLTestRunner生成的带时间的测试报告; run_tests.py:执行测试用例:调用封装好的runcases.py执行用例: mail:发送邮件:封装好发送

Python接口测试实战3(下)- unittest测试框架

如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战2 - 使用Python发送请求 Python接口测试实战3(上)- Python操作数据库 Python接口测试实战3(下)- unittest测试框架 Python接口测试实战4(上) - 接口测试框架实战 Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例

selenium一个完整的unittest测试框架格式(单线程,非测试报告)

我在工作中碰到过同事写了些web自动化测试的脚本,有次我问他使用的是什么测试框架, 他居然说不知道.这位同事其实写selenium自动化测试也有些时间了.当我看了他的脚本 不出意外,他使用的就是unittest框架,哈哈.所以我觉得有些同学虽然会做相关东西, 但其实并不知道自己所掌握的东西是什么. 下面呢,我就结合自己写的脚本分析下一个完成的unittest测试框架的包括的内容. 图中我已经写的很详细拉.想交流的可以加QQ群:610845268