Skip to content
Allure report logoAllure Report
Main Navigation MódulosDocumentaciónStart

Español

English

Español

English

Appearance

Sidebar Navigation

Introducción

Instalación y Actualización

Instalación para Windows

Instalación para macOS

Instalación para Linux

Instalación para Node.js

Actualización

Primeros pasos

Cómo ver un informe

Mejorar la legibilidad de informes

Mejorar la navegación en informe

Funcionalidades

Pasos de prueba

Adjuntos

Estados de prueba

Ordenar y filtrar

Categorías de defectos

Análisis visual

Análisis de estabilidad de prueba

Historial y reintentos

Cronología

Exportar a CSV

Exportar métricas

Guías

Parametrización JUnit 5

JUnit 5 & Selenide: capturas de pantalla y adjuntos

JUnit 5 & Selenium: capturas de pantalla y adjuntos

Configurar JUnit 5 con GitHub Actions

Parametrización en Pytest

Pytest & Selenium: capturas de pantalla y adjuntos

Pytest & Playwright: capturas de pantalla y adjuntos

Pytest & Playwright: videos

Parametrización en Playwright

Cómo funciona

Visión general

Archivo de resultados de prueba

Archivo de contenedor

Archivo de categorías

Archivo de entorno

Archivo de ejecutor

Archivos de historial

Integraciones

Azure DevOps

Bamboo

GitHub Actions

Jenkins

IDEs de JetBrains

TeamCity

Visual Studio Code

Frameworks

Behat

Empezando

Configuración

Referencia

Behave

Empezando

Configuración

Referencia

Codeception

Empezando

Configuración

Referencia

CodeceptJS

Empezando

Configuración

Referencia

Cucumber.js

Empezando

Configuración

Referencia

Cucumber-JVM

Empezando

Configuración

Referencia

Cucumber.rb

Empezando

Configuración

Referencia

Cypress

Empezando

Configuración

Referencia

Jasmine

Empezando

Configuración

Referencia

JBehave

Empezando

Configuración

Referencia

Jest

Empezando

Configuración

Referencia

JUnit 4

Empezando

Configuración

Referencia

JUnit 5

Empezando

Configuración

Referencia

Mocha

Empezando

Configuración

Referencia

Newman

Empezando

Configuración

Referencia

NUnit

Empezando

Configuración

Referencia

PHPUnit

Empezando

Configuración

Referencia

Playwright

Empezando

Configuración

Referencia

pytest

Empezando

Configuración

Referencia

Pytest-BDD

Empezando

Configuración

Referencia

Reqnroll

Empezando

Configuración

Referencia

REST Assured

Empezando

Configuración

Robot Framework

Empezando

Configuración

Referencia

RSpec

Empezando

Configuración

Referencia

SpecFlow

Empezando

Configuración

Referencia

Spock

Empezando

Configuración

Referencia

TestNG

Empezando

Configuración

Referencia

Vitest

Empezando

Configuración

Referencia

WebdriverIO

Empezando

Configuración

Referencia

xUnit.net

Empezando

Configuración

Referencia

On this page

Integración de capturas de pantalla en Allure Report con Pytest y Playwright ​

La interpretación de los resultados de las pruebas debe ser rápida y sencilla, permitiendo que la causa raíz de un fallo sea inmediatamente clara sin necesidad de inspeccionar el código, depurar o solicitar asistencia externa.

Para lograr esto, los informes de prueba deben presentar información detallada en un formato conciso y accesible. Incorporar capturas de pantalla es una forma efectiva de proporcionar contexto visual a los fallos de prueba. Esta guía explica cómo capturar capturas de pantalla en Pytest con Playwright e integrarlas en Allure Report para mejorar la legibilidad y el análisis.

1. Preparación ​

Requisitos previos ​

Asegúrate de cumplir con los siguientes requisitos previos:

  • Python instalado
  • Allure Report instalado

Lista de dependencias ​

Esta guía utiliza los siguientes paquetes:

  • Pytest 8.3.4
  • allure-pytest 2.13.5
  • Pytest-playwright 0.7.0

Código de ejemplo ​

El código completo utilizado en esta guía está disponible en https://github.com/allure-examples/guide-pytest-playwright-screenshots.

Configuración ​

Para ejecutar los ejemplos de esta guía:

  1. Instala Python
  2. Instala Allure Report
  3. Descarga un proyecto nuevo con Pytest desde Allure Start
  4. Agrega el plugin de Playwright para Pytest a tu proyecto. Por ejemplo, si usas pip:
shell
pip install pytest-playwright

2. Capturas de pantalla con Playwright Pytest ​

Para tomar una captura de pantalla con Playwright Pytest en cualquier momento, usa el método screenshot proporcionado por el objeto Page. Para obtener el objeto Page, puedes utilizar el fixture page:

python
def test_example(page):
    page.goto("https://playwright.dev/")
    try:
        assert "Playwright" in page.title()
    except AssertionError:
        page.screenshot(path="path/to/screenshot.png")
        raise

Para tomar una captura de pantalla de un elemento en particular, usa el método screenshot del objeto Locator, por ejemplo:

python
element = page.get_by_role("search") # o como sea que encuentres el elemento  
# tomar la captura de pantalla  
element.screenshot(path="path/to/screenshot.png")

3. Capturas de pantalla automáticas en caso de fallo ​

Para tomar capturas de pantalla automáticamente en cada fallo de prueba, configura la opción --screenshot en only-on-failure en la configuración de Pytest de tu proyecto. Por ejemplo, si usas pyproject.toml como archivo de configuración, agrega lo siguiente:

toml
[tool.pytest.ini_options]
...
addopts = [
    ...
    "--screenshot", "only-on-failure"
]

Ahora, cuando una prueba falle, un archivo de captura de pantalla se guardará automáticamente en el directorio de resultados de prueba de tu proyecto. Playwright Pytest elimina y recrea el directorio en cada ejecución de prueba.

4. Integración con Allure Report ​

Si bien capturar capturas de pantalla es útil para diagnosticar fallos en las pruebas, verlas por separado puede ser ineficiente. Cuando los datos de prueba están dispersos en múltiples ubicaciones, el proceso de identificación y resolución de fallos se vuelve más lento.

Para optimizar este flujo de trabajo, las capturas de pantalla deben adjuntarse directamente a los informes de Allure, asegurando que toda la información relevante de las pruebas esté consolidada en un solo lugar para un análisis y solución de problemas más eficientes.

Allure Report muestra las capturas de pantalla dentro de la prueba en la que fueron tomadas. Allí también se presentan los mensajes de error y otros adjuntos, para que tengas todo lo necesario para analizar los resultados de las pruebas en un solo lugar:

Adjunto de captura de pantalla en Allure Report

Para adjuntar capturas de pantalla a Allure, usa las funciones allure.attach() o allure.attach.file().

Usa allure.attach.file() para adjuntar un archivo existente:

python
import allure
from pathlib import Path

# Adjuntar una captura de una página or de un elemento
def attach_screenshot(pageOrElement, path):
    name = Path(path).name
    pageOrElement.screenshot(path=path)
    allure.attach.file(
        path,
        name=name,
        attachment_type=allure.attachment_type.PNG,
    )

Usa allure.attach() si no necesitas guardar la captura de pantalla en disco:

python
import allure

# Adjuntar una captura de una página or de un elemento
def attach_screenshot(pageOrElement, name):
    allure.attach(
        pageOrElement.screenshot(),
        name=name,
        attachment_type=allure.attachment_type.PNG,
    )

TIP

Cuando necesites adjuntar una captura de pantalla recién tomada, es preferible usar la función allure.attach si es posible. La razón es que cuando guardas una captura de pantalla en el disco, es posible que no esté disponible de inmediato para su lectura debido al almacenamiento en caché del sistema operativo. Si eso sucede, podrías terminar con un archivo vacío adjunto en Allure.

Si también configuras la opción --screenshot como se describe en la sección Capturas de pantalla automáticas en caso de fallo, Playwright Pytest guardará las capturas de pantalla localmente.

Para adjuntar automáticamente capturas de pantalla a Allure en cada fallo de prueba, puedes agregar un hook en el archivo conftest.py en el directorio raíz de pruebas de tu proyecto. El hook puede buscar las capturas de pantalla que Playwright Pytest guardó después de las pruebas fallidas y adjuntarlas al informe de Allure. Por ejemplo:

python
import re
import allure
import pytest

from pathlib import Path

# Una expresión regular para coincidir con los nombres de archivo de las capturas de pantalla tomadas en fallos de prueba
SCREENSHOT_NAME_PATTERN = re.compile(r"^test-failed-\d+\.png$")

@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_teardown(item, nextitem):
    yield

    try:
        artifacts_dir = item.funcargs.get("output_path")
        if artifacts_dir:
            artifacts_dir_path = Path(artifacts_dir)
            if artifacts_dir_path.is_dir():
                for file in artifacts_dir_path.iterdir():
                    if file.is_file() and SCREENSHOT_NAME_PATTERN.match(file.name):
                        allure.attach.file(
                            str(file),
                            name=file.name,
                            attachment_type=allure.attachment_type.PNG,
                        )
    except Exception as e:
        print(f"Error taking screenthot: {e}")

5. Otros tipos de adjuntos ​

Allure Report también puede manejar otros tipos de adjuntos, como texto, tablas, listas de URI o documentos (XML, JSON, YAML). Por ejemplo:

python
allure.attach(
    response_content,
    name="response content",
    attachment_type=allure.attachment_type.XML
)

Allure Pytest adjunta algunos elementos automáticamente:

  1. Todo lo enviado a sys.stdout, por ejemplo, print(...)
  2. Todo lo enviado a sys.stderr, por ejemplo, print(..., file=sys.stderr)
  3. Registros de logging, por ejemplo, logging.warning(...)

Estos resultados se adjuntan al informe como pseudoarchivos:

Adjuntos automáticos en Allure Report con Pytest

Si no deseas que todo esto aparezca en el informe, usa la opción --allure-no-capture.

Allure también te permite adjuntar videos. Puedes consultar la documentación oficial para obtener más información sobre adjuntos con Pytest y tipos de adjuntos.

6. Conclusión ​

Con Pytest y Playwright, puedes capturar capturas de pantalla en cualquier momento durante tus pruebas o configurar Playwright para que las tome automáticamente en caso de fallos. Allure Report combina estas capturas de pantalla junto con otros adjuntos, como texto, documentos, tablas y videos, en una sola vista, proporcionando datos completos para diagnosticar fallos de prueba de manera eficiente.

Pager
Previous pagePytest & Selenium: capturas de pantalla y adjuntos
Next pagePytest & Playwright: videos
Powered by

Únete a nuestro boletín

Allure TestOps
  • Visión general
  • Por qué elegirnos
  • Nube
  • Autoalojado
  • Historias de éxito
Compañía
  • Documentación
  • Blog
  • Sobre nosotros
  • Contacto
  • Eventos
© 2025 Qameta Software Inc. All rights reserved.