Casos de prueba
Los casos de prueba son el modelo de datos central en QA Hub. Cada uno tiene un código único, contenido BDD en Gherkin y metadatos.
Endpoints
| Método | Ruta | Scope | Descripción |
|---|---|---|---|
GET | /api/v1/cases | read | Listar casos de prueba |
POST | /api/v1/cases | write | Crear un caso de prueba |
GET | /api/v1/cases/{id} | read | Obtener un caso de prueba |
PATCH | /api/v1/cases/{id} | write | Actualizar un caso de prueba |
DELETE | /api/v1/cases/{id} | write | Eliminar un caso de prueba |
El parámetro {id} acepta tanto el cuid (clxyz...) como el código legible por humanos (TC-001).
Listar casos de prueba
GET /api/v1/cases?project_id=clxyz123&status=READY&limit=50&offset=0
Authorization: Bearer qh_...
Parámetros de consulta
| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
project_id | string | — | Filtrar por proyecto |
status | string | — | DRAFT, READY o DEPRECATED |
limit | integer | 100 | Máximo de registros (máx. 500) |
offset | integer | 0 | Offset de paginación |
Respuesta
{
"data": [
{
"id": "clcase001",
"code": "TC-001",
"title": "Guest checkout — successful order",
"bdd_content": "Feature: Guest checkout\n\n Scenario: ...",
"status": "READY",
"priority": "HIGH",
"layer": "UI",
"is_e2e": true,
"automation_status": "MANUAL",
"tags": ["checkout", "guest"],
"tickets": [{ "key": "PROJ-42", "source": "JIRA" }]
}
],
"pagination": { "total": 148, "limit": 50, "offset": 0 }
}
Crear un caso de prueba
POST /api/v1/cases
Authorization: Bearer qh_...
Content-Type: application/json
{
"title": "Login — invalid password shows error",
"bdd_content": "Feature: Login\n\n Scenario: Invalid password\n Given the user is on the login page\n When they enter an incorrect password\n Then an error message is displayed",
"project_id": "clxyz123",
"status": "DRAFT",
"priority": "HIGH",
"layer": "UI",
"is_e2e": false,
"tags": ["auth", "login"],
"tickets": [{ "key": "PROJ-10", "source": "JIRA" }]
}
Campos requeridos: title, bdd_content
Actualizar un caso de prueba
PATCH /api/v1/cases/TC-001
Authorization: Bearer qh_...
Content-Type: application/json
{
"status": "READY",
"automation_status": "AUTOMATED"
}
Incluye solo los campos que quieres cambiar. Todos los campos son opcionales en una solicitud PATCH.
Valores de estado de automatización
| Valor | Significado |
|---|---|
MANUAL | Solo se ejecuta manualmente |
IN_PROGRESS | La automatización está siendo desarrollada |
AUTOMATED | Tiene un test automatizado que pasa |
FLAKY | Automatizado pero inestable |
ARCHIVED | Ya no se mantiene |