前言
Pytest-HTML介绍
Github源码地址
https://github.com/pytest-dev/pytest-html
pip安装
pip install pytest-html
执行方法
pytest --html=report.html
执行完后会在当前目录生成一个report.html的报告文件
指定报告路径
加入目标目录即可
pytest --html=./report/html/report.html
报告独立展示
上面生成的报告,css是独立的,分享报告邮件的时候样式就会丢失,不好阅读,也无法筛选。
为了更好的展示测试报告,可以把css样式合并到HTML里。
pytest --html=report.html --self-contained-html
失败重试
失败重试依赖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在接口框架中的使用
Python SMTP发送邮件
def SendMail(To, Title, mail_msg, From="test@sogou-inc.com", 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: 无法发送邮件")
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 = ["chenpeng01@sogou-inc.com"]
cc = [""]
ExSendEmail.SendMail(To=receiver, Title="【奇点广告】接口自动化测试报告", mail_msg=message, Cc=cc)
except Exception as e:
log.error('发送邮件失败,请检查邮件配置')
raise
测试报告展示
搜狗测试微信号:Qa_xiaoming
搜狗测试QQ粉丝群:459645679
本文分享自微信公众号 - 搜狗测试(SogouQA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。