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

Referencia de Allure Robot Framework ​

Estos son los atributos y métodos que puedes usar para integrar tus pruebas de Robot Framework con Allure Report.

En la mayoría de los casos, necesitas indicar a Allure Robot Framework que cierta propiedad debe asignarse al resultado de la prueba. La mayoría de las propiedades se pueden asignar en el archivo de suite, mediante la API de Decoradores o mediante la API de Ejecución.

  • Archivo de suite: usa las palabras clave [Tags], Set Tags o Test Tags en los archivos de suite (ver Etiquetado de casos de prueba en la documentación de Robot Framework) para asignar diversos datos a las pruebas.

    Al usar la palabra clave [Tags] o Test Tags, los datos se agregarán garantizados al resultado de la prueba, independientemente de cómo se ejecute la prueba.

    Al usar la palabra clave Set Tags, se recomienda colocarla lo más cerca posible del inicio de la prueba. De esta manera, los datos se agregarán incluso si la prueba falla temprano.

    Puedes usar ya sea dos puntos o un signo igual para separar el valor del nombre, por ejemplo, allure.label.epic:Interfaz web es idéntico a allure.label.epic=Interfaz web.

  • API de Decoradores: agrega un decorador de Python a un método que implementa una palabra clave de Robot Framework. Al usar este enfoque, los datos se agregarán garantizados, independientemente de cómo se ejecute la palabra clave.

  • API de Ejecución: usa las funciones de Allure para agregar datos al resultado de la prueba durante la ejecución de una palabra clave. Este enfoque permite construir los datos dinámicamente.

    Ten en cuenta que se recomienda llamar a las funciones de Allure lo más cerca posible del inicio de la implementación, por ejemplo, en las primeras líneas de la implementación de la primera palabra clave. De esta manera, los datos se agregarán incluso si la prueba falla temprano.

Metadatos ​

Asigna la descripción, enlaces y otros metadatos a una prueba.

Descripción ​

  • [Documentation]

Para la descripción, Allure Robot Framework usa el [Documentation] del escenario en el archivo de suite.

Se permite el formato Markdown. Cualquier formato HTML, si está presente, será eliminado por razones de seguridad.

*** Test Cases ***

Test Authentication
    [Documentation]    This test attempts to log into the website.
    # ...

Owner ​

  • [Tags] allure.label.owner:⟨VALUE⟩
  • @allure.label('owner', value: str)
  • allure.dynamic.label('owner', value: str)

Establece el propietario de la prueba.

*** Test Cases ***

Test Authentication
    [Tags]  allure.label.owner:John Doe
    # ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
@allure.label('owner', 'John Doe')
def test_authentication():
    ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    allure.dynamic.label('owner', 'John Doe')
    ...

Tag ​

  • [Tags]
  • @allure.tag(*tags: str)
  • allure.dynamic.tag(*tags: str)

Establece los tags de la prueba.

Cualquier tag nativo de Robot Framework se agrega automáticamente a la lista de tags de la prueba, a menos que coincida con uno de los patrones conocidos para otras etiquetas.

*** Test Cases ***

Test Authentication
    [Tags]  UI    Authentication
    # ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
@allure.tag('UI')
@allure.tag('Authentication')
def test_authentication():
    ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    allure.dynamic.tag('UI')
    allure.dynamic.tag('Authentication')
    ...

Severity ​

  • [Tags] allure.label.severity:⟨VALUE⟩
  • @allure.severity(severity_level: str)
  • allure.dynamic.severity(severity_level: str)

Establece la severidad de la prueba.

Los valores permitidos son: “trivial”, “minor”, “normal”, “critical”, y “blocker”.

*** Test Cases ***

Test Authentication
    [Tags]  allure.label.severity:critical
    # ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
@allure.severity('critical')
def test_authentication():
    ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    allure.dynamic.severity('critical')
    ...

Label ​

  • [Tags] allure.label.⟨NAME⟩:⟨VALUE⟩
  • @allure.label(label_type: str, *labels: str)
  • allure.dynamic.label(label_type: str, *labels: str)

Establece una etiqueta arbitraria para la prueba. Esta es la implementación subyacente para muchas otras funciones de Allure.

*** Test Cases ***

Test Authentication
    [Tags]
    ...  allure.label.layer:web
    ...  allure.label.owner:eroshenkoam
    ...  allure.label.page:/{org}/{repo}/authentication
    ...  allure.label.jira:AE-2
    # ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
@allure.label('layer', 'web')
@allure.label('owner', 'eroshenkoam')
@allure.label('page', '/{org}/{repo}/authentication')
@allure.label('jira', 'AE-2')
def test_authentication():
    ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    allure.dynamic.label('layer', 'web')
    allure.dynamic.label('owner', 'eroshenkoam')
    allure.dynamic.label('page', '/{org}/{repo}/authentication')
    allure.dynamic.label('jira', 'AE-2')
    ...

Allure ID (Allure TestOps) ​

  • [Tags] allure.as_id:⟨VALUE⟩
  • @allure.id(id: str)

Establece el ID de la prueba.

*** Test Cases ***

Test Authentication
    [Tags]  allure.as_id:123
    # ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
@allure.id('123')
def test_authentication():
    ...

Link ​

  • [Tags] allure.link:⟨URL⟩
  • [Tags] allure.link.⟨NAME⟩:⟨URL⟩
  • [Tags] allure.issue:⟨URL⟩
  • [Tags] allure.issue.⟨NAME⟩:⟨URL⟩
  • [Tags] allure.tms:⟨URL⟩
  • [Tags] allure.tms.⟨NAME⟩:⟨URL⟩
  • allure.dynamic.link(url: str, link_type: str = LinkType.LINK, name: str = None)
  • allure.dynamic.issue(url: str, name: str = None)
  • allure.dynamic.testcase(url: str, name: str = None)

Agrega un enlace relacionado con la prueba.

  • En un archivo de suite, agrega una de las etiquetas mencionadas anteriormente. Cada etiqueta indica un tipo de enlace diferente (link, issue o tms), lo cual afecta el ícono mostrado en el informe de la prueba.

  • En tu código Python, usa la función allure.dynamic.link() con un argumento opcional link_type o sus versiones abreviadas para los tipos de enlace issue y tms.

*** Test Cases ***

Test Authentication
    [Tags]
    ...  allure.link.MyWebsite:https://dev.example.com/
    ...  allure.issue.UI-123:https://issues.example.com/UI-123
    ...  allure.tms.TMS-456:https://tms.example.com/TMS-456
    # ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    allure.dynamic.link('https://dev.example.com/', name='Website')
    allure.dynamic.issue("'https://issues.example.com'/UI-123", name='UI-123')
    allure.dynamic.testcase('https://tms.example.com/TMS-456', name='TMS-456')
    ...

Jerarquía basada en el comportamiento ​

  • [Tags] allure.label.epic:⟨VALUE⟩
  • [Tags] allure.label.feature:⟨VALUE⟩
  • [Tags] allure.label.story:⟨VALUE⟩
  • @allure.epic(*epics: str)
  • @allure.feature(*features: str)
  • @allure.story(*stories: str)
  • allure.dynamic.epic(*epics: str)
  • allure.dynamic.feature(*features: str)
  • allure.dynamic.story(*stories: str)

Asigna nombres de epics, features o user stories a una prueba, como parte de la jerarquía basada en el comportamiento de Allure.

Cada función admite establecer uno o más valores a la vez.

*** Test Cases ***

Test Authentication
    [Tags]
    ...  allure.label.epic:Web interface
    ...  allure.label.feature:Essential features
    ...  allure.label.story:Authentication
    # ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
@allure.epic('Web interface')
@allure.feature('Essential features')
@allure.story('Authentication')
def test_authentication():
    ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    allure.dynamic.epic('Web interface')
    allure.dynamic.feature('Essential features')
    allure.dynamic.story('Authentication')
    ...

Jerarquía basada en la suite ​

  • [Tags] allure.label.parentSuite:⟨VALUE⟩
  • [Tags] allure.label.suite:⟨VALUE⟩
  • [Tags] allure.label.subSuite:⟨VALUE⟩
  • @allure.parent_suite(parent_suite_name: str)
  • @allure.suite(suite_name: str)
  • @allure.sub_suite(sub_suite_name: str)
  • allure.dynamic.parent_suite(parent_suite_name: str)
  • allure.dynamic.suite(suite_name: str)
  • allure.dynamic.sub_suite(sub_suite_name: str)

Asigna los nombres de suite principal, suite o sub-suite para una prueba, como parte de la jerarquía basada en suite de Allure.

*** Test Cases ***

Test Authentication
    [Tags]
    ...  allure.label.parentSuite:Web interface
    ...  allure.label.suite:Essential features
    ...  allure.label.subSuite:Authentication
    # ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
@allure.parent_suite('Web interface')
@allure.suite('Essential features')
@allure.sub_suite('Authentication')
def test_authentication():
    ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    allure.dynamic.parent_suite('Web interface')
    allure.dynamic.suite('Essential features')
    allure.dynamic.sub_suite('Authentication')
    ...

Jerarquía basada en paquetes ​

  • [Tags] allure.label.package:⟨VALUE⟩
  • [Tags] allure.label.testMethod:⟨VALUE⟩

Asigna los nombres del paquete y el método de prueba, como parte de la jerarquía basada en paquetes de Allure.

*** Test Cases ***

Test Authentication
    [Tags]
    ...  allure.label.package:org.example
    ...  allure.label.testMethod:test_authentication()
    # ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
@allure.label('package', 'org.example')
@allure.label('testMethod', 'test_authentication()')
def test_authentication():
    ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    allure.dynamic.label('package', 'org.example')
    allure.dynamic.label('testMethod', 'test_authentication()')
    ...

Pasos de prueba ​

  • @allure.step(title: str)
  • with allure.step(title: str)

Define un sub-paso de prueba dentro del paso actual.

Existen dos formas de definir un sub-paso.

  • Sub-pasos decorados

    Define una función o un método que contenga un sub-paso de prueba y decóralo con @allure.step().

    Si la función acepta argumentos, estos se mostrarán como parámetros a nivel de paso en el informe de prueba. También puedes incluir sus valores en el título del sub-paso mediante campos de reemplazo. Un campo de reemplazo es un nombre de parámetro delimitado por llaves {}, como lo permite el método estándar str.format().

  • Sub-pasos de contexto

    Escribe un sub-paso de prueba en el lugar, pero usa la sentencia with allure.step() para crear su contexto.

python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    navigate_to_the_website()
    for login, password in [['johndoe', 'qwerty'],
                            ['janedoe', 'pass123']]:
        try_to_authenticate(login, password)


@allure.step('Navigate to the website')
def navigate_to_the_website():
    ...


@allure.step('Try to authenticate as {login}')
def try_to_authenticate(login, password):
    ...
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    with allure.step('Navigate to the website'):
        ...

    for login, password in [['johndoe', 'qwerty'],
                            ['janedoe', 'pass123']]:
        with allure.step(f'Try to authenticate as {login}'):
            ...

Pruebas parametrizadas ​

Cuando pasas argumentos a una palabra clave en el archivo de suite, Allure los muestra como parámetros para el paso correspondiente en el informe de prueba. No se requiere configuración adicional.

Ten en cuenta que debido a un detalle de implementación, Allure Report solo puede mostrar los parámetros de la palabra clave de la misma manera en que se dan en la línea correspondiente. Esto significa que si el argumento de una palabra clave es una variable (por ejemplo, un valor producido por el bucle FOR de Robot Framework), Allure Report mostrará el nombre de la variable, no el valor real que tiene en tiempo de ejecución.

El siguiente ejemplo evita el problema implementando una palabra clave de usuario con argumentos y luego usándola con valores literales sin bucles.

*** Keywords ***

Try To Authenticate
    [Arguments]    ${login}    ${password}
    Log To Console    Trying to authenticate with ${login} and ${password}...
    # ...

*** Test Cases ***

Test Authentication
    Try To Authenticate    [email protected]    qwerty
    Try To Authenticate    [email protected]    pass123

Archivos adjuntos ​

Allure Robot Framework proporciona varias formas de agregar archivos adjuntos al paso actual.

Adjuntar contenido desde variables ​

  • Attach ⟨CONTENT⟩
  • Attach ⟨CONTENT⟩ name=⟨NAME⟩ attachment_type=⟨TYPE⟩
  • allure.attach(body, name=None, attachment_type="text/plain", extension="attach")

Agrega body como un archivo adjunto al resultado de la prueba bajo el nombre dado (por defecto, un string pseudo-aleatorio único). El body debe ser de tipo bytes o str.

Para asegurar que el navegador web del lector mostrará los archivos adjuntos correctamente, se recomienda especificar el tipo de cada archivo adjunto. Hay dos formas de hacerlo:

  • Pasa el tipo de medio del contenido como attachment_type y, opcionalmente, una extensión de archivo como extension.

    Algunos tipos de medios populares son image/png e image/jpeg para capturas de pantalla y otras imágenes, application/json para datos JSON y text/plain para archivos de texto. El tipo de medio afecta cómo se mostrará el dato en el informe de prueba, mientras que la extensión de archivo se agrega al nombre del archivo cuando el usuario quiera guardar el archivo.

  • Pasa un valor de la clase allure.attachment_type como attachment_type.

    Esto establecerá automáticamente el tipo de medio y la extensión de archivo apropiada.

*** Settings ***
Library     AllureLibrary
Library     RequestsLibrary

*** Test Cases ***
Test Authentication
    # ...
    ${response}=  GET  https://example.com/image.png
    Attach  ${response.content}
    ...     name=Image  attachment_type=PNG
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    ...
    png_bytes = requests.get('https://example.com/image.png').content
    allure.attach(png_bytes, name='img', attachment_type=allure.attachment_type.PNG)

Leer archivos adjuntos desde archivos ​

  • Attach File ⟨FILE⟩
  • Attach File ⟨FILE⟩ name=⟨NAME⟩ attachment_type=⟨TYPE⟩
  • allure.attach.file(source, name=None, attachment_type=None, extension=None)

Lo mismo que Adjuntar contenido desde variables, pero el contenido se carga desde un archivo existente.

*** Settings ***
Library     AllureLibrary

*** Test Cases ***
Test Authentication
    # ...
    Attach File  /path/to/image.png
    ...          name=Image  attachment_type=PNG
python
import allure
from robot.api.deco import keyword

@keyword('Test Authentication')
def test_authentication():
    ...
    allure.attach.file('/path/to/image.png', name='img', attachment_type=allure.attachment_type.PNG)

Adjuntar mensajes de registro ​

Por defecto, Allure Robot Framework crea automáticamente un archivo adjunto de texto que contiene los mensajes de registro que ocurrieron durante un sub-paso dado.

Este comportamiento puede cambiarse, consulta la variable de entorno ALLURE_MAX_STEP_MESSAGE_COUNT.

Pager
Previous pageConfiguración
Next pageEmpezando
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.