Allure04-用例失败截图
使用pytest_runtest_makereport钩子函数实现allure报告添加用例失败截图
以下是conftest.py实现内容
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 作者:扶摇
import allure
import pytest
from selenium import webdriver
# 浏览器预置fix
@pytest.fixture()
def browser():
global driver
# 01 用例前置操作
driver = webdriver.Chrome()
# 移动窗口
driver.set_window_position(1950,-150)
driver.set_window_size(1200,1000)
# 02 用例执行,返回driver
yield driver
# 03 用例后置,关闭浏览器
driver.quit()
# 用于收集用例的执行信息
@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport():
# 获取用例执行结果,yield,返回一个result对象
out = yield
"""
从result对象out获取调用结果的测试报告,返回report对象
report对象的属性
包括when(setup,call,teardown三个值)、nodeid(测试用例的名字)
outcome(用例执行的结果,passed,failed)
"""
report = out.get_result()
# 仅仅获取call阶段的执行结果,不包含setup/teardown
if report.when == "call":
# 获取用例call执行结果为失败的情况
xfail = hasattr(report,"wasxfail")
if(report.skipped and xfail) or (report.failed and not xfail):
# 添加allure报告截图
with allure.step("添加失败截图。。。"):
# 使用allure自带的添加附件的方法,三个参数分别为:源文件、文件名、文件类型
allure.attach(driver.get_screenshot_as_png(),"失败截图",allure.attachment_type.PNG)
测试技术交流请联系我
备注CSDN扶摇
【学习软件测试/Python自动化测试技术/领取Python自动化测试学习路线图/简历优化】
视频链接:
课程服务介绍
加微信(备注CSDN扶摇)即可免费领取下面的自动化测试资料和一份软件测试面试宝典