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)
| File | Size | Uploaded | |
|---|---|---|---|
| robotframework_evidence_reporter-0.1.0.tar.gz | 21.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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