Appium+python 自动发送邮件(2)

移动端执行完测试case之后,通过邮件自动发送测试报告。大体流程如下:

1、通过unittest框架的discover()发现所有测试用例

2、使用HTMLTestRunner的run()方法运行测试用例,生成HTML测试报告

3、寻找测试报告目录下的最新测试报告,返回最新测试报告的路径

4、将最新测试报告路径传给send_mail()函数,发送带HTML格式的邮件

# coding:utf-8
import unittest
import time
import smtplib
import os
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from HTMLTestRunner import HTMLTestRunner

testcase_dir = ‘E:\\python_work\\appium\\test_app\\testcase‘   # 测试用例路径
testreport_dir = ‘E:\\python_work\\appium\\test_app\\report‘    # 测试报告路径

# 发送邮件
def sendmail(sendfile):
    smtpserver = ‘smtp.qq.com‘
    user = ‘[email protected] ‘
    password = ‘password‘
    sender = ‘[email protected]‘
    receiver = ‘[email protected]‘
    subject = ‘自动化测试报告‘

    f = open(sendfile, ‘rb‘)
    mailbody = f.read()  # 读取测试报告作为邮件正文
    f.close()

    # 编写HTML类型的邮件正文
    msg = MIMEText(mailbody, ‘html‘, ‘utf-8‘)
    msg["Subject"] = Header(subject, ‘utf-8‘)

    smtp = smtplib.SMTP()
    smtp.connect(smtpserver)
    smtp.login(user, password)
    smtp.sendmail(sender, receiver, msg.as_string())
    smtp.quit()
    print(‘Email has send out‘)

# 查找目录下最新生成的测试报告,返回最新报告的详细路径
def find_Report(reportpath):
    lists = os.listdir(reportpath)
    lists.sort(key=lambda fn: os.path.getmtime(reportpath + "\\" + fn))
    newfile = os.path.join(reportpath, lists[-1])
    print(newfile)
    return newfile

# 运行case,并生成测试报告
def run_case():
    discover = unittest.defaultTestLoader.discover(testcase_dir, pattern=‘test*.py‘)
    now_time = time.strftime("%Y%m%d_%H-%M-%S")
    fp = open(testreport_dir + ‘\\‘ + now_time + ‘_TestResult.html‘, ‘wb‘)
    runner = HTMLTestRunner(
        stream=fp,
        title=‘测试报告‘,
        description=‘测试用例执行情况‘,
    )
    runner.run(discover)  # 运行case,生成HTML测试报告
    fp.close()

if __name__ == ‘__main__‘:
    run_case()
    new_report = find_Report(testreport_dir)
    sendmail(new_report)

收到的邮件如下:

原文地址:https://www.cnblogs.com/fancy0158/p/10056418.html

时间: 2024-08-01 20:29:09

Appium+python 自动发送邮件(2)的相关文章

Appium+python 自动发送邮件(1)

SMTP:简单传输协议,实在Internet上传输Email的事实标准. Python的smtplib模块提供了一种很方便的途径来发送电子邮件,它对SMTP协议进行了简单的封装. python中发送邮件除了SMTP模块外,还需用到email模块.email模块主要用来定义邮件的标题.正文.附件. 一.SMTP的方法 1.SMTP模块的方法 connect(host,port) host:指定连接的邮箱服务器 port:指定连接服务器的端口号 login(user,passwork) user:登

使用python自动发送邮件

最近研究邮件透明加密技术,,需要使用脚本自动发送邮件测试,于是使用python写了一个小程序.程序可以自动选择不定数量的附件,随机选择主题,随机选择正文,然后自由组合发送,非常适合邮件方面的测试任务.顺便说一下邮件透明加密技术和市场上的其他邮件加密技术相比再部署上非常简单."透明"二字就是部署不改变用户原有习惯,目前的产品有天御云安的隐密邮,网址是https://mail.tyyunan.com/, 各位感兴趣的可以看一下. # -*- coding: utf-8 -*- __vers

利用Python自动发送邮件

# -*- coding:utf-8 -*-from email.mime.text import MIMETextfrom email.header import Headerimport smtplib def send_mail(file_new): f = open(file_new,'rb') mail_body = f.read() f.close() msg = MIMEText(mail_body,'html','utf-8')  msg['Subject'] = Header(

Python 自动发送邮件

简单邮件传输协议(SMTP)是一种协议,用于在邮件服务器之间发送电子邮件和路由电子邮件.Python提供smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于使用SMTP或ESMTP侦听器守护程序向任何互联网机器发送邮件. SMTP通讯的基本流程可以概括为以下几点: 1.连接SMTP服务器 2.登陆用户名和密码 3.发送指定邮件内容 4.退出SMTP连接 一.发送纯文本格式邮件 1 #coding:utf-8 2 import sys 3 reload(sys) 4 sys.setd

python自动发送邮件

Python 的 smtplib 模块提供了发送电子邮件的功能.测试报告出来后,然后就把报告发送到邮箱. 一.先来看简单的列子 使用QQ邮箱发送邮件,使用的是授权码,需要先到QQ邮箱申请授权码. 邮箱设置-->账户 # coding:utf-8 import smtplib from email.mime.text import MIMEText # 参数配置 smtpserver = "smtp.qq.com" # 发送邮件的服务器 port = 465 # 端口 sender

python+selenium 发送邮件

import time from selenium import webdriver from selenium.webdriver import ChromeOptions from selenium.webdriver.common.keys import Keys from getpass import getpass def run(): driver.get(url='https://mail.qq.com/') # 遇到iframe,需要切换 iframe_list = driver

在服务器上使用python自动获取zabbix上图形并发送邮件

由于某些需求,需要每天发送邮件给相关人员,其中包含前一天的zabbix监控图形,每天登陆并手动发送的话很麻烦. 本着简单重复的工作交给机器做的原则,写了个python程序自动获取图形并发送. 大致的思路是: 模拟登陆zabbix ---> 找到需要的图像并下载到本地 --->使用python发送邮件 一.在服务器上模拟登陆zabbix,并且将需要的图像下载到本地 #!/usr/bin/env python # -*- coding:utf-8 -*- import HTMLParser imp

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

*注意:全文代码可左右滑动观看 在运维开发中,使用 Python 发送邮件是一个非常常见的应用场景.今天一起来探讨一下,GitHub 的大牛门是如何使用 Python 封装发送邮件代码的. 一般发邮件方法 SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. 我们以前在通过Python实现自动化邮件功能的时候是这样的: import smtplibfrom email.mime.text import MIMETextfrom email

Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP

前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itools安装.对于没有iPhone真机的小伙伴,想在iOS模拟器上安装app测试可不是那么容易的事情. 一.启动iOS Simulator 1.Xcode>Open Developer Tool>iOS Simulator,打开后在hardware里面选对应的iPhone版本就能启动模拟器了 2.第二