Python+Selenium 自动化测试获取测试报告内容并发送邮件
这里封装一个send_mail()方法,用于测试完成后读取测试报告内容,并将报告内容通过邮件发送到接收人
SMTP:Simple Mail Transfer Protocol,简单邮件传输协议
- # coding: utf-8
- import smtplib # 导入smtplib模块
- from email.mime.text import MIMEText
- from email.header import Header
- from .logger import *
- def send_email(test_report):
- with open(test_report, 'r', encoding='utf-8') as f:
- mail_body = f.read() # 打开测试报告,读取报告内容作为邮件内容
- sender = '*********@***.com' # 发出邮箱
- receiver = ['******@***.com', '*******@**.com'] # 接收邮箱
- mail_server = 'smtp.139.com' # 邮箱服务地址,这里以139邮箱为例
- subject = '自动化测试报告' # 邮件标题
- username = '#########' # 邮箱登录名
- passwd = '########' # 密码
- message = MIMEText(mail_body, 'html', 'utf-8') # 设置邮件格式
- message['Subject'] = Header(subject, charset='utf-8')
- # 邮箱登录
- smtp = smtplib.SMTP() # 实例化smtplib.SMTP()类对象
- smtp.connect(mail_server) # 连接邮件服务器
- smtp.login(username, passwd) # 登录
- # 发送邮件
- for i in receiver:
- smtp.sendmail(sender, i, message.as_string())
- Logger().get_log().info( '邮箱:' + i + ',发送邮件成功!\n') # 打印log
- smtp.quit()
发送邮件这点,理论上可以直接使用smtp.sendmail(sender, receiver, message.as_string);
实际使用中发现同时发送到多个邮箱时效果不理想,会出现部分邮箱没有发送;
所以这里使用for循环取接收邮箱遍历发送!
用例执行后,调用此方法即可实现邮件发送
- # coding: utf-8
- # Team : Quality Management Center
- # Author:Carson
- # Date :2019/6/19 17:26
- # Tool :PyCharm
- from constant.path import *
- import HTMLTestRunner
- from encapsulation.add_case import *
- from encapsulation.send_mail import *
- # 设置测试报告参数
- fp = open(report_path, "wb")
- runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
- title=u'测试报告标题',
- description=u'描述信息:',
- tester=u'测试人员')
- # run所有用例
- runner.run(add_test())
- fp.close()
- time.sleep(1)
- print(u'测试报告生成地址:' + report_path)
- time.sleep(5)
- send_email(report_path)
Python+Selenium 自动化测试获取测试报告内容并发送邮件的更多相关文章
- Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)
Jenkins简介 Jenkins是Java编写的非常流行的持续集成(CI)服务,起源于Hudson项目.所以Jenkins和Hudson功能相似. Jenkins支持各种版本的控制工具,如CVS.S ...
- Python+selenium之获取文本值和下拉框选择数据
Python+selenium之获取文本值和下拉框选择数据 一.结合实例进行描述 1. 实例如下所示: #新增标签操作 def func_labels(self): self.driver.find_ ...
- Python+selenium之读取配置文件内容
Python+selenium之读取配置文件内容 Python支持很多配置文件的读写,此例子中介绍一种配置文件的读取数据,叫ini文件,python中有一个类ConfigParser支持读ini文件. ...
- Python+Selenium自动化-获取页面信息
Python+Selenium自动化-获取页面信息 1.获取页面title title:获取当前页面的标题显示的字段 from selenium import webdriver import t ...
- Python+selenium自动化测试中Windows窗口跳转方法
Python+selenium自动化测试中Windows窗口跳转方法 #第一种方法 #获得当前窗口 nowhandle=driver.current_window_handle #打开弹窗 drive ...
- python+selenium 自动化测试实战
一.前言: 之前的文章说过, 要写一篇自动化实战的文章, 这段时间比较忙再加回家过11一直没有更新博客,今天整理一下实战项目的代码共大家学习.(注:项目是针对我们公司内部系统的测试,只能内部网络访问, ...
- python + selenium + PhantomJS 获取腾讯应用宝APP评论
PhantomJS PhantomJS 是一个基于WebKit的服务器端JavaScript API,它无需浏览器的支持即可实现对Web的支持,且原生支持各种Web标准,如DOM 处理.JavaScr ...
- python selenium 自动化测试web
如何使用python完成自动化测试web页面呢?首选selenium 那基于python的selenium如何使用,下面看一段测试案例: 基于python的selenium 安装方法: pip i ...
- 《一头扎进》系列之Python+Selenium自动化测试框架实战篇6 - 价值好几K的框架,呦!这个框架还真牛叉哦!!!
1. 简介 本文开始介绍如何通过unittest来管理和执行测试用例,这一篇主要是介绍unittest下addTest()方法来加载测试用例到测试套件中去.用addTest()方法来加载我们测试用例到 ...
随机推荐
- 【Linux 内核网络协议栈源码剖析】网络栈主要结构介绍(socket、sock、sk_buff,etc)
原文:http://blog.csdn.net/wenqian1991/article/details/46700177 通过前面的分析,可以发现,网络协议栈中的数据处理,都是基于各类结构体,所有有关 ...
- RK3288-OTA编译失败解决办法【转】
本文转载自:http://blog.csdn.net/wangxueming/article/details/52448630 在执行make otapackage的时候出现该错误,是由于drmsi ...
- bat文件中调用传参的问题
https://blogs.msdn.microsoft.com/twistylittlepassagesallalike/2011/04/23/everyone-quotes-command-lin ...
- YTU 2428: C语言习题 计算该日在本年中是第几天
2428: C语言习题 计算该日在本年中是第几天 时间限制: 1 Sec 内存限制: 128 MB 提交: 1505 解决: 857 题目描述 定义一个结构体变量(包括年.月.日).编写一个函数d ...
- C# a标签请求下载文件
服务器文件后台处理方式: a标签: <a href="/FileUpload/DownloadFile?file=/UploadFiles/File/bfcd676b-13a8-419 ...
- 关于PHP的框架
使用PHP框架有优点也有缺点,优点是避免重复劳动.简化很多操作.方便团队项目开发及维护,框架已经帮助你完成了很多工作,业务层主要侧重于业务功能的开发,缺点是由于调用框架对系统性能会有一点影响,因为框架 ...
- Linux 常用命令十一 ps
一.ps命令 Linux中的ps命令是Process Status的缩写. ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要 ...
- bzoj 2456: mode【瞎搞】
这题加个#include都会MLE-- 神思路,每个数抵消宇哥和它不同的数,最后剩下的就是众数 #include<cstdio> int n,la,x,tot; int main() { ...
- bzoj 3456: 城市规划【NTT+多项式求逆】
参考:http://blog.miskcoo.com/2015/05/bzoj-3456 首先推出递推式(上面的blog讲的挺清楚的),大概过程是正难则反,设g为n个点的简单(无重边无自环)无向图数目 ...
- .NET Core 跨平台物联网开发:SDK 属性、方法、委托、类(四)
系列教程目录 (一) 连接阿里云IOT (二) 设置委托事件 (三) 上报属性 (四) SDK文档 属性.方法.委托.类 http://pan.whuanle.cn/index.php?dir=up ...