pytest+allure的接口测试报告【发送邮件】
更多详情-见完整的接口自动化测试框架:
https://blog.csdn.net/qq_42846555/article/details/126974870
部分代码如下:
import yagmail
from common.logger import Logger
import zipfile
import os
class EmailServe:
@staticmethod
def zip_report(file_path: str, out_path: str):
"""
压缩指定文件夹
:param file_path: 目标文件夹路径
:param out_path: 压缩文件保存路径+xxxx.zip
:return: 无
"""
#file_path = f"{file_path}/test_report"
zip = zipfile.ZipFile(out_path, "w", zipfile.ZIP_DEFLATED)
for path, dirnames, filenames in os.walk(file_path):
# 去掉目标跟路径,只对目标文件夹下边的文件及文件夹进行压缩
fpath = path.replace(file_path, '')
for filename in filenames:
zip.write(
os.path.join(
path, filename), os.path.join(
fpath, filename))
zip.close()
@staticmethod
def send_email(setting: dict, file_path,result_data_test):
"""
入参一个字典
:param user: 发件人邮箱
:param password: 邮箱授权码
:param host: 发件人使用的邮箱服务 例如:smtp.163.com
:param contents: 内容
:param addressees: 收件人列表
:param title: 邮件标题
:param enclosures: 附件列表
:param file_path: 需要压缩的文件夹
:return:
"""
Logger.info('开始将allure报告压缩zip包')
EmailServe.zip_report(
file_path=file_path,
out_path=setting['enclosures'])
Logger.success('压缩打包allure报告完成')
yag = yagmail.SMTP(
setting['user'],
setting['password'],
setting['host'])
# 发送邮件
Logger.info('开始发送邮件……')
yag.send(
setting['addressees'],
setting['title'],
result_data_test,
setting['enclosures'])
# setting['contents']
# 关闭服务
yag.close()
Logger.success("邮件发送成功!")
#
# if __name__ == '__main__':
# EmailServe.zip_report('../target/allure-report', '../allure-report.zip')
# file_path='../allure-report.zip'
# from common.read_file import ReadFile
#
# setting = ReadFile.read_config('$.email')
#EmailServe.send_email(setting,file_path)
<meta charset="UTF-8">
本邮件由系统自动发出,无需回复!<br/>
各位领导,同事好,以下为<font color="#b4532a"><b>【${PROJECT_NAME}】</b></font>项目接口自动化测试概况如下:<br/>
<font color="#b4532a"><b>执行成功率: ${_SUCCESS_RATE}</b></font><br/>
<b><font color="#0B610B">接口自动化测试概况:</font></b>
<hr size="2" width="100%" align="center"/>
<ul>
<li><font color="#0c212b"><b>用例总数 : ${_TOTAL}</b></font></li>
<li><font color="#1d953f"><b>通过用例数 : ${_PASSED}</b></font></li>
<li><font color="#ffc20e"><b>异常用例数 : ${_ERROR}</b></font></li>
<li><font color="#aa2116"><b>失败用例数: ${_FAILED}</b></font></li>
<li><font color="#8a8c8e"><b>跳过用例数: ${_SKIPPED}</b></font></li>
<li><font color="#1b315e"><b>用例执行时长: ${_TIMES}</b></font></li>
<li><font color="#b4532a"><b>用例成功率 : ${_SUCCESS_RATE}</b></font></li>
</ul>
<b><font color="#0B610B">查看附件报告方法:</font></b>
<hr size="2" width="100%" align="center"/>
1.解压allure-report.zip(接口测试报告)后,进入解压目录,运行Start_server.bat(需要有python环境)<br/>
2.出现“Serving HTTP on 0.0.0.0 port 5188 (http://0.0.0.0:5188/) ...”表示服务启动完成<br/>
<b>完成以上2步查看报告详情:</b> <a href="http://127.0.0.1:5188/allure-report">http://127.0.0.1:5188/allure-report</a><br/>