# Importar casos de prueba

> Trae un conjunto de casos de prueba existente a Probara desde una exportación de Probara, Qase, TestRail o un archivo Gherkin .feature.

El **asistente de importación** te permite traer casos de prueba desde otra herramienta — o reimportar una exportación de Probara — a un proyecto sin tener que recrearlos manualmente. Se abre como un diálogo compacto en el mismo lugar — sin navegar fuera del repositorio. La importación lee un archivo exportado y lo escribe directamente en el proyecto — no hay un paso de vista previa ni una confirmación intermedia. En un proyecto que exige revisión, la importación abre solicitudes de revisión en lugar de escribir los casos (consulta [Cuando el proyecto exige revisión](#cuando-el-proyecto-exige-revisión)). Verás una confirmación cuando termine, o una lista de las filas que no se pudieron importar. Los integradores que quieran automatizar importaciones pueden usar la [API de importación de casos de prueba](https://docs.probara.net/es/developers/api/import/) en su lugar.

## Cómo llegar al asistente

1. Abre un proyecto y ve a la página **Repository**.
2. Haz clic en el menú del encabezado (**⋯**) y selecciona **Import**.
3. El diálogo de importación se abre sobre la página del repositorio.

La acción **Import** es visible para miembros, admins y owners. Los viewers no la ven — importar siempre requiere acceso de nivel miembro o superior.

## Formatos de origen admitidos

| Herramienta de origen  | Formatos             |
| ---------------------- | -------------------- |
| **Probara**            | JSON, XML, CSV, XLSX |
| **Qase**               | XML, JSON, CSV, XLSX |
| **TestRail**           | XML, CSV             |
| **Gherkin (.feature)** | `.feature`           |

Los archivos JSON, XML, CSV y XLSX de Probara, y los archivos `.feature`, llevan los parámetros y las combinaciones excluidas de cada caso. Consulta [Casos de prueba parametrizados](https://docs.probara.net/es/guides/parameterized-test-cases/).

Eliges la **herramienta de origen** desde un select — **Probara** (preseleccionada por defecto), Qase, TestRail o **Gherkin (.feature)**. Reimportar un archivo que la propia Probara exportó es el camino sin configuración: cualquiera de los cuatro formatos de exportación puede volver a importarse. Nunca eliges un formato de archivo directamente: una vez que eliges la herramienta de origen, el diálogo determina automáticamente el formato exacto a partir del archivo que subes (por su extensión, o inspeccionando el contenido del archivo si falta la extensión). Exporta primero tus casos de prueba desde la herramienta de origen y luego sube ese archivo exportado aquí. Si el formato del archivo no es uno que admita la herramienta de origen elegida — por ejemplo, subir un archivo JSON habiendo elegido TestRail, que solo admite XML o CSV — el diálogo te lo indica de inmediato, antes de subir nada. Un archivo Gherkin se reconoce solo por su extensión `.feature`, así que conserva esa extensión al guardarlo. Un archivo `.feature` que vive en un repositorio conviene mantenerlo sincronizado, en lugar de importarlo una y otra vez: consulta [Sincronizar archivos .feature desde Git](https://docs.probara.net/es/guides/syncing-feature-files-from-git/).

Los archivos `.md` no se pueden importar — Markdown ya no es un formato de exportación. El diálogo rechaza una subida `.md` de inmediato; exporta en uno de los formatos admitidos en su lugar.

¿Construyes el archivo a mano en lugar de exportarlo? La [guía de importación CSV](https://docs.probara.net/es/guides/csv-import-walkthrough/) documenta cada columna que lee Probara, los separadores que espera y los errores que tumban un archivo entero — con un CSV de ejemplo descargable que puedes adaptar.

## El diálogo de importación

El diálogo es un **formulario único**. No hay una secuencia separada de subida/mapeo/destino que recorrer, ni un paso de vista previa o confirmación — al hacer clic en **Importar casos de prueba** se confirma el archivo directamente.

### El formulario

El formulario tiene todo lo que necesitas en una sola pantalla:

- **Tipo de origen** — un select que lista cada herramienta de origen una sola vez: **Probara** (preseleccionada por defecto), **Qase**, **TestRail** y **Gherkin (.feature)**. El diálogo muestra los formatos que admite cada una (Probara: JSON, XML, CSV, XLSX; Qase: XML, JSON, CSV, XLSX; TestRail: XML, CSV; Gherkin: `.feature`) como una pista debajo del campo, pero nunca eliges un formato tú mismo.
- **Suite padre** — un select que por defecto es **Raíz del proyecto**; las suites y casos importados se colocan debajo de la suite que elijas aquí. La jerarquía de suites propia del archivo de origen (si existe) se recrea debajo de ella.
- **Subir archivo** — elige el archivo exportado de la herramienta de origen que seleccionaste. El diálogo resuelve su formato exacto por ti.
- **Nota de mapeo de campos** — texto informativo que describe qué campos puede completar la importación, según la herramienta de origen. Las exportaciones de **Qase y TestRail** mapean tres campos del sistema: **Prioridad**, **Tipo** y **Estado**. Las **reimportaciones de Probara** mapean todos los campos del sistema — prioridad, severidad, estado, tipo, capa, comportamiento, inestable (flaky), precondiciones y poscondiciones — además de cualquier campo personalizado definido por el usuario que ya exista en la organización. Los valores de tu archivo se emparejan con los campos y opciones existentes **automáticamente, por nombre** (sin distinguir mayúsculas/minúsculas) — no hay un control de mapeo manual que configurar, y la importación nunca crea un campo ni una opción nuevos. Un campo que no existe en la organización se omite con un aviso; un valor de opción que no coincide con ninguna opción existente — por ejemplo, una prioridad llamada `"Urgente"` cuando el proyecto solo tiene `"Alta"`/`"Media"`/`"Baja"` — usa la opción predeterminada del campo cuando hay una configurada, y en otro caso queda sin asignar. El caso se importa igual; nada falla por un valor sin emparejar. Una importación Gherkin `.feature` no mapea campos del sistema: las etiquetas pasan a ser etiquetas, y los pasos siguen siendo pasos Gherkin. La [referencia de la API de importación de casos de prueba](https://docs.probara.net/es/developers/api/import/) documenta el contrato exacto de mapeo y avisos.
- **Reemplazar casos de prueba coincidentes** — un checkbox, desactivado por defecto. Consulta [Reemplazo de coincidencias](#reemplazo-de-coincidencias) más adelante para conocer la regla exacta.

En una pantalla angosta (ancho de teléfono), **Tipo de origen** y **Suite padre** se acomodan en una sola columna en lugar de lado a lado — los mismos dos campos, en el mismo orden, solo apilados.

El botón principal **Importar casos de prueba** permanece deshabilitado hasta que se proporcionan un tipo de origen y un archivo válido. Si el archivo supera el límite de tamaño de importación, el diálogo muestra un error de inmediato y no intenta subirlo. Consulta [Límite de tamaño](#límite-de-tamaño) más adelante.

Al hacer clic en **Importar casos de prueba** se sube el archivo y se confirma directamente — sin ningún paso intermedio de vista previa o confirmación.

### Qué ocurre después de hacer clic en Importar casos de prueba

- **Éxito completo (se importaron todas las filas).** El diálogo **se cierra**, una notificación de éxito confirma cuántos casos se importaron, y el árbol del repositorio se actualiza para mostrar las nuevas suites y casos.
- **Éxito parcial (algunas filas fallaron).** El diálogo **permanece abierto**, mostrando la lista de filas fallidas — cada una con su número de fila, título y el motivo del fallo. Las filas que sí se importaron ya están en el proyecto; puedes cerrar el diálogo una vez que hayas revisado la lista.

En una pantalla angosta (ancho de teléfono) la lista de filas fallidas (y la de advertencias, cuando hay
valores sin mapear) se reorganiza como una lista de tarjetas: cada fila se presenta como su propia
tarjeta, mostrando el mismo número de fila, título y motivo. Desde el ancho de tablet en adelante, la
lista es la tabla descrita arriba.

## Reemplazo de coincidencias

El checkbox **Reemplazar casos de prueba coincidentes** (desactivado por defecto) controla qué ocurre cuando un caso de tu archivo de origen tiene el **mismo título exacto** que un caso que ya existe en la suite destino:

- **Desactivado**: cada caso del origen se crea como un caso nuevo, incluso si el título coincide con uno existente. Esto puede producir títulos duplicados.
- **Activado**: un caso del origen cuyo título coincide exactamente con un caso existente en la suite destino sobrescribe el contenido de ese caso (pasos, etiquetas, descripción y los campos mapeados) en lugar de crear un duplicado. El ID del caso existente y su historial de creación se conservan — solo cambia su contenido.

Si un título coincide con **más de un** caso existente en la suite destino, esa fila se reporta como un fallo (`ambiguous_match`) en lugar de adivinar qué caso reemplazar.

Si tu propio archivo de origen contiene dos filas con el mismo título, solo la primera (en el orden del archivo) puede reemplazar un caso existente; la duplicada posterior siempre se crea como un caso nuevo.

Un caso reemplazado toma también los parámetros de su fila. Una fila de Probara o de `.feature` sin parámetros borra los parámetros del caso. Una fila de Qase o TestRail los conserva, porque esas importaciones todavía no leen parámetros. Una fila cuyos parámetros incumplen una regla se importa sin ellos, muestra un aviso y conserva los parámetros existentes del caso.

Un caso sincronizado desde Git nunca se reemplaza. Cuando una fila coincide con uno, la fila se omite con un aviso de que el caso está sincronizado desde Git, y el caso conserva lo que dice su archivo. Cambia el escenario en el archivo. Consulta [Sincronizar archivos .feature desde Git](https://docs.probara.net/es/guides/syncing-feature-files-from-git/).

## Cuando el proyecto exige revisión

En un proyecto donde la [revisión de casos de prueba](https://docs.probara.net/es/guides/test-case-review/) es obligatoria,
la importación no escribe ningún caso de prueba:

- Las suites del archivo se crean como siempre.
- Cada caso nuevo se convierte en una solicitud de revisión **Caso nuevo**, y cada caso que
  **Reemplazar casos de prueba coincidentes** sobrescribiría, en una solicitud **Cambio**. Tú
  eres el autor y se asignan los revisores por defecto del proyecto.
- Un caso que ya tiene una solicitud de revisión abierta se omite y aparece en la lista con el motivo.
- La notificación de éxito cuenta las solicitudes de revisión abiertas en lugar de los casos
  importados. Los casos llegan al repositorio cuando se fusionan sus solicitudes, con las mismas
  comprobaciones que un caso creado en la aplicación (por ejemplo, los campos personalizados
  obligatorios deben tener un valor).

## Límite de tamaño

La importación acepta archivos de hasta **10 MB**. Un archivo más grande se rechaza antes de subirlo, con un mensaje que indica elegir una exportación más pequeña.

También existe un número máximo de casos de prueba por importación. Si tu exportación supera ese límite, el archivo se rechaza antes de leer cualquier dato — divide la exportación en lotes más pequeños e impórtalos uno por uno.

## Limitaciones en esta versión

- **Sin adjuntos.** Las imágenes o archivos incluidos en los pasos de los casos de prueba (por ejemplo, capturas de pantalla pegadas en un resultado esperado) **no** se importan. Es esperado que falte una imagen después de importar — vuelve a adjuntarla manualmente si es necesario.
- **Los pasos compartidos llegan como pasos normales.** Cuando un caso de Qase o TestRail usa un paso compartido, la importación copia los pasos de ese paso compartido dentro del caso, en su lugar, como pasos normales — nunca crea un paso compartido en Probara. Si el archivo solo hace referencia a un paso compartido sin incluir su texto, no hay nada que copiar: el caso importa sus demás pasos y la fila muestra un aviso que nombra la referencia omitida. Reimportar una exportación de Probara funciona igual, porque las exportaciones ya escriben los pasos compartidos como pasos simples.
- **Qase y TestRail solo mapean campos del sistema.** Las importaciones desde Qase o TestRail completan Prioridad, Tipo y Estado. Las reimportaciones de Probara mapean todos los campos del sistema más los campos personalizados existentes — pero la importación nunca crea un campo ni una opción nuevos; los campos desconocidos se omiten con un aviso.
- **La estructura Gherkin depende del origen.** Qase JSON, XML y XLSX mantienen los pasos Gherkin como pasos Gherkin. Qase CSV no tiene estructura Gherkin, así que sus pasos se importan como pasos clásicos. Las exportaciones de Probara en JSON, XML, CSV y XLSX conservan el formato de cada caso y la palabra clave de cada paso.
- **Pasos que no encajan con el formato indicado.** Un caso cuyos pasos no encajan con su formato se importa como pasos clásicos, con cada palabra clave al inicio de su paso, y su fila muestra el aviso _Importado con pasos clásicos — los pasos no coincidían con el formato indicado_. Por ejemplo, un paso Gherkin sin palabra clave, o con un resultado esperado, no encaja. Nada se descarta.
- **Los parámetros de Qase y TestRail todavía no se leen.** La columna `parameters` de un CSV de Qase se ignora, así que el caso se importa sin parámetros.
- **Sin conectores en vivo.** La importación siempre funciona a partir de un archivo que exportas manualmente desde la herramienta de origen. No existe una integración directa que traiga casos en vivo desde Qase o TestRail.
- **Sin Markdown.** Los archivos `.md` no se pueden importar — Markdown ya no es un formato de exportación.

## Solución de problemas

| Mensaje                                                        | Qué significa                                                                                                                                                                                                                                                                                      |
| -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| El archivo supera el límite de importación                     | El archivo es más grande de 10 MB — exporta un subconjunto más pequeño o divide el archivo.                                                                                                                                                                                                        |
| Este archivo contiene demasiados casos de prueba               | El archivo analizado supera el límite de casos por importación — divide la exportación en lotes más pequeños.                                                                                                                                                                                      |
| El archivo no se pudo leer como una exportación de `<formato>` | El contenido del archivo no coincide con la herramienta/formato de origen que seleccionaste — confirma que elegiste la herramienta de origen correcta.                                                                                                                                             |
| No se encontraron casos de prueba en este archivo              | El archivo se analizó correctamente pero no contenía ningún caso — confirma que exportaste el archivo correcto.                                                                                                                                                                                    |
| Demasiadas solicitudes de importación                          | Iniciaste demasiadas importaciones muy rápido — espera un momento e intenta de nuevo.                                                                                                                                                                                                              |
| Parámetros no aplicados — el caso se importó sin ellos         | Los `parameters` o las combinaciones excluidas de una fila no son válidos, o incumplen una regla de parámetros. El caso se importa sin ellos, y una importación con reemplazo conserva sus parámetros existentes. Consulta [Casos de prueba parametrizados](https://docs.probara.net/es/guides/parameterized-test-cases/). |
| No se encontró el archivo subido                               | La carga temporal expiró o no se encontró — vuelve a subir el archivo desde el estado de formulario.                                                                                                                                                                                               |

## Permisos

| Acción                            | Viewer | Member | Admin | Owner |
| --------------------------------- | ------ | ------ | ----- | ----- |
| Ver el punto de entrada de Import | No     | Sí     | Sí    | Sí    |
| Abrir el diálogo de importación   | No     | Sí     | Sí    | Sí    |
| Ejecutar una importación          | No     | Sí     | Sí    | Sí    |
