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 videos en Allure Report con Pytest y Playwright ​

La lectura de los resultados de las pruebas debe ser un proceso rápido, permitiendo al lector comprender los fallos sin necesidad de examinar el código, ejecutar un depurador o interrumpir a sus compañeros de equipo. Para lograr esto, los informes de prueba deben presentar información detallada de manera concisa y accesible. Aunque adjuntar capturas de pantalla y registros es una práctica estándar, a veces no es suficiente.

En estos casos, grabar un video de la ejecución de la prueba puede ser invaluable. Los videos mejoran la reproducción de problemas, aceleran la depuración y ayudan en el análisis automatizado de pruebas. También mejoran la precisión de la documentación al capturar errores intermitentes.

En esta guía, configuraremos pruebas con Pytest, las grabaremos usando Pytest Playwright y adjuntaremos videos a los informes en Allure Report.

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

Ejemplo de código ​

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

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 complemento Pytest Playwright a tu proyecto. Por ejemplo, si usas pip:
shell
pip install pytest-playwright

2. Grabación de videos con Playwright Pytest ​

Playwright Pytest graba videos en el contexto del navegador y los guarda como archivos WebM. Para iniciar la grabación manualmente, puedes crear un contexto de navegador con el método new_context() del objeto Browser y pasarle el parámetro record_video_dir, por ejemplo:

python
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # Crear un navegador
    browser = p.chromium.launch()
    # Iniciar un contexto de navegador con grabación de video
    context = browser.new_context(record_video_dir="path/to/videos")

    page = context.new_page()
    page.goto("https://playwright.dev")

3. Videos automáticos en caso de fallo ​

Para guardar automáticamente el video en caso de fallo en una prueba, configura la opción --video en retain-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 = [
    ...
    "--video", "retain-on-failure",
]

Para cada prueba, Playwright Pytest crea un subdirectorio en el directorio test-results y guarda allí el video correspondiente.

4. Adjuntar videos a un informe de Allure ​

Si bien capturar videos es útil para diagnosticar fallos en las pruebas, verlos por separado puede ser ineficiente. Cuando los datos de prueba están dispersos en múltiples ubicaciones, identificar y resolver problemas se vuelve más tedioso y consume más tiempo.

Para optimizar este proceso, los videos deben adjuntarse directamente a los informes de Allure, asegurando que toda la información relevante de la prueba esté consolidada en un solo lugar para facilitar el análisis y la solución de problemas.

Allure Report muestra los videos dentro de la prueba en la que fueron grabados, junto con mensajes de error y otros archivos adjuntos, proporcionando todo lo necesario para analizar los resultados de las pruebas de manera efectiva.

Adjuntar videos en Allure Report con Pytest

Para agregar un archivo de video local a Allure Report, usa la función allure.attach.file():

python
import allure

allure.attach.file(
    "file_name.webm",
    name="video attachment",
    attachment_type=allure.attachment_type.WEBM
)

Para adjuntar automáticamente un video local en cada fallo de prueba, puedes escribir un hook en el archivo conftest.py ubicado en el directorio raíz de pruebas de tu proyecto. Suponiendo que configuraste la opción --video como se describe en la sección Videos automáticos en caso de fallo, el hook puede buscar los videos guardados y adjuntarlos al informe de Allure. Por ejemplo:

python
# Contenido de conftest.py
import pathlib
import allure
import pytest


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

    try:
        # Obtener el directorio de la prueba
        artifacts_dir = item.funcargs.get("output_path")
        if artifacts_dir:
            artifacts_dir_path = pathlib.Path(artifacts_dir)
        
            if artifacts_dir_path.is_dir():
                for file in artifacts_dir_path.iterdir():
                    # Buscar el archivo de vídeo y adjuntarlo al Allure Report
                    if file.is_file() and file.suffix == ".webm":
                        allure.attach.file(
                            file,
                            name=file.name,
                            attachment_type=allure.attachment_type.WEBM,
                        )

    except Exception as e:
        print(f"Error al adjuntar el vídeo: {e}")

5. Otros tipos de adjuntos ​

Allure Report también puede manejar otros tipos de archivos adjuntos, como imágenes, 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 automáticamente algunos elementos:

  1. Todo lo que se envíe a sys.stdout, por ejemplo, print(...)
  2. Todo lo que se envíe a sys.stderr, por ejemplo, print(..., file=sys.stderr)
  3. Registros de logging, por ejemplo, logging.warning(...)

Estos datos se adjuntan como pseudoarchivos al informe:

Adjuntos automáticos en Allure Report con Pytest

Si no deseas que estos adjuntos automáticos de Pytest aparezcan en el informe, usa la opción --allure-no-capture.

Si deseas aprender cómo adjuntar capturas de pantalla, consulta la guía sobre adjuntos con Pytest y Playwright y la documentación sobre tipos de adjuntos.

6. Conclusión ​

Con Pytest y Playwright, puedes grabar videos de tus pruebas para obtener la máxima visibilidad de su ejecución. Allure Report te permite ver esos videos junto con otros tipos de adjuntos (capturas de pantalla, texto, documentos, tablas) dentro del caso de prueba correspondiente, proporcionando al lector la mayor cantidad de datos posibles para resolver fallos.

Pager
Previous pagePytest & Playwright: capturas de pantalla y adjuntos
Next pageParametrización en Playwright
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.