前言
小编在搭建组内接口自动化框架过程中使用过两个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安装
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发送邮件
"""
: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报告
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()
cc = [""]
ExSendEmail.SendMail(To=receiver, Title="【奇点广告】
接口自动化测试
报告", mail_msg=message, Cc=cc)
except Exception as e:
log.error('发送邮件失败,请检查邮件配置')
raise
|
3.测试报告展示
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理