代码拉取完成,页面将自动刷新
同步操作将从 eddiewang-wgq/python3_interface 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
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) # 通过邮件发送测试报告的
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。