Introducción a Allure Pytest-BDD
Genera hermosos reportes HTML utilizando Allure Report y tus pruebas con Pytest-BDD.
Configuración
1. Prepara tu proyecto
Instala la herramienta de línea de comandos de Allure Report, si aún no está instalada en tu sistema operativo. Ten en cuenta que Allure Report requiere Java, consulta las instrucciones de instalación.
Abre una terminal y dirígete al directorio del proyecto. Por ejemplo:
bashcd /home/user/myprojectSi es necesario para la configuración de tu sistema, activa el entorno virtual de Python para tu proyecto.
Por ejemplo, si el proyecto utiliza un entorno
venv, el comando para activarlo podría ser similar a este:bashsource .venv/bin/activateEste paso no es necesario si estás utilizando el entorno de Python del sistema.
Instala la integración Allure Pytest-BDD.
bashpip install allure-pytest-bdd
2. Ejecuta las pruebas
Al ejecutar tus pruebas, especifica una ruta para el directorio de resultados de pruebas en el argumento de línea de comandos --alluredir. Por ejemplo:
python -m pytest --alluredir allure-resultsEsto guardará los datos necesarios en el directorio de resultados de las pruebas. Si el directorio ya existe, los nuevos archivos se agregarán a los existentes, de modo que un reporte futuro se basará en todos ellos.
3. Genera un reporte
Finalmente, convierta los resultados de las pruebas en un reporte HTML. Esto se puede hacer con uno de dos comandos:
allure generateprocesa los resultados de las pruebas y guarda un reporte HTML en el directorio allure-report. Para ver el reporte, use el comandoallure open.allure servecrea el mismo reporte que allure generate, luego abre automáticamente la página principal del reporte en un navegador web.
Describir pruebas parametrizadas
Allure Pytest-BDD puede mostrar los parámetros pasados a las pruebas mediante tablas de Examples, consulta la referencia.
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 |Adjuntar capturas de pantalla y otros archivos
Puedes adjuntar cualquier tipo de archivo a tu reporte Allure. Por ejemplo, una forma popular de hacer que un reporte sea más fácil de entender es adjuntar una captura de pantalla de la interfaz de usuario en un punto específico.
Allure Pytest-BDD proporciona varias formas de crear un adjunto, ya sea desde archivos existentes o generados dinámicamente, consulta la referencia.
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)
allure.attach.file('/path/to/image.png', name="my-image", attachment_type=allure.attachment_type.PNG)Información del entorno
Para la página principal del reporte, puedes recopilar diversa información sobre el entorno en el que se ejecutaron las pruebas.
Por ejemplo, es una buena idea usar esto para registrar la versión del sistema operativo y la versión de Python. Esto puede ayudar al lector futuro a investigar errores reproducibles solo en algunos entornos.
Para proporcionar información del entorno, coloca un archivo llamado environment.properties en el directorio allure-results después de ejecutar las pruebas. Consulta el ejemplo en Archivo de entorno.
Ten en cuenta que esta función debe usarse para propiedades que no cambian en todas las pruebas del reporte. Si tienes propiedades que pueden ser diferentes para distintas pruebas, considera usar Pruebas parametrizadas.