Python接口自动化-Pytest-Html

2020/05/11 18:58
阅读数 380

前言

  小编在搭建组内接口自动化框架过程中使用过两个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="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: 无法发送邮件")
  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 = ["chenpeng01@sogou-inc.com"]        cc = [""]        ExSendEmail.SendMail(To=receiver, Title="【奇点广告】接口自动化测试报告", mail_msg=message, Cc=cc)    except Exception as e:        log.error('发送邮件失败,请检查邮件配置')        raise
  3. 测试报告展示





搜狗测试微信号:Qa_xiaoming

搜狗测试QQ粉丝群:459645679




本文分享自微信公众号 - 搜狗测试(SogouQA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部