Guía de Reproducción combinada

Versión del documento: 20260729

Versiones de la aplicación compatibles con este documento:

  • iOS: >= 3.13
  • Android: >= 1.2.0

La Reproducción combinada (Combo Replay) permite orquestar múltiples solicitudes HTTP/HTTPS en un único «flujo», ejecutándolas en serie o en paralelo según sus dependencias. Es ideal para pruebas de integración de API, pruebas de regresión y validación por lotes de la misma API con distintos parámetros de entrada.

ApiCatcher | Casos de uso de Reproducción combinada

1. Resumen de funciones

CapacidadDescripción
Orquestación multi-solicitudSeleccionar solicitudes del historial de captura y combinarlas en un lienzo
Varios nodos para la misma APIAñadir el mismo endpoint varias veces, cada nodo con parámetros predefinidos independientes
DependenciasControlar el orden de ejecución (p. ej., iniciar sesión antes de las API de negocio)
Inyección de dependenciasPasar automáticamente tokens, etc. de respuestas upstream a solicitudes downstream
Inyección de expresionesGenerar dinámicamente marcas de tiempo, UUID o usar variables globales
Ejecución manualReproducir con un toque y ver detalles de solicitud/respuesta por nodo
Tareas programadasEjecución automática con Cron o intervalo personalizado

2. Inicio rápido

Paso 1: Capturar primero

Las solicitudes de Reproducción combinada provienen del historial de captura. Capture primero un lote de solicitudes HTTP/HTTPS en la app (no se pueden añadir solicitudes WebSocket).

Paso 2: Crear una regla

  1. Abrir la lista de Reproducción combinada
  2. Tocar + para añadir una regla de reproducción combinada
  3. Introducir un nombre de regla (obligatorio; por defecto algo como Combo Replay 260729)
  4. Tocar + en la esquina inferior derecha para añadir solicitudes al lienzo
  5. Seleccionar las solicitudes necesarias de la lista

ApiCatcher | Pasos para crear una regla de reproducción combinada

Paso 3: Ejecutar

  1. Guardar la regla (✓ en la esquina superior derecha del editor)
  2. Tocar el nombre de la regla en la lista para abrir la página de ejecución
  3. Tocar Ejecutar reproducción

Tras la ejecución, los nodos muestran estado de éxito/error; toque un nodo para ver detalles.

ApiCatcher | Ejecutar una regla de reproducción combinada

3. Gestión de reglas

3.1 Información de la lista

Cada tarjeta de regla muestra:

  • Nombre de la regla
  • Número de nodos
  • Vista previa de rutas (hasta 3)
  • Cantidad de dependencias y mapeos de parámetros
  • Última actualización

3.2 Crear / Editar / Eliminar

AcciónMétodo
Crear+ en la barra de navegación de la lista
EditarDeslizar a la izquierda → Editar
EliminarDeslizar a la izquierda → Eliminar
Guardar en la esquina superior derecha del editor

Las reglas se almacenan localmente y se perderán al desinstalar la app o borrar datos.

ApiCatcher | Lista de reglas de reproducción combinada

4. Edición de reglas combinadas

4.1 Añadir solicitudes

  • Tocar el botón flotante + en la esquina inferior derecha
  • Buscar por URL / Method
  • Filtrar por Session, Host, tipo, código de estado

La misma API puede añadirse varias veces: por ejemplo, 3 nodos /api/order para probar casos normales, valores límite y parámetros inválidos.

4.2 Menú del nodo

Tocar un nodo para abrir el menú:

MenúFunción
Establecer dependenciaEntrar en modo de enlace y tocar el nodo destino
Parámetros predefinidosEditar Query / Header / Body (también editable en la página de ejecución, pero allí los cambios son temporales)
Inyección de dependenciasConfigurar mapeo respuesta upstream → solicitud downstream
EliminarEliminar nodo y dependencias/mapeos relacionados

Arrastrar nodos para reposicionar; tocar espacio vacío para deseleccionar o salir del modo de enlace.

ApiCatcher | Crear dependencias y configurar inyección

5. Parámetros predefinidos

Se usan durante la edición de la regla para fijar datos de prueba por nodo, especialmente en escenarios de «misma API, distintos parámetros».

5.1 Pasos

  1. Tocar nodo → Parámetros predefinidos
  2. Editar Parámetros de consulta / Cabeceras / Cuerpo
  3. Al terminar, tocar en la esquina superior derecha de la hoja para guardar en la regla

5.2 Diferencia con «Modificar solicitud» en la página de ejecución

Parámetros predefinidos (editor)Modificar solicitud (página de ejecución)
AccesoMenú del nodo → Parámetros predefinidosTocar nodo en la página de ejecución
PersistenciaGuardado en la regla, persisteSolo esta ejecución, no se escribe de vuelta
UsoCasos de prueba fijosAjustes temporales antes de reejecutar

5.3 Ejemplo: varios escenarios para la misma API

Nodo A: POST /api/login     → body: credenciales válidas
Nodo B: POST /api/login     → body: contraseña incorrecta
Nodo C: POST /api/login     → body: contraseña vacía
(3 nodos sin dependencia → ejecución paralela)

5.4 Compatibilidad con inyección de expresiones

Ver: Sección 8, Inyección de expresiones

ApiCatcher | Parámetros predefinidos

6. Dependencias

6.1 Significado

Una línea A → B significa: A depende de B; B se ejecuta primero, A después.

La flecha va del downstream (A) al upstream (B).

6.2 Crear una dependencia

  1. Tocar nodo downstreamEstablecer dependencia
  2. Aparece un aviso azul arriba: «Toque el nodo destino para crear la dependencia»
  3. Tocar el nodo upstream
  4. Aparece la línea de enlace

6.3 Limitaciones

  • No se puede crear la misma dependencia dos veces
  • No se pueden formar ciclos
  • Eliminar una línea también elimina los mapeos de parámetros relacionados

6.4 Orden de ejecución

        ┌─ Nodo B ─┐
Nodo A ─┤          ├─ Paralelo (misma capa)
        └─ Nodo C ─┘
              ↓
           Nodo D (se ejecuta tras el éxito de A y C)
  • Misma capa (sin dependencias mutuas): ejecución paralela
  • Capas distintas (con dependencias): ejecución serial; la siguiente capa solo corre tras el éxito completo de la anterior
  • Fallo en cualquier capa: todos los nodos posteriores se marcan como omitidos

7. Inyección de dependencias (Mapeo de parámetros)

Transfiere automáticamente token, userId, etc. de respuestas upstream a solicitudes downstream.

7.1 Requisito previo

El nodo destino debe tener al menos una dependencia upstream; de lo contrario aparece «Sin nodos upstream, cree primero una dependencia».

7.2 Configuración

  1. Tocar nodo downstreamInyección de dependencias
  2. Tocar Añadir mapeo y configurar:
CampoDescripciónEjemplo
Nodo origenDe qué upstream tomar la respuestaNodo de inicio de sesión
Extraer de respuesta upstreamCabecera / ruta JSON del cuerpodata.token
Inyectar en solicitudCabecera / parámetro de consulta / cuerpoCabecera Authorization
Prefijo opcionalCadena antes del valor inyectadoBearer
  1. Guardar el mapeo

ApiCatcher | Inyección de dependencias

7.3 Escenario clásico: inicio de sesión + solicitud con token

[Login POST /login] ──→ [Perfil GET /user/profile]
         │                        ↑
    respuesta: data.token   Authorization = Bearer ${token inyectado}
  1. Añadir ambas solicitudes
  2. En GET /user/profileEstablecer dependencia → tocar POST /login
  3. En GET /user/profileInyección de dependencias:
    • Origen: nodo de login, cuerpo data.token
    • Destino: cabecera Authorization
    • Prefijo: Bearer

7.4 Orden de procesamiento en la ejecución

Parámetros predefinidos / modificar solicitud
        ↓
   Inyección de expresiones (${method.timestamp()}, etc.)
        ↓
   Inyección de dependencias (mapeos)
        ↓
     Enviar solicitud HTTP

8. Inyección de expresiones

Escriba expresiones ${...} en cabeceras, parámetros de consulta o cuerpo; se reemplazan al ejecutar.

8.1 Métodos integrados

ExpresiónResultado
${method.timestamp()}Marca de tiempo actual (milisegundos)
${method.uuid()}UUID (minúsculas)
${method.date()}Fecha, p. ej. 2026-07-29
${method.time()}Hora, p. ej. 14:30:00
${method.datetime()}Fecha y hora, p. ej. 2026-07-29 14:30:00

Ejemplo:

{
  "requestId": "${method.uuid()}",
  "timestamp": "${method.timestamp()}",
  "date": "${method.date()}"
}

8.2 Variables globales

Expresiones como ${token}, ${appId} (que no empiezan por method.) son variables globales.

Configuración (página de ejecución):

  1. Cualquier nodo de la regla usa una expresión ${variableName}
  2. Aparece el botón 🌐 a la derecha de la barra de estado
  3. Tocarlo e introducir los valores
  4. Tras guardar, persisten con la regla (se eliminan al borrar la regla)

Parámetros predefinidos y «Modificar solicitud» admiten la sintaxis de expresiones; el reemplazo ocurre al tocar «Ejecutar reproducción».

8.3 Ejemplo combinado

Header:  X-Request-Id: ${method.uuid()}
Query:   ts=${method.timestamp()}
Body:    {"token": "${token}", "userId": "123"}

Introduzca token mediante 🌐 antes de ejecutar.

ApiCatcher | Inyección de expresiones

9. Página de ejecución

9.1 Interfaz

ApiCatcher | Página de ejecución

9.2 Antes de ejecutar

  • Tocar nodoModificar solicitud (solo esta ejecución, no se guarda en la regla)
  • Si hay expresiones globales → tocar 🌐 para introducir valores

9.3 Después de ejecutar

  • Tocar nodoDetalles de ejecución (solicitud real enviada, respuesta, duración, errores)
  • Restablecer en la barra de navegación (rojo): borrar resultados y volver a ejecutar

9.4 Estado de los nodos

EstadoSignificado
Círculo grisPendiente
Progreso azulEn ejecución
✓ verdeÉxito (HTTP 2xx)
✗ rojoFallo
− naranjaOmitido (fallo upstream)

9.5 Criterio de éxito

Los códigos HTTP 200–299 cuentan como éxito; el resto como fallo.

10. Manual de escenarios típicos

Escenario 1: Probar en paralelo varios parámetros para la misma API

POST /api/order  nodo1  body: {"type":"normal"}
POST /api/order  nodo2  body: {"type":"edge"}
POST /api/order  nodo3  body: {"type":"invalid"}
  • Sin dependencias → tres nodos en paralelo
  • Definir distintos body mediante Parámetros predefinidos por nodo
  • Comparar resultados tras la ejecución

Escenario 2: Cadena de inicio de sesión

POST /login  →  GET /user  →  POST /order
     │              ↑              ↑
     └──── token inyectado en Authorization ─┘
  • Dependencias: GET /user depende de POST /login; POST /order depende de GET /user
  • Configurar mapeo de token en GET /user y POST /order
  • Ejecución serial: login → obtener usuario → crear pedido

Escenario 3: Parámetros dinámicos + token fijo

  • Body: {"ts":"${method.timestamp()}","id":"${method.uuid()}"}
  • Header: Authorization: Bearer ${token}
  • Introducir token en 🌐 antes de ejecutar
  • Marca de tiempo y UUID se actualizan en cada ejecución

11. Preguntas frecuentes

P: Añadí solicitudes pero la página de ejecución está vacía?
R: Guarde la regla con en el editor y abra la página de ejecución desde la lista.

P: Cambié los parámetros predefinidos pero la página de ejecución no cambió?
R: Confirme que la regla está guardada; «Modificar solicitud» solo afecta la ejecución actual.

P: La inyección de dependencias no funciona?
R: Compruebe: ① existen dependencias; ② la ruta JSON coincide con la respuesta de ejemplo; ③ el nodo upstream tuvo éxito; ④ la inyección de expresiones se ejecuta antes que la de dependencias.

P: Las variables globales se reemplazan por vacío?
R: Introduzca valores mediante 🌐 en la página de ejecución y guarde; las no definidas se convierten en cadenas vacías.

P: Por qué algunos nodos se omiten?
R: Si falla un nodo de la misma capa o upstream, todos los nodos de capas posteriores se marcan como omitidos.

P: Se pueden añadir solicitudes WebSocket?
R: No, solo se admiten solicitudes HTTP/HTTPS estándar.

12. Referencia rápida

Quiero…Cómo hacerlo
Crear una reglaLista + → nombre → añadir solicitudes →
Probar la misma API con varios parámetrosAñadir la misma solicitud varias veces → Parámetros predefinidos por nodo
Controlar el ordenEstablecer dependencia → tocar nodo upstream
Pasar token automáticamenteConfigurar Inyección de dependencias
Marca de tiempo/UUID dinámicosEscribir ${method.timestamp()}, etc. en parámetros
Compartir token, etc.Escribir ${token} → rellenar con 🌐 en ejecución
Cambiar parámetros temporalmentePágina de ejecución → nodo → Modificar solicitud
Ver detalle de una solicitudTocar nodo tras ejecutar
Volver a ejecutarRestablecerEjecutar reproducción