标签(空格分隔): 自动化测试


运行自动化脚本后,会产生测试报告,而将测试报告自动发送给相关人员,能够让对方及时的了解测试情况,查看测试结果。

整个脚本包括三个部分:

  • 生成测试报告
  • 获取最新的测试报告
  • 自动发送邮件

具体的代码实现如下:

import os
import unittest
import smtplib
from HTMLTestRunner import HTMLTestRunner
from email.mime.text import MIMEText
from email.header import Header
from datetime import datetime
import time #自动发送邮件
def send_email(new_report):
#读取测试报告中的内容作为邮件的内容
with open(new_report,'r',encoding='utf8') as f:
mail_body = f.read()
#发件人地址
from_addr = '123456789@126.com'
#收件人地址
to_addr = '123456@qq.com,'
#发送邮箱的服务器地址
mail_server = 'smtp.126.com'
#邮件的标题
subject = 'qq登录测试报告'
#发件人的邮箱地址
username = '123456789@126.com'
password = '123456'
#邮箱的内容和标题
message = MIMEText(mail_body,'html','utf8')
message['Subject'] = Header(subject,charset='utf8')
#发送邮件
smtp = smtplib.SMTP()
smtp.connect(mail_server)
smtp.login(username,password)
smtp.sendmail(from_addr,to_addr.split(','),message.as_string())
smtp.quit() #获取最新报告的地址
def acquire_report_address(reports_address):
#测试报告文件夹中的所有文件加入到列表
test_reports_list = os.listdir(reports_address)
#按照升序排序生成新的列表
new_test_reports_list = sorted(test_reports_list)
#获取最新的测试报告
the_last_report = new_test_reports_list[-1]
#最新的测试报告的地址
the_last_report_address = os.path.join(reports_address,the_last_report)
return the_last_report_address if __name__ == '__main__':
# 生成测试报告并发送邮件
#测试报告文件夹地址
test_reports_address = 'F:\\python_selenium\\soft_test_selenium2.0\\test_report'
#测试用例的文件夹地址
test_cases_dir = r'F:\python_selenium\soft_test_selenium2.0\test_cases'
#获取所有的测试用例
test_cases = unittest.defaultTestLoader.discover(test_cases_dir,pattern='*.py')
#获取当前时间
now = datetime.now().strftime('%Y%m%d%H%MM%f')
#生成以当前时间命名的测试报告文件名
test_report_name = r'{}\report_{}.html'.format(test_reports_address,datetime.now().strftime('%Y%m%d%H%M%f'))
#生成以当前时间命名的测试报告文件
file_report = open(test_report_name,'w',encoding='utf8')
#生成html形式的报告
runner = HTMLTestRunner(stream=file_report,title='测试报告',description='QQ登录测试报告结果:')
#运行
runner.run(test_cases)
#关闭打开的测试报告文件
file_report.close() time.sleep(5)
#查找最新生成的测试报告地址
new_report_addr = acquire_report_address(test_reports_address)
#自动发送邮件
send_email(new_report_addr)

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

  1. Python+Selenium学习笔记19 - 自动发送邮件

    发送简单的邮件 用一个QQ邮箱发送到另一个QQ邮件. 首先设置QQ邮箱,邮箱设置 -> 账号 开启SMTP服务,点击开启按钮,按提示进行操作,需要1毛钱的短信费.开启后如下所示 1 # codi ...

  2. python-生成测试报告-然后自动发送邮件

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

  3. python selenium-webdriver 生成测试报告

    测试最后的一个重要的过程就是生成一份完整的测试报告,生成测试报告的主要是通过python的一个第三方模块HTMLTestRunner.py生成,但是生成的测试报告不是特别的美观,而且没有办法统计测试结 ...

  4. python selenium-webdriver 生成测试报告 (十四)

    测试最后的一个重要的过程就是生成一份完整的测试报告,生成测试报告的主要是通过python的一个第三方模块HTMLTestRunner.py生成,但是生成的测试报告不是特别的美观,而且没有办法统计测试结 ...

  5. Python+selenium之测试报告(1)

    一.下载HTMLTestRunner.py HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展.它生成易于使用的 HTML 测试报告.HTMLTestRunne ...

  6. Python+selenium之测试报告(3)

    较测试报告(2),该文章将测试报告和测试截图存放在随机变动的文件夹下面,去除了要存放在指定文件夹下面的限制. 注:遇到问题有: 1.创建由时间自动拼接的多级文件夹 2. import os impor ...

  7. Python htmlTestRunner生成测试报告Demo

    #该代码段是ReadTxt_demo.py 的代码,用户读取txt 文件中的用户信息. #ReadTxt_demo.py def readTxt(filePath): fo = open(filePa ...

  8. Python+selenium之测试报告(2)

    # -*- coding: utf-8 -*- import HTMLTestReport import HTMLTestRunner import os import sys import time ...

  9. Mac下持续集成-与JMeter与Ant执行后自动发送邮件的整合(性能报告)==

    配置信息如下,其他的为默认的: 添加性能测试报告后,性能测试报告部分构件失败:

随机推荐

  1. .NET LINQ 筛选数据

    筛选数据      筛选指将结果集限制为只包含那些满足指定条件的元素的操作. 它又称为选择. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 OfType ...

  2. “ifstream” 未声明的标识符

    #include <fstream> 还要加入: using  namespace std;

  3. Jetty使用教程(四:23)—Jetty开发指南

    二十三.Maven和Jetty 这一章节将说明如何通过Maven管理Jetty和使用Jetty的Maven插件. 23.1 使用Maven Apache Maven是一个款软件项目管理工具.基于项目对 ...

  4. CozyRSS开发记录0-RSS阅读器开坑

    CozyRSS开发记录0-RSS阅读器开坑 1.RSS RSS,全名是Really Simple Syndication,简易信息聚合. 关于RSS相关的介绍,网上可以很容易的找到.RSS阅读器是我几 ...

  5. 【Mybatis高级映射】一对一映射、一对多映射、多对多映射

    前言 当我们学习heribnate的时候,也就是SSH框架的网上商城的时候,我们就学习过它对应的高级映射,一对一映射,一对多映射,多对多映射.对于SSM的Mybatis来说,肯定也是差不多的.既然开了 ...

  6. CodeChef - QCHEF 分块

    题目链接:http://vjudge.net/problem/174774/origin 题意:给定一个长度为n的序列a[],序列的值不大于m,现在有k个询问,每个询问给定(l,r).让你求出max{ ...

  7. ContentControl与ContentPresenter区别?

    <TextBlock HorizontalAlignment="Left" Text="{Binding HwContent, Converter={StaticR ...

  8. R实现灰色预测

    1.简介 预测就是借助于对过去的探讨去推测.了解未来.灰色预测通过原始数据的处理和灰色模型的建立,发现.掌握系统发展规律,对系统的未来状态做出科学的定量预测.对于一个具体的问题,究竟选择什么样的预测模 ...

  9. CS: Marshalling and Unmarshalling, Serialization and Unserialization

    Link1: https://en.wikipedia.org/wiki/Marshalling_(computer_science) Quote: " Comparison with se ...

  10. Jquery事件:鼠标移入移出(mouseenter,mouseleave)

    前几天帮朋友做了一个单页面,其中有个效果就是鼠标移动到头像上变换头像样式,当鼠标移出时恢复头像样式.当时没多想,脑子就蹦出了mouseover,mouseout两个方法. 但是在编写页面的过程中,无论 ...