1 Star 0 Fork 1

王朝/python3_interface

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
run_this.py 3.41 KB
一键复制 编辑 原始数据 按行查看 历史
eddiewang-wgq 提交于 2021-03-31 15:10 . Initial commit
import smtplib
import unittest
import time
import os
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from public import HTMLTestRunner
""" 该函数功能是获最新的HTML测试报告"""
def get_report(file):
# dir指报告所在目录,listdir()方法是获取dir目录下所有文件和文件夹的列表
lists = os.listdir(file)
# 对列表进行排序,以创建时间顺序排序
lists.sort(key=lambda fn: os.path.getatime(file + "\\" + fn))
# 获取列表最后一个元素,即最新的HTML测试报告,再和目录dir拼接得到测试报告文件的路径
file_name = os.path.join(file, lists[-1])
# 返回获取到的测试报告文件的路径
return file_name
""" 该函数功能是通过邮件发送测试报告"""
def send_email(file_name):
# 定义发送邮件的服务器主机
mail_host = 'smtp.163.com'
# 定义发送邮件账号和密码
mail_user = 'xxx@163.com'
mail_pass = 'xxxxxx'
# 定义接收邮件的账号
recivers = ['xxxxxx@163.com']
# 定义发送邮件的类型,'related'类型是可以携带附件
message = MIMEMultipart('related')
# 打开报告文件并读取文件内容作为邮件的内容
f = open(file_name, 'rb')
mail_body = f.read()
# 定义发送邮件附件的格式
att = MIMEText(mail_body, 'base64', 'utf-8', )
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment;filename="report.html"' # 定义附件名称
# 为邮件加载附件
message.attach(att)
f.close() # 关闭文件读取流
# 定义发送邮件内容的格式
msg = MIMEText(mail_body, 'html', 'utf-8')
# 为邮件加载邮件内容
message.attach(msg)
# 指定发送邮件的账号
message['Form'] = mail_user
# 指定接收邮件的账号
message['To'] = ','.join(recivers)
# 定义邮件的标题
message['Subject'] = Header('接口自动化测试报告', 'utf-8')
# 邮件传输协议
smtp = smtplib.SMTP()
# 连接服务器主机
smtp.connect(mail_host)
# 登录发送邮件的账号
smtp.login(mail_user, mail_pass)
# 发送邮件
smtp.sendmail(mail_user, recivers, message.as_string())
smtp.quit()
if __name__ == '__main__':
# 测试用例所在文件夹
test_dir = 'F://git//python3_interface-master//test_case'
# 自动识别用例,得到测试套件对象
discover = unittest.defaultTestLoader.discover(test_dir, pattern='*_test.py')
# 设置时间的格式
now_time = time.strftime('%Y-%m-%d %H-%M-%S')
# 在目录demo_report下创建一个.html格式的文件,以当前时间命名
filename = 'F://git//python3_interface-master//test//' + now_time + '_test_result.html'
# 以“wb”方式打开文件,如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
fp = open(filename, 'wb')
# 调用写好的HTMLTestRunner指定生成报告的文件、标题和副标题
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title='Demo Test Report',
description='这是测试demo的测试报告:')
# 执行测试用例集并生成报告
runner.run(discover)
# 关闭文件流
fp.close()
# rep = get_report('./test_report')
# send_email(rep) # 通过邮件发送测试报告的
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/chaocheng_king/python3_interface.git
git@gitee.com:chaocheng_king/python3_interface.git
chaocheng_king
python3_interface
python3_interface
master

搜索帮助