Resultados
Los resultados registran el desenlace de ejecutar un caso de prueba dentro de una ejecución de prueba.
Endpoints
| Método | Ruta | Scope | Descripción |
|---|---|---|---|
GET | /api/v1/runs/{id}/results | read | Listar resultados de una ejecución |
POST | /api/v1/runs/{id}/results | write | Insertar/actualizar resultados en una ejecución |
POST | /api/v1/results/{id}/attachments | write | Subir adjunto para un resultado |
Listar resultados de una ejecución
GET /api/v1/runs/clrun001/results
Authorization: Bearer qh_...
Devuelve todas las filas de resultados de la ejecución con sus códigos de caso de prueba y estados.
Insertar/actualizar resultados en lote
POST /api/v1/runs/clrun001/results
Authorization: Bearer qh_...
Content-Type: application/json
{
"results": [
{
"test_case_code": "TC-001",
"status": "PASSED",
"duration_ms": 1240,
"framework": "playwright"
},
{
"test_case_code": "TC-002",
"status": "FAILED",
"error_message": "Expected 'Welcome' but got 'Error'",
"duration_ms": 3800,
"framework": "playwright",
"bug_ticket_key": "LIN-42"
}
]
}
Los resultados existentes para el mismo caso de prueba en esta ejecución se actualizan (upsert). Los nuevos resultados se crean.
Campos de un resultado
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
test_case_code | string | Uno de | Mapea al caso de prueba existente por código |
test_case_id | string | Uno de | Mapea al caso de prueba existente por cuid |
status | string | Sí | PASSED, FAILED, BROKEN, SKIPPED o UNKNOWN |
comment | string | No | Nota de formato libre |
bug_ticket_key | string | No | Clave del ticket de bug (p. ej., LIN-42) |
bug_ticket_url | string | No | URL completa del ticket de bug |
duration_ms | integer | No | Duración de ejecución en milisegundos |
framework | string | No | Etiqueta del framework de tests |
error_message | string | No | Descripción breve del error |
error_stack | string | No | Stack trace completo |
executed_at | datetime | No | Cuándo se ejecutó el test (ISO 8601) |
Códigos de respuesta
| Código | Significado |
|---|---|
201 | Todos los resultados aceptados |
207 | Parcial — algunos ítems rechazados. Comprueba errors[] en el cuerpo de la respuesta. |
Subir un adjunto
curl -X POST https://your-qahub.com/api/v1/results/clresult001/attachments \
-H "Authorization: Bearer qh_..." \
-F "file=@screenshot.png"
Tipos de archivo permitidos: PNG, JPG, GIF, WebP, SVG, PDF, TXT, JSON, ZIP, MP4, WebM
Tamaño máximo: 10 MB por archivo (configurable via ATTACHMENT_MAX_BYTES)
Respuesta — 201 Created
{
"data": [
{
"id": "clattach001",
"fileName": "screenshot.png",
"mimeType": "image/png",
"size": 204800,
"createdAt": "2026-05-13T12:00:00.000Z"
}
]
}