Appium+python 自动发送邮件

Posted fancy0158

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium+python 自动发送邮件相关的知识,希望对你有一定的参考价值。

移动端执行完测试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)

收到的邮件如下:

技术分享图片

 

以上是关于Appium+python 自动发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

用python实现自动发邮件的功能

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

Python十几行代码实现邮件自动发送

Python如何一行代码自动发邮件

Gmail 邮箱python自动发送邮件

python QQ邮箱自动发送邮件