Referencia de Allure Pytest-BDD
Estos son los atributos y métodos que puedes usar para integrar tus pruebas Pytest-BDD con Allure Report.
Pruebas parametrizadas
En Gherkin, un Scenario Outline
(o un Scenario Template
) implementa el patrón de pruebas parametrizadas. Un esquema de escenario debe contener una tabla de Examples
, desde la cual Pytest-BDD carga conjuntos de parámetros, una fila tras otra. Cada conjunto de parámetros se coloca en las declaraciones de pasos según los marcadores de posición, generando así un nuevo escenario basado en la fila. Pytest-BDD ejecuta cada uno de ellos de manera independiente, como si fuera un Scenario
separado. Los datos pueden luego ser capturados por Pytest-BDD y pasados como argumentos separados al código Python.
Allure Pytest-BDD reconoce automáticamente este patrón. No se requiere configuración adicional.
El ejemplo a continuación muestra un archivo Gherkin y un archivo de implementación en Python de una prueba. En este ejemplo, los cuatro parámetros para el paso “I enter my details...” se mostrarán en ambas instancias del escenario en el informe de pruebas.
Feature: User management
Scenario Outline: Registration
When I go to the registration form
And I enter my details: <login>, <password>, <name>, <birthday>
Then the profile should be created
Examples:
| login | password | name | birthday |
| johndoe | qwerty | John Doe | 1970-01-01 |
| janedoe | 123456 | Jane Doe | 1111-11-11 |
from pytest_bdd import given, parsers, scenario, then, when
@scenario('features/UserManagement.feature', 'Registration')
def test_parameters():
pass
@when('I go to the registration form')
def i_go_to_registration_form():
...
@when(parsers.parse('I enter my details: {login}, {password}, {name}, {birthday}'))
def i_enter_my_details(login, password, name, birthday):
...
@then('the profile should be created')
def profile_should_be_created():
...
Adjuntar contenido desde variables
allure.attach(body, name=None, attachment_type="text/plain", extension="attach")
Agrega body
como un archivo adjunto al resultado de la prueba bajo el name
dado (por defecto, un string pseudoaleatorio único). El body
debe ser del tipo bytes
o str
.
Para garantizar que el navegador web del lector muestre los adjuntos correctamente, se recomienda especificar el tipo de cada adjunto. Hay dos maneras de hacerlo:
Pasa el tipo de medio del contenido como
attachment_type
y, opcionalmente, una extensión de archivo comoextension
.Algunos tipos de medios populares son
image/png
yimage/jpeg
para capturas de pantalla e imágenes,application/json
para datos JSON ytext/plain
para archivos de texto. El tipo de medio afecta cómo se mostrará la información en el informe de prueba, mientras que la extensión del archivo se añade al nombre del archivo cuando el usuario desea guardarlo.Pasa un valor de la clase
allure.attachment_type
comoattachment_type
.Esto configurará automáticamente el tipo de medio y la extensión de archivo adecuada.
import allure
import requests
from pytest_bdd import then
@then("I open labels page")
def test_labels():
...
png_bytes = requests.get('https://example.com/image.png').content
allure.attach(png_bytes, name="my-image", attachment_type=allure.attachment_type.PNG)
Leer adjuntos desde archivos
allure.attach.file(source, name=None, attachment_type=None, extension=None)
Igual que attach()
, pero el contenido se carga desde el archivo source
existente.
import allure
from pytest_bdd import then
@then("I open labels page")
def test_labels():
...
allure.attach.file('/path/to/image.png', name="my-image", attachment_type=allure.attachment_type.PNG)