Glosario de Allure Report
Caso de Prueba
Un caso de prueba es una instrucción paso a paso que define cómo se prueba alguna funcionalidad.
Un caso de prueba generalmente está representado por una función.
Puede ser parametrizado.
El siguiente ejemplo define dos casos de prueba:
test_authenticationestá parametrizadotest_signin_availableno tiene parámetros
@pytest.mark.parametrize(["login", "role], [
("John", "user"),
("Jane", "admin"),
])
def test_authentication(login, role):
"""Verifica si un usuario con un rol específico puede iniciar sesión."""
# ...
def test_signin_available():
"""Verifica que se pueda acceder a la página de inicio de sesión."""
# ...Prueba
Una prueba es una secuencia específica de acciones que puede ejecutarse de forma independiente y produce un único resultado de prueba.
- Un caso de prueba sin parámetros produce exactamente una prueba.
- Un caso de prueba parametrizado produce una prueba por cada combinación de parámetros.
Nuestro ejemplo define tres pruebas. Dos son parte del caso de prueba test_authentication. La restante es la única prueba en el caso de prueba test_signin_available:
test_authentication(login es "John", role es "user")test_authentication(login es "Jane", role es "admin)test_signin_available
@pytest.mark.parametrize(["login", "role], [
("John", "user"),
("Jane", "admin"),
])
def test_authentication(login, role):
"""Verifica si un usuario con un rol específico puede iniciar sesión."""
# ...
def test_signin_available():
"""Verifica que se pueda acceder a la página de inicio de sesión."""
# ...Resultado de Prueba
Un resultado de prueba es el objeto que contiene información detallada sobre la ejecución de una prueba: el resultado, la duración, los pasos, los errores, los archivos adjuntos, etc.
- Allure Report convierte cualquier resultado de prueba generado por frameworks de pruebas a su propio formato.
- Un resultado de prueba de Allure se corresponde con un único archivo
...-result.json, con archivos adjuntos opcionales.
Considera el siguiente ejemplo:
@pytest.mark.parametrize(["login", "role], [
("John", "user"),
("Jane", "admin"),
])
def test_authentication(login, role):
"""Verifica si un usuario con un rol específico puede iniciar sesión."""
# ...
def test_signin_available():
"""Verifica que se pueda acceder a la página de inicio de sesión."""
# ...Si ejecutamos las pruebas definidas aquí, y requerimos que cualquier prueba fallida se reintente varias veces hasta que pase, terminaríamos con una colección de resultados de prueba que se vería así:
caso de prueba test_authentication (parámetros: login, role)
├── prueba (login = "John", role = "user")
│ ├── resultado de prueba (intento 1, fallido)
│ └── resultado de prueba (intento 2, pasado) ← reintento después de fallo
└── prueba (login = "Jane", role = "admin")
└── resultado de prueba (intento 1, pasado)
caso de prueba test_signin_available (sin parámetros)
└── prueba
├── resultado de prueba (intento 1, fallido)
├── resultado de prueba (intento 2, fallido) ← reintento después de fallo
└── resultado de prueba (intento 3, pasado) ← reintento después de fallo