pytest(九)

html报告+错误截图

首先我们通过pip安装html插件

>  pip install pytest-html

运行的命令就是在正常的命令后边加上     --html=test.html  也就是

> pytest --html=test.html    

这样生成的报告 test.html  就会自动生成在同级目录下,如果想指定目录的话也可以:

> pytest --html=./report/test.html

这样就会在同级目录中建立个 report 文件夹,test.html会生成在文件夹当中!上面方法生成的报告,css是独立的,分享报告的时候样式会丢失,为了更好的分享发邮件展示报告,可以把css样式合并到html里

> pytest --html=report.html --self-contained-html

失败截图可以直接写到conftes.py中,如下:

import pytest
import time
from selenium import webdriver


@pytest.mark.hookwrapper
def pytest_runtest_makereport(item):
    """
    当测试失败的时候,自动截图,展示到html报告中
    """
    pytest_html = item.config.pluginmanager.getplugin('html')
    outcome = yield
    report = outcome.get_result()
    extra = getattr(report, 'extra', [])

    if report.when == 'call' or report.when == "setup":
        xfail = hasattr(report, 'wasxfail')
        if (report.skipped and xfail) or (report.failed and not xfail):
            file_name = report.nodeid.replace("::", "_")+".png"
            screen_img = _capture_screenshot()
            if file_name:
                html = '<div><img src="https://img-blog.csdnimg.cn/2022010621212692260.png" 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 _capture_screenshot():
    '''
    截图保存为base64,展示到html中
    :return:
    '''
    return driver.get_screenshot_as_base64()

@pytest.fixture(scope='session')
def dri(request):
    global driver
    driver = webdriver.Chrome()
    def end():
        driver.quit()
    request.addfinalizer(end)
    return driver
import pytest
import time

@pytest.mark.webtest
def test_1(dri,start):
    '''
    搜索python
    '''
    print('搜索python')
    dri.find_element_by_id('kw').send_keys('python')
    dri.find_element_by_id('su').click()
    time.sleep(5)
    #直接断言失败
    assert 1 == 2

命令运行         > pytest -m webtest --html=./teport/test1.html --self-contained-html

生成的报告如下:

失败重试

首先我们要pip安装插件

> pip install pytest-rerunfailures

失败重试只需要在命令运行的时候加上   --reruns n (n代表的是数字,也就是失败重试几次)

> pytest --reruns 2

上述命令代表的意思就是失败后重试2次

通过上述报告我们发现,第一条信息是第三次运行的结果,第二条是第一次运行的结果,第三条是第二次运行的结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值