La mayoría de las pruebas de API se ejecutan de forma lineal: inicio de sesión, proceso de compra, recibo y aserciones. Este flujo falla cuando un paso depende del anterior. Si el inicio de sesión devuelve 401, ejecutar el proceso de compra no aporta información y puede ocultar el error original detrás de un segundo fallo. La solución es usar lógica condicional para leer la respuesta, decidir si continuar y reportar exactamente dónde falló el escenario.
En esta guía configurará una bifurcación if/else en un escenario de prueba de API con Apidog: iniciar sesión, comprobar el código de estado y ejecutar el proceso de compra solo si la autenticación fue correcta. Si todavía no ha creado escenarios lineales, consulte la guía sobre cómo escribir un escenario de prueba con Apidog. Para revisar el patrón if/else, vea la guía de MDN sobre sentencias condicionales.
Qué es el control de flujo y qué no es
En Apidog, las pruebas automatizadas se crean en el módulo Pruebas. La unidad principal es el Escenario de Prueba, análogo a una colección en Postman. Dentro de un escenario se agregan Pasos de Prueba: solicitudes HTTP y elementos de control de flujo, como bifurcaciones, bucles o esperas.
El control de flujo permite que el escenario haga más que ejecutar solicitudes en orden. Según la documentación de Apidog sobre control de flujo y bifurcación condicional, una Bifurcación Condicional funciona como un if/else:
- Lee un valor de un paso anterior.
- Evalúa ese valor con una condición.
- Ejecuta los pasos de la rama
Ifo los de la ramaElse.
No confunda una bifurcación con un bucle:
- Una bifurcación decide una vez qué ruta ejecutar.
- Un bucle repite un bloque de pasos varias veces.
Para iterar sobre un array de IDs de pedido, use un bucle ForEach, no una bifurcación. Consulte el tutorial de bucle ForEach para ese caso.
La documentación de Apidog no indica restricciones de plan para control de flujo, bifurcaciones condicionales, bucles o paso de datos entre pasos. Tampoco distingue estas funciones entre la versión en la nube y la autoalojada.
Construya un escenario que se bifurque según la respuesta de inicio de sesión
El objetivo será este:
Si login devuelve 200:
ejecutar proceso de compra
Si login devuelve otro código:
registrar el fallo y detener la ruta de compra
Paso 1: cree el escenario de prueba
- Abra Apidog y vaya al módulo Pruebas.
- Haga clic en
+junto a la barra de búsqueda. - Cree un Escenario de Prueba.
- Seleccione el directorio y la prioridad.
- Guarde el escenario vacío.
Paso 2: agregue la solicitud de inicio de sesión
Añada un Paso de Prueba con una solicitud personalizada. Por ejemplo:
POST https://api.your-store.com/v1/login
Content-Type: application/json
{
"email": "dana@example.com",
"password": "correct-horse-battery-staple"
}
Ejecute esta solicitud de forma aislada antes de crear la bifurcación. Debe conocer la estructura real de la respuesta. Un inicio de sesión correcto puede devolver:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"userId": "usr_10482"
}
Paso 3: abra el modo de orquestación
Haga clic en cualquier paso para entrar en el modo de orquestación:
- El panel izquierdo muestra el flujo del escenario.
- El panel derecho muestra la configuración del paso seleccionado.
- Puede reordenar pasos arrastrando el icono
≡.
Aquí es donde añadirá y organizará las ramas If y Else.
Paso 4: añada una Bifurcación Condicional
- Haga clic en
Añadir Paso. - Seleccione
Bifurcación Condicional. - Configure la condición para validar el resultado del login.
Apidog ofrece operadores como:
Es igual aNo es igual aExisteNo existeMenor queMenor o igual queMayor queMayor o igual queCoincide con RegexContieneNo contieneEstá vacíoNo está vacíoEn la listaNo en la lista
Para este escenario, la condición debe ser equivalente a:
estado de respuesta del login Es igual a 200
Paso 5: use datos del paso anterior en la condición
Puede alimentar la condición de dos formas.
Opción A: Recuperar datos de paso previo
Esta es la ruta más directa para usar la respuesta del login.
- Haga clic en el campo de valor de la condición.
- Haga clic en el icono de varita mágica.
- Seleccione
Recuperar datos de paso previo. - Elija el paso de inicio de sesión.
- Seleccione el código de estado de la respuesta.
Internamente, Apidog usa referencias con esta sintaxis:
{{$.<step id>.response.body.<field path>}}
Por ejemplo, para recuperar el token del cuerpo de respuesta del paso 1:
{{$.1.response.body.token}}
Tenga en cuenta dos limitaciones:
-
Recuperar datos de paso previofunciona en el módulo Pruebas, no en el módulo APIs. - La referencia se resuelve al ejecutar el escenario completo, no al ejecutar un paso aislado.
Si una referencia aparece vacía durante una ejecución individual, ejecute todo el escenario.
Opción B: extraer una variable con nombre
Si necesita reutilizar el token u otro valor en varios pasos o módulos:
- Abra los post-procesadores de la solicitud de login.
- Añada
Extraer Variable. - Use una expresión JSONPath, por ejemplo:
$.token
- Guarde el valor con un nombre, por ejemplo
token. - Reutilícelo en otros pasos:
{{token}}
Este enfoque es útil para compartir valores entre solicitudes, bifurcaciones o módulos. Para más detalles, consulte cómo pasar datos entre pasos de prueba.
Para validar el código de estado del login, Recuperar datos de paso previo es la opción más corta.
Paso 6: configure las ramas If y Else
Pase el cursor sobre el bloque If y haga clic en + Else.
Ahora configure ambos caminos.
Rama If: ejecutar el proceso de compra
Dentro del bloque If, agregue la solicitud de proceso de compra. Esta solicitud se ejecutará solo si el login devolvió 200.
Si el endpoint necesita el token de autenticación, añádalo al encabezado:
Authorization: Bearer {{token}}
También puede usar una referencia al paso previo si no extrajo la variable. Este patrón coincide con las solicitudes autenticadas descritas en la documentación de la API de Stripe.
Rama Else: hacer visible el error
Dentro del bloque Else, añada un paso que deje claro que el login falló. Por ejemplo:
- Una solicitud a un endpoint de logs o notificaciones.
- Una solicitud personalizada con una aserción que falle siempre.
- Un paso que registre el código de estado y el cuerpo de la respuesta.
El flujo final debe quedar así:
Login
├── If: status == 200
│ └── Crear proceso de compra
└── Else
└── Registrar fallo de autenticación
Paso 7: guarde y ejecute el escenario
Haga clic en Guardar todo.
Después, ejecute el escenario completo con dos casos:
- Credenciales válidas: debe ejecutarse la rama
If. - Credenciales inválidas: debe ejecutarse la rama
Else.
Los cambios sin guardar muestran un indicador de punto. Si aparece, guarde antes de ejecutar o compartir el escenario.
Variaciones y control de flujo avanzado
Una vez configurada la bifurcación básica, puede aplicar el mismo patrón a otros casos.
-
Bifurcar según un campo del cuerpo de respuesta.
No está limitado al código de estado. Por ejemplo, si el endpoint devuelve
200incluso cuando una cuenta está bloqueada, evalúe:
{{$.1.response.body.status}}
Luego compare el valor con "active" usando Es igual a, o use Contiene para evaluar un mensaje.
Evaluar rangos y listas.
UseMayor quepara validar un saldo oEn la listapara comprobar si un rol pertenece a un conjunto permitido.Combinar bifurcaciones con bucles.
Dentro de un bucleForEach, puede omitir productos sin stock y procesar los restantes. Las referencias disponibles incluyen:
{{$.<loop step id>.index}}
{{$.<loop step id>.element.<field path>}}
El índice comienza en 0. Para implementar este patrón, consulte el tutorial de bucle ForEach.
Detener un bucle antes con
Break If.
UseBreak If conditionpara finalizar un bucle cuando se cumpla una condición. Puede reposicionarlo y añadirlo varias veces dentro del mismo bucle.-
Gestionar errores con
On Error.
Los bucles incluyen un elemento fijoOn Error. Sus opciones controlan qué ocurre cuando falla una solicitud dentro del ciclo:-
Ignorar: continúa con la siguiente solicitud. -
Continuar: omite el resto de solicitudes del ciclo actual. -
Interrumpir ejecución: detiene el bucle y continúa después de él. -
Finalizar ejecución: detiene todo el escenario.
-
Añadir una espera entre solicitudes.
UseEsperapara introducir un retraso en milisegundos, por ejemplo entre una operación de creación y una lectura de verificación.Calcular condiciones complejas con scripts.
Cuando los operadores visuales no son suficientes, use scripts pre-procesador o post-procesador. Dentro de un script no puede usar{{variable}}directamente. Use:
pm.variables.get("$.2.response.body.token")
Ajuste el ID del paso y la ruta del campo según su escenario. Para profundizar, consulte las guías sobre encadenamiento de solicitudes y orquestación de pruebas de API y paso de datos.
Un escenario no puede referenciarse a sí mismo. Esta restricción evita bucles infinitos accidentales cuando se anidan escenarios.
Automatice el escenario con la CLI de Apidog
Puede ejecutar el escenario sin interfaz gráfica desde CI. Instale la CLI e inicie sesión:
npm install -g apidog-cli
apidog login --with-token <YOUR_ACCESS_TOKEN>
Ejecute el escenario por ID, indicando entorno y reportero:
apidog run --access-token $APIDOG_ACCESS_TOKEN -t <scenario_id> -e <env_id> -r cli
Parámetros principales:
-
-t: ID del escenario de prueba. -
-e: ID del entorno. -
-r: reportero.
Puede usar:
-r cli
Para salida de consola, o generar varios reportes:
-r html,cli
También están disponibles reportes html y junit para publicarlos como artefactos del pipeline.
La bifurcación se comporta igual que en la aplicación: la CLI evalúa la respuesta del login, sigue la rama If o Else, y devuelve un código de salida acorde al resultado. Un login fallido puede, por tanto, hacer fallar la compilación de CI.
Consulte la guía de instalación de la CLI de Apidog, la guía de Acciones de GitHub de la CLI de Apidog y la guía para programar pruebas de API en Apidog.
Preguntas frecuentes
¿Cuál es la diferencia entre una bifurcación condicional y un bucle?
Una bifurcación decide una sola vez qué bloque ejecutar según una condición. Un bucle ejecuta un bloque repetidamente.
Use una bifurcación para decisiones como:
Si login fue exitoso, crear proceso de compra.
Si no, registrar el error.
Use For o ForEach para repetir solicitudes sobre un número de iteraciones o un array. Consulte el tutorial del bucle ForEach.
¿Por qué aparece vacía mi referencia de Recuperar datos de paso previo?
Las causas habituales son:
- Está usando el módulo APIs en lugar del módulo Pruebas.
- Está ejecutando un paso aislado en lugar del escenario completo.
La referencia necesita una ejecución completa del escenario para obtener la respuesta del paso anterior.
¿Puedo bifurcar según un campo del cuerpo de respuesta?
Sí. Puede usar una referencia como:
{{$.1.response.body.status}}
O extraer el valor a una variable con nombre. Después, aplique operadores como Es igual a, Contiene o En la lista. Consulte cómo pasar datos entre pasos de prueba.
¿Cómo uso una variable dentro de un script?
Los scripts no aceptan directamente la sintaxis {{variable}}. Use:
pm.variables.get("$.2.response.body.token")
Ajuste el ID del paso y la ruta del campo para recuperar el valor necesario.
¿La bifurcación requiere un plan adicional o la versión autoalojada?
La documentación de Apidog no indica restricciones de plan para control de flujo, bifurcaciones, bucles o paso de datos. Tampoco diferencia estas capacidades entre la versión en la nube y la autoalojada.
Conclusión
Una prueba lineal indica que algo falló. Una prueba con bifurcaciones indica dónde falló y evita ejecutar pasos que ya no pueden tener éxito.
Para implementar este patrón:
- Añada una
Bifurcación Condicional. - Use una respuesta previa o una variable extraída como entrada.
- Configure la condición del bloque
If. - Añada una rama
+ Elsepara registrar o detener el flujo ante errores. - Ejecute el escenario completo y automatícelo con
apidog runen CI.
Pruebe Apidog gratis y convierta pruebas lineales en escenarios que toman decisiones según las respuestas reales de su API.



Top comments (0)