Skip to main content

Robot Framework Evidence Reporter

Un HTML autocontenido por caso de Robot Framework, orientado a evidencias de negocio. Registra capturas explícitas, mensajes y metadatos durante la ejecución; genera el HTML después, desde CLI o Python.

Documentación · Documentación de keywords · Ver reporte HTML

Estado de publicación

El código, la documentación y la demo HTML están publicados. La publicación en PyPI se ejecuta mediante GitHub Actions y requiere el Trusted Publisher configurado en la cuenta del propietario. Por ahora se puede instalar desde una revisión Git fija o construir el wheel desde el repositorio.

Instalación

# Disponible después de la primera publicación en PyPI
pip install robotframework-evidence-reporter
poetry add robotframework-evidence-reporter

# Instalación desde el código publicado mientras tanto
pip install "git+https://github.com/angel-valdezzz/robotframework-evidence-reporter.git@main"

Python 3.12 o superior y Robot Framework 7. Para capturar páginas o elementos instala también SeleniumLibrary. La librería reutiliza su navegador activo: no abre otra sesión ni depende de un navegador concreto.

Uso en Robot

*** Settings ***
Library    SeleniumLibrary
Library    EvidenceReporter

*** Test Cases ***
Registrar Cliente
    Open Browser    https://example.test    chrome
    Set Report Metadata    Aplicación=Portal    Ambiente=QA    Ticket=QA-123
    Capture Page Evidence    Formulario de alta
    ${milestone}=    Create Milestone    Cliente registrado
    Capture Element Evidence    css:.confirmation    Confirmación    milestone_id=${milestone}
    Add Evidence Message    El alta fue confirmada.    milestone_id=${milestone}
    [Teardown]    Close All Browsers

Los hitos son opcionales. Sin milestone_id, la evidencia se añade directamente al caso. No se registran automáticamente argumentos ni todos los logs técnicos; añade los mensajes de negocio que necesites.

robot --outputdir results tests
rf-evidence build results/evidence --output reports

Cada caso conserva su estado final de Robot (PASS, FAIL, SKIP), inicio, fin y duración, incluidos fallos del teardown. Un proceso interrumpido antes de guardar el resultado final conserva INCOMPLETE. Las fechas incluyen el offset horario del proceso que las registra.

Capturas y errores

Keyword Captura
Capture Page Evidence Página visible del navegador activo
Capture Element Evidence Elemento usando un locator SeleniumLibrary
Capture Desktop Evidence Escritorio de la máquina donde corre Robot
Attach Image Evidence Copia una imagen PNG, JPEG o WEBP existente

Las capturas fallidas producen WARN por defecto, se registran en el HTML y no cambian el estado del caso. Usa strict=${True} por keyword o strict=${True} al importar la librería para exigir una captura. strict=${False} por keyword permite sobrescribir esa configuración global.

El usuario elige cuándo usar el escritorio. No hay detección automática de headless, remoto ni paralelismo. Pillow ImageGrab necesita un entorno gráfico compatible; en Linux puede requerir un backend de captura, y en macOS permisos de pantalla. La captura corresponde al escritorio del proceso, no necesariamente al navegador remoto. No se implementa página completa en esta versión.

Errores definidos: BROWSER_UNAVAILABLE, ELEMENT_NOT_FOUND, SCREENSHOT_FAILED, DESKTOP_UNAVAILABLE, IMAGE_UNAVAILABLE, INVALID_IMAGE, STORAGE_ERROR. Argumentos incorrectos, hitos ajenos al caso y errores internos no se silencian. Si falla el almacenamiento inicial o final del listener, Robot registra el error del listener; comprueba también que se hayan generado los JSON esperados.

Python y paralelo

from rf_evidence_reporter import build_reports

paths = build_reports("results/evidence", "reports")

Cada caso usa un UUID y un directorio propio. Para Pabot proporciona un directorio compartido de esta ejecución, por ejemplo output_dir=${EXECDIR}/results/evidence. Genera los HTML después de que terminen todos los procesos. Usa un directorio nuevo por ejecución: el generador incluye todos los case.json encontrados y conserva cada intento separado.

Desarrollo

poetry install
poetry run ruff check src tests scripts
poetry run ruff format --check src tests scripts
poetry run robocop check tests examples
poetry run python -m unittest discover -s tests -v
poetry run python scripts/validate.py
poetry run python scripts/demo.py
poetry run python -m robot.libdoc --name "Evidence Reporter" EvidenceReporter docs/reference/keywords.html
poetry run mkdocs build --strict
poetry build

scripts/validate.py verifica Robot y Pabot, incluyendo un caso con fallo deliberado en teardown. Las pruebas del núcleo usan unittest de Python; las pruebas de integración usan Robot. La demo pública utiliza datos e imágenes ficticios, indicados en el propio reporte.

El HTML incluye imágenes, CSS y JavaScript sin recursos externos. Su visualizador funciona sin conexión y es navegable con teclado. Jira puede permitir adjuntarlo sin ofrecer vista previa; se puede descargar y abrir en un navegador. El contenido y las imágenes no se censuran automáticamente: registra solo datos apropiados para el destino del reporte.

Publicación

GitHub Actions valida los cambios. main publica MkDocs y la demo en GitHub Pages. Un cambio de pyproject.toml en main, o una release vX.Y.Z cuya versión coincida con el paquete, publica wheel y sdist en PyPI mediante Trusted Publishing. Consulta docs/publishing.md para el registro inicial del publisher.

Licencia MIT.

Estatus de evidencia y presentación

Las cuatro keywords de captura aceptan status=INFO (por defecto), PASS, WARN o FAIL. No aceptan SKIP; un valor inválido produce INVALID_CAPTURE_STATUS. El estatus describe la evidencia y no modifica el resultado de Robot. Si la captura falla, se registra una advertencia independientemente del estatus solicitado.

Consulta los ejemplos completos con estatus de evidencia.

El HTML tiene pestañas Resumen, Pasos y Logs. Resumen muestra una sola insignia de estatus de ejecución (SKIP en amarillo). Pasos presenta capturas e hitos; sus logs son plegables. Logs agrupa mensajes y advertencias en bloques plegables, con bordes por nivel y fondo neutro. El switch permite elegir modo claro u oscuro; conserva la preferencia cuando el navegador permite almacenamiento local.

Las fechas visibles incluyen día/mes/año y hora con segundos. La zona horaria se indica al pie y el JSON conserva el timestamp completo. Los registros anteriores sin estatus de captura se presentan como INFO. No hay botón de impresión; PDF y Word quedan para una etapa posterior.

Navegación del reporte

En Pasos, las evidencias directas empiezan plegadas y tienen pestañas Evidencias/Logs del bloque. Los hitos empiezan abiertos; puedes contraerlos individualmente o usar Expandir/Contraer todos los hitos. Los controles globales no modifican el bloque directo.

La documentación comparte logo, colores y temas con el reporte. Consulta Primera evidencia para ejemplos de instalación y ejecución.

Metadata

Release files for robotframework-evidence-reporter 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for robotframework-evidence-reporter 0.1.0
File Size Uploaded
robotframework_evidence_reporter-0.1.0.tar.gz 21.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for robotframework-evidence-reporter 0.1.0
File Interpreter ABI Platform
robotframework_evidence_reporter-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 42.5 kB

Release files / robotframework_evidence_reporter-0.1.0.tar.gz

Download URL robotframework_evidence_reporter-0.1.0.tar.gz
Size 21.0 kB
Tags Source
SHA-256 checksum
How to use checksums
41f767fe97b34ce82590c2cf628a5fe5db4b158520cb9d6876b1bac20255e9c2
BLAKE2b-256 checksum
How to use checksums
f5aa92364ab4a9fbd17364c58ec5c1801eaed1095d01155e55c66ac9e8f77bdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release files / robotframework_evidence_reporter-0.1.0-py3-none-any.whl

Download URL robotframework_evidence_reporter-0.1.0-py3-none-any.whl
Size 21.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
70471cee031b58c30481f0584dcb3bdf6d6d5d3159739aeca809f63c6ba573ac
BLAKE2b-256 checksum
How to use checksums
1975b46fac4855219a6d210a3070d718c426f95be1b5e9003c7cb14ab9e4a7dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page