pytest学习08--html报告报错截图+失败重跑

前言:

  做web自动化的小伙伴应该都希望在html报告中显示失败后的截图,提升报告的档次,pytest-html也可以生成带截图的报告

conftest.py

1、失败截图可以写到conftest.py文件里,这样用例运行时,只要检测用到用例实例,就调用截图的方法,并且把截图保存到html报告上

 

# !/usr/bin/env python
# -*-coding:utf-8 -*-
# conftest.;py文件 """ # File : conftest.py # Time :2021/11/20 14:35 # Author :author Kong_hua_sheng_25304 # version :python 3.8 # Description: """ from selenium import webdriver import pytest driver: webdriver.Chrome = None @pytest.mark.hookwrapper def pytest_runtest_makereport(item): """ 当测试失败时,自动截图,展示到html报告中 :param item: :return: """ pytest_html = item.config.pluginmanager.getplugin('html') outcome = yield report = outcome.get_result() extra = getattr(report,'extra',[]) print("type item: ",type(item)) print("type report: ",type(report)) print("extra:",extra) if report.when == 'call' or report.when == 'setup': xfail = hasattr(report,'wasfail') if (report.skipped and xfail) or (report.failed and not xfail): file_name = report.nodeid.replace("::","_")+".png" screen_img = _capter_screenshot() if file_name: html = '<div><img src="data:image/png;base64,%s" alt="screenshot" style="width:600px;height:300px;" ' \ 'onclick="window.open(this.src)" align="right"/></div>' % screen_img extra.append(pytest_html.extras.html(html)) report.extra = extra def _capter_screenshot(): """ 截图保存为base64,展示到html中 :return: """ return driver.get_screenshot_as_base64() @pytest.fixture(scope='session',autouse=True) def browser(): global driver if driver is None: driver = webdriver.Chrome() return driver

  

# test_01.py文件
import time
import pytest
from selenium import webdriver


def test_yoyo_01(browser):
    """
    :type browser: webdriver.Chrome
    """
    browser.get("https://www.cnblogs.com/yoyoketang/")
    time.sleep(3)
    t = browser.title
    assert t == "上海-悠悠"
    browser.close()

  报告展示内容:

在CMD终端执行:pytest -s test_o1.py --html=report.html --self-contained-html

生成的报告如下:

 

 

 

失败重试:

用例失败再重测1次,命令行加个参数--rerun就可以了

pytest --reruns 2 -s test_o1.py --html=report.html --self-contained-html

posted @ 2021-11-20 16:01  GalaxyStar  阅读(375)  评论(0编辑  收藏  举报