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

server/2024/12/29 8:31:28/

测试报告需要发送给相关人员,但每次都要在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_dirdef sendmail():host = 'smtp.qq.com'sender = '****@qq.com'  # 发送方邮件地址passwd = '****'  # 发送方密码  需要在邮箱设置中开启SMTP服务 并获取授权码,此处是填写获取的授权码receiver = '****@qq.com'  # 接收报告方邮件地址msg = MIMEMultipart()msg['from'] = sendermsg['to'] = receivermsg['subject'] = '主题'msg.attach(MIMEText('邮件正文'))import osprint(os.path.abspath(__file__))att1 = MIMEText(uiltin">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 sendmailtestdir = "./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/{}".uiltin">format(report_name)if __name__ == '__main__':with uiltin">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()

http://www.ppmy.cn/server/154150.html

相关文章

第十六届蓝桥杯模拟赛(第一期)-Python

本次模拟赛我认为涉及到的知识点: 分解质因数 Python的datetime库 位运算 简单dp 1、填空题 【问题描述】 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问 2024 有多少个质因数。 【答案提交】 这是一道结…

【Flink-Scala】DataStream编程模型之数据源、数据转换、数据输出

Flink之DataStream数据源、数据转换、数据输出(scala) 0.前言–数据源 在进行数据转换之前,需要进行数据读取。 数据读取分为4大部分: (1)内置数据源; 又分为文件数据源; socket…

Android okhttp 网络链接各阶段监控

步骤 1: 添加依赖 在项目的 build.gradle 文件中,添加 OkHttp 依赖: implementation com.squareup.okhttp3:okhttp:4.11.0 步骤 2: 创建自定义的 EventListener 创建一个自定义的 EventListener 类: import android.util.Log import okht…

STM32 | ESP8266 服务器与客户端

先看懂模块的原理图 关于四个引脚(GPIO2,、GPIO0、CH_PO和CPIO16(RST))的定义如下:(是我自己收集的信息,肯定有不完整的部分。希望大家指正) GPIO0:当为高电平时代表从…

JSP 标签库

JSP 标签库是 Java Server Pages (JSP) 中的一种重要功能,它提供了一组可重用的标签,简化了在 JSP 页面中实现常见操作的过程。以下是有关 JSP 标签库的详细介绍,包括 JSTL(JavaServer Pages Standard Tag Library)和其…

ubuntu安装nginx

本文档适用于在Ubuntu20.04系统下部署nginx 一、使用apt-get命令安装nginx 注:以下命令都是在root用户下使用 1. 检查是否存在apt命令 apt –version 说明:出现版本号就说明当前环境存在apt 2. 更新apt命令 apt update 3. 安装nginx apt-get ins…

新书速览|鸿蒙之光HarmonyOS NEXT原生应用开发入门

《鸿蒙之光HarmonyOS NEXT原生应用开发入门》 1 本书内容 《鸿蒙之光HarmonyOS NEXT原生应用开发入门》以HarmonyOS NEXT版本为核心,从基础知识到实战案例,引领读者逐步探索“纯血鸿蒙”原生开发的奥秘。全书共16章,内容涵盖HarmonyOS架构、…

vue+elementui实现下拉表格多选+搜索+分页+回显+全选2.0

一、vueelementui实现下拉表格多选搜索1.0 二、vueelementui实现下拉表格多选搜索分页回显全选2.0 在1.0的基础上,终于可以实现在下拉框表格分页的前提下不同页码的回显辣,分页是前端来分页的(代码略乱且没有封装还很长,随便看看…