您的位置 首页 > 腾讯云社区

Python接口自动化-Pytest-Html---软测小生

小编在搭建组内接口自动化框架过程中使用过两个HTML报告框架,Pytest-HTML和Allure,本文主要介绍下Pytest-HTML。

Pytest-HTML是个插件,Pytest用于生成测试结果的HTML报告,兼容Python2.7和Python3.6。

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

测试报告展示 ---来自腾讯云社区的---软测小生

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: