添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
坚强的板栗  ·  Begell House - ...·  2 月前    · 
粗眉毛的高山  ·  Migrate subscriptions ...·  2 月前    · 
要出家的台灯  ·  Oauth2 integration ...·  5 月前    · 
前言
小编在搭建组内接口自动化框架过程中使用过两个HTML报告框架,Pytest-HTML和Allure,本文主要介绍下Pytest-HTML。
Pytest-HTML是个插件,Pytest用于生成 测试 结果的HTML报告,兼容Python2.7和Python3.6。
Pytest-HTML介绍
1.Github源码地址
https://github.com/pytest-dev/pytest-html
2.pip安装
pip install pytest-html
3.执行方法
pytest --html=report.html
执行完后会在当前目录生成一个report.html的报告文件
4.指定报告路径
加入目标目录即可
pytest --html=./report/html/report.html
5.报告独立展示
上面生成的报告,css是独立的,分享报告邮件的时候样式就会丢失,不好阅读,也无法筛选。
为了更好的展示测试报告,可以把css样式合并到HTML里。
pytest --html=report.html --self-contained-html
6.失败重试
失败重试依赖pytest-rerunfailures插件
pip install pytest-rerunfailures
用例失败再重跑一次,需要再命令行加参数--reruns
reruns参数有2个用法:
--reruns=RERUNS RERUNS是失败重跑的次数,默认为0
--reruns-delay=RERUNS_DELAY  RERUNS_DELAY是失败后间隔多少s重新执行。
pytest --reruns 1 -html=report.html --self-contained-html
Pytest-HTML在接口框架中的使用
1.Python SMTP发送邮件
def SendMail(To, Title, mail_msg, From="[email protected]", Cc=None):
"""
:param From: 发件人
:param To: 收件人
:param Cc: 抄送
:param Title: 邮件标题
:param mail_msg: 邮件内容(可以是html,或文本)
:return:
"""
message = MIMEText(mail_msg, 'html', 'utf-8')
message['From'] = Header(From, 'utf-8')
message['To'] = Header("; ".join(To), 'utf-8')
if Cc is not None:
message['Cc'] = Header("; ".join(Cc), 'utf-8')
message['Subject'] = Header(Title, 'utf-8')
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(From, To, message.as_string())
print("邮件发送成功")
except smtplib.SMTPException:
print("Error: 无法发送邮件")
2.Pytest-HTML执行、邮件发送
# 利用pytest-html生成html报告
shell = Shell()
cmd = 'pytest --reruns 1 --html=report/html/report.html --self-contained-html'
# 邮件发送
try:
file_name = html_report_path + '/' + 'report.html'
f = open(file_name, 'rb')
message = f.read()
f.close()
receiver = ["[email protected]"]
cc = [""]
ExSendEmail.SendMail(To=receiver, Title="【奇点广告】 接口自动化测试 报告", mail_msg=message, Cc=cc)
except Exception as e:
log.error('发送邮件失败,请检查邮件配置')
raise
3.测试报告展示

本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理