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.

1. Resumen de funciones
| Capacidad | Descripción |
|---|---|
| Orquestación multi-solicitud | Seleccionar solicitudes del historial de captura y combinarlas en un lienzo |
| Varios nodos para la misma API | Añadir el mismo endpoint varias veces, cada nodo con parámetros predefinidos independientes |
| Dependencias | Controlar el orden de ejecución (p. ej., iniciar sesión antes de las API de negocio) |
| Inyección de dependencias | Pasar automáticamente tokens, etc. de respuestas upstream a solicitudes downstream |
| Inyección de expresiones | Generar dinámicamente marcas de tiempo, UUID o usar variables globales |
| Ejecución manual | Reproducir con un toque y ver detalles de solicitud/respuesta por nodo |
| Tareas programadas | Ejecució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
- Abrir la lista de Reproducción combinada
- Tocar + para añadir una regla de reproducción combinada
- Introducir un nombre de regla (obligatorio; por defecto algo como
Combo Replay 260729) - Tocar + en la esquina inferior derecha para añadir solicitudes al lienzo
- Seleccionar las solicitudes necesarias de la lista

Paso 3: Ejecutar
- Guardar la regla (✓ en la esquina superior derecha del editor)
- Tocar el nombre de la regla en la lista para abrir la página de ejecución
- Tocar Ejecutar reproducción
Tras la ejecución, los nodos muestran estado de éxito/error; toque un nodo para ver detalles.

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ón | Método |
|---|---|
| Crear | + en la barra de navegación de la lista |
| Editar | Deslizar a la izquierda → Editar |
| Eliminar | Deslizar 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.

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 dependencia | Entrar en modo de enlace y tocar el nodo destino |
| Parámetros predefinidos | Editar Query / Header / Body (también editable en la página de ejecución, pero allí los cambios son temporales) |
| Inyección de dependencias | Configurar mapeo respuesta upstream → solicitud downstream |
| Eliminar | Eliminar nodo y dependencias/mapeos relacionados |
Arrastrar nodos para reposicionar; tocar espacio vacío para deseleccionar o salir del modo de enlace.

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
- Tocar nodo → Parámetros predefinidos
- Editar Parámetros de consulta / Cabeceras / Cuerpo
- 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) | |
|---|---|---|
| Acceso | Menú del nodo → Parámetros predefinidos | Tocar nodo en la página de ejecución |
| Persistencia | Guardado en la regla, persiste | Solo esta ejecución, no se escribe de vuelta |
| Uso | Casos de prueba fijos | Ajustes 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

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
- Tocar nodo downstream → Establecer dependencia
- Aparece un aviso azul arriba: «Toque el nodo destino para crear la dependencia»
- Tocar el nodo upstream
- 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
- Tocar nodo downstream → Inyección de dependencias
- Tocar Añadir mapeo y configurar:
| Campo | Descripción | Ejemplo |
|---|---|---|
| Nodo origen | De qué upstream tomar la respuesta | Nodo de inicio de sesión |
| Extraer de respuesta upstream | Cabecera / ruta JSON del cuerpo | data.token |
| Inyectar en solicitud | Cabecera / parámetro de consulta / cuerpo | Cabecera Authorization |
| Prefijo opcional | Cadena antes del valor inyectado | Bearer |
- Guardar el mapeo

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}
- Añadir ambas solicitudes
- En
GET /user/profile→ Establecer dependencia → tocarPOST /login - En
GET /user/profile→ Inyección de dependencias:- Origen: nodo de login, cuerpo
data.token - Destino: cabecera
Authorization - Prefijo:
Bearer
- Origen: nodo de login, cuerpo
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ón | Resultado |
|---|---|
${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):
- Cualquier nodo de la regla usa una expresión
${variableName} - Aparece el botón 🌐 a la derecha de la barra de estado
- Tocarlo e introducir los valores
- 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.

9. Página de ejecución
9.1 Interfaz

9.2 Antes de ejecutar
- Tocar nodo → Modificar 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 nodo → Detalles 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
| Estado | Significado |
|---|---|
| Círculo gris | Pendiente |
| Progreso azul | En ejecución |
| ✓ verde | Éxito (HTTP 2xx) |
| ✗ rojo | Fallo |
| − naranja | Omitido (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 /userdepende dePOST /login;POST /orderdepende deGET /user - Configurar mapeo de token en
GET /useryPOST /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
tokenen 🌐 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 regla | Lista + → nombre → añadir solicitudes → ✓ |
| Probar la misma API con varios parámetros | Añadir la misma solicitud varias veces → Parámetros predefinidos por nodo |
| Controlar el orden | Establecer dependencia → tocar nodo upstream |
| Pasar token automáticamente | Configurar Inyección de dependencias |
| Marca de tiempo/UUID dinámicos | Escribir ${method.timestamp()}, etc. en parámetros |
| Compartir token, etc. | Escribir ${token} → rellenar con 🌐 en ejecución |
| Cambiar parámetros temporalmente | Página de ejecución → nodo → Modificar solicitud |
| Ver detalle de una solicitud | Tocar nodo tras ejecutar |
| Volver a ejecutar | Restablecer → Ejecutar reproducción |