Integración con Xray Allure 3
Allure Report 3 puede actualizar los estados de las ejecuciones de prueba en Xray para Jira Server y Jira Data Center. Xray Cloud no es compatible. El plugin xray que hace esto está incluido en el paquete allure.
Para cada prueba del reporte que esté vinculada a un Test de Xray, Allure busca las ejecuciones de prueba de ese Test de Xray en las Test Executions que especifiques, y establece su estado en PASS, FAIL o TODO. Si se conoce la dirección del reporte, entonces agrega un comentario con un enlace al reporte en cada Test Execution.
El plugin no crea Tests, Test Executions ni ejecuciones de prueba, y no importa resultados de prueba a Xray.
Requisitos previos
- Jira Server o Jira Data Center con la app de Xray instalada.
- Las Test Executions ya existen y contienen los Tests cuyas ejecuciones quieres actualizar.
- El usuario de Jira, o el propietario del token de acceso personal, puede explorar las Test Executions, editar sus ejecuciones de prueba y agregar comentarios.
Vincular pruebas a Tests de Xray
Para vincular una prueba a un Test de Xray, agrega un enlace de tipo tms a la prueba, con la clave de Jira del Test de Xray como nombre del enlace, por ejemplo, XT-1. Si el nombre no es una clave de Jira, Allure toma la primera clave de la URL del enlace.
El enlace debe tener una URL: Allure Report 3 ignora los enlaces que no la tienen. En las integraciones de Allure para Java, un enlace agregado con @TmsLink obtiene una URL solo si el patrón de enlace TMS está configurado, así que configúralo en el archivo allure.properties:
allure.link.tms.pattern=https://jira.example.com/browse/{}@TmsLink("XT-1")
@Test
void shouldLogIn() {
// ...
}En otras integraciones de Allure, consulta la documentación de tu integración para saber cómo agregar enlaces.
Si varios resultados de prueba están vinculados al mismo Test de Xray, por ejemplo, una prueba parametrizada, Allure combina sus estados:
| Resultados vinculados al Test de Xray | Estado en Xray |
|---|---|
| Al menos uno fallido o roto | FAIL |
| Al menos uno aprobado, ninguno fallido o roto | PASS |
| Solo omitidos o desconocidos | TODO |
Para una prueba que fue reintentada, solo cuenta el último intento.
Configurar el plugin
Agrega el plugin xray a la sección plugins del archivo de configuración, junto al plugin de tu reporte, y establece la dirección de Jira y las Test Executions a actualizar:
import { defineConfig } from "allure";
export default defineConfig({
plugins: {
awesome: {},
xray: {
options: {
endpoint: "https://jira.example.com",
executions: ["XT-6", "XT-7"],
},
},
},
});{
"plugins": {
"awesome": {},
"xray": {
"options": {
"endpoint": "https://jira.example.com",
"executions": ["XT-6", "XT-7"]
}
}
}
}plugins:
awesome: {}
xray:
options:
endpoint: https://jira.example.com
executions: [XT-6, XT-7]Con esta configuración, después de generar el reporte, Allure actualiza las ejecuciones de prueba en las Test Executions XT-6 y XT-7 en Jira en https://jira.example.com. Las credenciales no están en el archivo de configuración: Allure toma el token de acceso personal de la variable de entorno ALLURE_XRAY_TOKEN, que puedes establecer, por ejemplo, como un secreto de tu pipeline de CI.
Allure actualiza solo las ejecuciones de prueba cuyo estado difiere del resultado. Las ejecuciones de prueba de Tests de Xray a los que ninguna prueba del reporte está vinculada se dejan como están.
Cada opción también se puede proporcionar mediante una variable de entorno. Si una opción está establecida en el archivo de configuración, la variable de entorno no se utiliza. La tabla siguiente lista todas las opciones.
Opciones
| Opción | Variable de entorno | Descripción | Por defecto |
|---|---|---|---|
endpoint | ALLURE_XRAY_ENDPOINT | Dirección de Jira. Obligatorio | |
token | ALLURE_XRAY_TOKEN | Token de acceso personal de Jira. Obligatorio, a menos que username y password estén establecidos. Si está establecido, username y password no se usan | |
username | ALLURE_XRAY_USERNAME | Nombre de usuario de Jira, usado con password en lugar de un token | |
password | ALLURE_XRAY_PASSWORD | Contraseña de Jira, usada con username en lugar de un token | |
executions | ALLURE_XRAY_EXECUTIONS | Claves de las Test Executions a actualizar. Obligatorio. En la variable de entorno, una lista separada por comas, por ejemplo, XT-6,XT-7 | |
statuses | ALLURE_XRAY_STATUS_<STATUS> | Estado de Xray a establecer para cada estado de prueba de Allure, ver Cambiar la asignación de estados | Asignación por defecto |
comment | ALLURE_XRAY_COMMENT | Si se debe agregar un comentario con un enlace al reporte, ver Comentario con un enlace al reporte | true |
Cambiar la asignación de estados
Por defecto, Allure establece estos estados en Xray:
| Estado en Allure | Estado en Xray |
|---|---|
| Aprobado | PASS |
| Fallido | FAIL |
| Roto | FAIL |
| Omitido | TODO |
| Desconocido | TODO |
Para cambiar la asignación, establece la opción statuses. Solo necesita los estados que quieres cambiar, los demás mantienen su asignación por defecto. Por ejemplo, esta configuración establece FAIL en Xray para las pruebas omitidas:
import { defineConfig } from "allure";
export default defineConfig({
plugins: {
awesome: {},
xray: {
options: {
endpoint: "https://jira.example.com",
executions: ["XT-6", "XT-7"],
statuses: { skipped: "FAIL" },
},
},
},
});{
"plugins": {
"awesome": {},
"xray": {
"options": {
"endpoint": "https://jira.example.com",
"executions": ["XT-6", "XT-7"],
"statuses": { "skipped": "FAIL" }
}
}
}
}plugins:
awesome: {}
xray:
options:
endpoint: https://jira.example.com
executions: [XT-6, XT-7]
statuses:
skipped: FAILTambién puedes usar variables de entorno: ALLURE_XRAY_STATUS_PASSED, ALLURE_XRAY_STATUS_FAILED, ALLURE_XRAY_STATUS_BROKEN, ALLURE_XRAY_STATUS_SKIPPED y ALLURE_XRAY_STATUS_UNKNOWN, por ejemplo, ALLURE_XRAY_STATUS_SKIPPED=FAIL.
Solo se admiten los estados PASS, FAIL y TODO.
Comentario con un enlace al reporte
Después de actualizar las ejecuciones de prueba de una Test Execution, Allure agrega un comentario con un enlace al reporte en la Test Execution. El comentario se agrega solo si se conoce la dirección del reporte, por ejemplo, a partir de historyBaseUrl, y solo si todas las ejecuciones de prueba de la Test Execution se leyeron y actualizaron correctamente.
El comentario se agrega en cada generación del reporte. Para desactivarlo, establece comment: false o ALLURE_XRAY_COMMENT=false.
Solución de problemas
Si una solicitud a Jira falla, Allure imprime el error en la consola y continúa con la siguiente solicitud. El reporte se genera de todos modos. Por ejemplo:
[Allure Xray Plugin] failed to read test runs of XT-7: Request failed with status code 404 (HTTP 404)Un error HTTP 401 o 403 generalmente significa que faltan credenciales o permisos.
Si la dirección de Jira, las credenciales o las Test Executions no están establecidas, o un estado en la asignación no es compatible, Allure imprime un error y no actualiza nada.
Si una ejecución de prueba no se actualiza, verifica que:
- la prueba tenga un enlace de tipo
tmscon una URL; - el nombre del enlace, o la URL del enlace, contenga la clave del Test de Xray;
- una de las Test Executions contenga una ejecución de prueba de ese Test de Xray.