【10】Selenium+Python UI自动化测试 邮件发送测试报告(某积载系统实例-04)

测试报告需要发送给相关人员,但每次都要在report目录下去复制太麻烦,可以使用邮件模块自动将生成的报告发送给相关人员

1、 新增utils文件夹,用于存放工具文件

在utils下新增sendmail.py文件

代码
sendmail.py

python 复制代码
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from Test.pythonProject.test_selenium_pjz.run import report_dir


def sendmail():
    host = 'smtp.qq.com'
    sender = '****@qq.com'  # 发送方邮件地址
    passwd = '****'  # 发送方密码  需要在邮箱设置中开启SMTP服务 并获取授权码,此处是填写获取的授权码
    receiver = '****@qq.com'  # 接收报告方邮件地址

    msg = MIMEMultipart()
    msg['from'] = sender
    msg['to'] = receiver
    msg['subject'] = '主题'
    msg.attach(MIMEText('邮件正文'))
    import os
    print(os.path.abspath(__file__))
    att1 = MIMEText(open(report_dir, 'rb').read().decode('utf-8'), 'base64', 'utf-8')
    att1["Content-Type"] = 'application/octet-stream'
    # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
    att1["Content-Disposition"] = 'attachment; filename="report.html"'
    msg.attach(att1)

    try:
        smtpobj = smtplib.SMTP_SSL(host, port=465)#我使用的是QQ邮箱 所以用这个方法,不同的邮箱,这个方法可能不同,如果使用错误的方法,可能会导致连接关闭问题,无法发送邮件
        smtpobj.login(sender, passwd)
        smtpobj.sendmail(sender, receiver, msg.as_string())
        smtpobj.quit()
        print('send success')
    except smtplib.SMTPException as e:
        print(e)
        print('send err')

2、 修改run.py 调用sendmail函数
代码
run.py

python 复制代码
import unittest
import time
from HTMLTestRunner import HTMLTestRunner
from Test.pythonProject.test_selenium_pjz.utils import sendmail

testdir = "./cases"
discover = unittest.defaultTestLoader.discover(start_dir=testdir, pattern='test*.py')
cur_time = time.strftime('%Y-%m-%d %H_%M_%S', time.localtime(time.time()))
report_name = "HTMLReport"+cur_time+".html"
report_dir="./report/{}".format(report_name)

if __name__ == '__main__':

    with open(report_dir, 'w', encoding='utf-8') as f:
        runner = HTMLTestRunner.HTMLTestRunner(stream=f,
                                title='pjz测试报告名称',
                                description='pjz 测试描述信息',
                                verbosity=2)
        runner.run(discover)

    sendmail.sendmail()
相关推荐
第九序言T9 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
Java后端的Ai之路9 小时前
CAS并发控制-从CPU指令到企业级乐观锁
vue.js·人工智能·python·cas·乐观锁
qq_426003969 小时前
UI自动化高频次登录login限流解决方案
python·ui·自动化
Sakura_j_h_10 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
quantdash_cc11 小时前
如何验证历史行情的交易日期是否完整覆盖研究区间?
python·数据分析·pandas·量化交易·股票数据·quantdash
I Am a robert girl11 小时前
当智能体学会“串通”:从长程交互中读懂涌现式合谋
python·多智能体系统·多智能体协作·llm agent·涌现式合谋·对齐问题·激励机制设计
云和数据.ChenGuang12 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
专注仿真12 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
wflynn13 小时前
GitHub 今日推荐|Edge0:让大号 MoE 模型在一台 Mac 上流式跑起来
python·开源·github
2601_9679801113 小时前
python之用scapy分层解析pcap报文(Ethernet帧、IP数据包、TCP数据包、UDP数据包、Raw数据包)
python·scapy·pcap·协议分析·网络数据包