Apidog Docs
🇪🇸 Español
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português
🇪🇸 Español
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português
🇪🇸 Español
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
  1. Escenarios de prueba
  • Centro de aprendizaje de Apidog
  • Primeros pasos
    • Introducción a Apidog
    • Conceptos básicos en Apidog
    • Navegación por Apidog
    • Inicio rápido
      • Descripción general
      • Crear un Endpoint
      • Realizar una petición
      • Añadir una aserción
      • Creación de escenarios de prueba
      • Compartir documentación de API
      • Explore Más
    • Migración a Apidog
      • Descripción general
      • Importación manual
      • Importación programada (Vincular fuentes de datos)
      • Opciones de importación
      • Exportar datos
      • Importar desde
        • Importar desde Postman
        • Importar especificación OpenAPI
        • Importar cURL
        • Importar archivos Markdown
        • Importar desde Insomnia
        • Importar desde apiDoc
        • Importar archivo .har
        • Importar WSDL
  • Datos de API mock
    • Descripción general
    • Smart Mock
    • Mock personalizado
    • Secuencia de prioridad de mock
    • Scripts de mock
    • Mock en la nube
    • Mock de Runner autoalojado
    • Idioma de mock (locales)
  • Cuenta y preferencias
    • Configuración de la cuenta
    • Generación de un token de acceso OpenAPI
    • Notificación
    • Configuración de idioma
    • Teclas de acceso rápido
    • Configuración del proxy de red
    • Copia de seguridad de los datos
    • Actualizar Apidog
    • Eliminar cuenta
    • Funciones experimentales
  • Enviar peticiones
    • Descripción general
    • Depuración de SSE
    • Cliente MCP
    • Socket.IO
    • WebSocket
    • Webhook
    • SOAP o WebService
    • GraphQL
    • gRPC
    • Usar agentes proxy de petición para la depuración
    • Crear peticiones
      • Historial de peticiones
      • Conceptos básicos de las peticiones
      • Parámetros y cuerpo
      • Encabezados de petición
      • Configuración de peticiones
      • Depurar peticiones
      • Guardar peticiones como endpoints
      • HTTP/2
    • Autenticación y autorización
      • Descripción general
      • Certificados de CA y de cliente
      • Tipos de autorización
      • Autenticación Digest
      • OAuth 1.0
      • OAuth 2.0
      • Autenticación Hawk
      • Kerberos
      • NTLM
      • Akamai EdgeGrid
    • Respuesta y cookies
      • Visualización de respuestas de API
      • Gestión de cookies
      • Descripción general
  • Desarrollar y depurar APIs
    • Descripción general
    • Generación de peticiones
    • Envío de peticiones
    • Casos de depuración
    • Casos de prueba
    • Valores dinámicos
    • Validación de respuestas
    • Diseño primero vs. petición primero
    • Generación de código
    • Entornos y variables
      • Descripción general
      • Uso de variables
      • Gestión de entornos
    • Secretos de la bóveda
      • Descripción general
      • HashiCorp Vault
      • Azure Key Vault
      • AWS Secrets Manager
    • Módulos de valores dinámicos
      • Aerolínea
      • Animal
      • Color
      • Comercio
      • Empresa
      • Base de datos
      • Tipo de dato
      • Fecha
      • Finanzas
      • Comida
      • Git
      • Hacker
      • Helpers
      • Imagen
      • Internet
      • Ubicación
      • Lorem
      • Música
      • Número
      • Persona
      • Teléfono
      • Ciencia
      • String
      • Sistema
      • Vehículo
      • Word
    • Preprocesadores y postprocesadores
      • Descripción general
      • Aserción
      • Extraer variable
      • Esperar
      • Seguridad
      • Operaciones de base de datos
        • Descripción general
        • MySQL
        • MongoDB
        • Redis
        • Cliente Oracle
      • Uso de scripts
        • Descripción general
        • Scripts de preprocesador
        • Scripts de posprocesador
        • Scripts públicos
        • Referencia de scripts de Postman
        • Llamar a otros lenguajes de programación
        • Uso de bibliotecas JS
        • Visualización de respuestas
        • Ejemplos de scripts
          • Scripts de aserción
          • Uso de variables
          • Modificación de peticiones
          • Otros ejemplos
    • Depuración de APIs
      • Depurador de agentes de IA
      • Depurador A2A
  • Diseñar APIs
    • Descripción general
    • Crear un nuevo proyecto de API
    • Conceptos básicos de endpoints
    • Directrices de diseño de API
    • Módulo
    • Configurar múltiples ejemplos de cuerpo de petición
    • Componentes
    • Campos comunes
    • Parámetros globales
    • Historial de cambios del endpoint
    • Comentarios
    • Gestión de endpoints por lotes
    • API de protocolo personalizado
    • Modo Spec-first (Beta)
    • Esquemas de seguridad
      • Descripción general
      • Crear un esquema de seguridad
      • Usar el esquema de seguridad
      • Esquema de seguridad en la documentación en línea
    • Funciones avanzadas
      • Campos personalizados de endpoint
      • Escenarios de prueba asociados
      • Estado del endpoint
      • Apariencia de las listas de parámetros
      • Identificación única de endpoints
    • Schemas
      • Descripción general
      • Crear un nuevo esquema
      • Crear un esquema
      • Generar esquemas a partir de JSON, etc.
      • oneOf, allOf, anyOf
      • Uso de Discriminator
  • Pruebas de API
    • Descripción general
    • Escenarios de prueba
      • Crear un escenario de prueba
      • Pasar datos entre peticiones
      • Condiciones de control de flujo
      • Sincronizar datos desde endpoints y casos de endpoint
      • Importar endpoints y casos de endpoint desde otros proyectos
      • Exportar escenarios de prueba
    • Informes de prueba
      • Informes de prueba
    • Ejecutar escenarios de prueba
      • Ejecutar un escenario de prueba
      • Ejecutar escenarios de prueba por lotes
      • Pruebas basadas en datos
      • Datos de prueba compartidos
      • Tareas programadas
      • Gestionar el entorno de ejecución de API de otros proyectos
    • Suite de pruebas
      • Descripción general
      • Crear una suite de pruebas
      • Orquestar suite de pruebas
      • Ejecutar conjuntos de pruebas localmente
      • Ejecutar suites de prueba mediante CLI
      • Tareas programadas
    • Probar APIs
      • Pruebas de integración
      • Pruebas de rendimiento
      • Pruebas de extremo a extremo
      • Pruebas de regresión
      • Pruebas de contrato
    • Apidog CLI
      • Descripción general
      • Instalación y ejecución de Apidog CLI
      • Opciones de Apidog CLI
    • CI/CD
      • Descripción general
      • Integrar con Github Actions
      • Integrar con Gitlab
      • Integrar con Jenkins
      • Activar prueba mediante commit de Git
  • Publicar documentación de API
    • Descripción general
    • Tecnologías de API compatibles
    • Uso compartido rápido
    • Visualización de la documentación de API
    • Documentación de Markdown
    • Publicación de sitios de documentación
    • Página de inicio de sesión personalizada
    • Diseños personalizados
    • CSS, JavaScript, HTML personalizados
    • Dominio personalizado
    • Funciones de IA
    • Configuración de SEO
    • Configuración avanzada
      • Búsqueda en la documentación
      • Proxy CORS
      • Integración de Google Analytics
      • Configuración del árbol de carpetas
      • Configuración de visibilidad
      • Incrustación de valores en las URL de documentación
    • Versiones de API
      • Descripción general
      • Crear versiones de API
      • Publicación de versiones de API
      • Compartir endpoints con versiones de API
  • Ramas
    • Descripción general
    • Crear una rama de sprint
    • Prueba de APIs en una rama
    • Diseño de API en una rama
    • Fusionar ramas de sprint
    • Gestión de ramas de sprint
    • AI Branch (Beta)
  • Funciones de IA
    • Descripción general
    • Habilitación de funciones de IA
    • Generación de casos de prueba
    • Modificación de esquemas con IA
    • Comprobación de cumplimiento del endpoint
    • Comprobación de integridad de la documentación de API
    • Nomenclatura de campos con IA
    • Preguntas frecuentes
  • Servidor MCP de Apidog
    • Descripción general
    • Conectar un proyecto de Apidog a la IA
    • Conectar documentación publicada a la IA
    • Conectar archivos OpenAPI a la IA
  • Mejores prácticas
    • Gestión de firmas de API
    • Acceso a APIs protegidas con OAuth 2.0
    • Flujo de trabajo de colaboración
    • Gestión del estado de autenticación
  • Espacio sin conexión
    • Descripción general
  • Administración
    • Gestión de proyectos
      • Gestión de proyectos
      • Configuración de notificaciones
      • Gestión de miembros del proyecto
      • Recursos del proyecto
        • Conexión a la base de datos
        • Conexión con Git
    • Gestión de equipos
      • Gestión de equipos
      • Gestión de miembros del equipo
      • Actividades del equipo
      • Roles y permisos del equipo
      • Recursos del equipo
        • General Runner
        • Variables de equipo
        • Agente proxy de peticiones
      • Colaboraciones en tiempo real
        • Colaboración en equipo
    • Lista de verificación de incorporación
      • Conceptos básicos
      • Guía de incorporación
    • Gestión de la organización
      • Gestión de la organización
      • Rol y permisos de la organización
      • Gestión de planes
        • Administradores de facturación en organizaciones
      • Inicio de sesión único (SSO)
        • Descripción general de SSO
        • Configuración de Microsoft Entra ID
        • Configuración de Okta
        • Configuración de SSO para una organización
        • Gestión de cuentas de usuario
        • Asignar grupos a equipos
      • Aprovisionamiento SCIM
        • Introducción al aprovisionamiento SCIM
        • Microsoft Entra ID
        • Okta
      • Recursos de la organización
        • Runner autohospedado
  • Facturación
    • Descripción general
    • Créditos
    • Actualizar su plan
    • Métodos de pago alternativos
    • Gestión de suscripciones
    • Trasladar equipos de pago a organizaciones
  • Complementos
    • API Hub
    • Plugin Apidog Intellij IDEA
    • Extensión del navegador
      • Chrome
      • Microsoft Edge
    • Proxy de peticiones
      • Proxy de peticiones en la web
      • Proxy de petición en documentos compartidos
      • Proxy de peticiones en el cliente
  • Datos y seguridad
    • Almacenamiento y seguridad de datos
    • Privacidad y seguridad de los datos del usuario
    • Enrutamiento de peticiones y seguridad de datos
  • Referencias
    • Enfoque de diseño de API primero
    • Extensiones de la especificación OpenAPI de Apidog
    • JSONPath
    • XPath
    • Expresiones regulares
    • JSON Schema
    • Formato de archivo CSV
    • Instalación del entorno Java
    • Entorno de implementación de Runner
    • Sintaxis Markdown de Apidog
    • Extensiones Swagger de Apidog
      • Descripción general
      • x-apidog-folder
      • x-apidog-status
      • x-apidog-name
      • x-apidog-maintainer
    • Extensiones JSON Schema de Apidog
      • Descripción general
      • x-apidog-mock
      • x-apidog-orders
      • x-apidog-enum
  • Apidog Europa
    • Apidog Europe
  • Centro de soporte
    • Apidog Support Center
    • Importar/exportar
      • ¿Cómo importar datos de API en Apidog?
      • ¿Cómo importar cURL en Apidog?
      • ¿Cómo migrar entornos de Postman a Apidog?
      • ¿Cómo agrupar endpoints automáticamente al importar Swagger/OpenAPI?
    • Envío de peticiones
      • ¿Admite Apidog Socket.IO?
      • ¿Por qué el signo "+" en el valor del parámetro se decodifica como un espacio?
      • ¿Cómo enviar una petición en Apidog?
      • ¿Cómo enviar una petición GraphQL en Apidog?
      • ¿Cómo enviar una petición gRPC en Apidog?
      • ¿Cómo enviar una petición SOAP/WebService en Apidog?
      • ¿Cómo enviar una petición WebSocket en Apidog?
      • ¿Admite Apidog scripts previos a la petición/scripts de prueba y aserciones en las API WebSocket?
      • ¿Cómo enviar una petición SSE en Apidog?
      • ¿Cómo añadir encabezados predeterminados a nivel de carpeta?
      • ¿Admite Apidog scripts de pre-petición/prueba y aserciones en las API gRPC?
      • Error del resolvedor DNS ELANREFUSED.DNS
      • ¿Por qué recibo un error "socket hang up" al enviar una petición?
      • Corrección de errores de petición
        • Corrección del error read ECONNRESET
        • Corrección del error ECONNREFUSED
        • Corrección del error ETIMEDOUT
        • Solución del error ENOTFOUND: Couldn't resolve host
        • Corrección de ENOTFOUND: error getaddrinfo ENOTFOUND www
        • Solución del error connect EHOSTUNREACH
    • Diseño de APIs
      • ¿Cómo uso variables en la ruta?
      • ¿Puedo usar un componente de respuesta como respuesta predeterminada?
      • ¿Cómo comprobar quién ha modificado un endpoint?
      • ¿Cómo puedo eliminar carpetas de endpoints de forma masiva en Apidog?
      • ¿Cómo puedo agregar o eliminar prefijos de forma masiva en la ruta de los endpoints?
      • ¿Cómo mover el nivel de una propiedad en el Editor de esquemas?
      • Si una propiedad de cadena tiene varios valores enumerados y se utiliza en varias ubicaciones, ¿cómo se puede referenciar este enum de forma coherente en todas ellas?
      • ¿Cómo obtener el ID de la carpeta de recursos de Apidog?
      • ¿Cómo obtengo el ID de la carpeta de recursos de Apidog?
      • ¿Cómo uso variables en una ruta de URL?
      • ¿Qué debo hacer si un endpoint, documento o escenario de prueba se elimina accidentalmente?
      • ¿Apidog admite código de petición para endpoints personalizados?
      • ¿Cómo agrupar automáticamente endpoints al importar Swagger/OpenAPI en Apidog?
      • ¿Cómo genero datos de matriz no duplicados en respuestas mock?
      • ¿Por qué no se admite la entrada "#" en la ruta?
    • Depuración de APIs
      • ¿Cómo se integra Apidog con sistemas de gestión de claves de terceros?
      • ¿Por qué la misma petición funciona correctamente en otras herramientas (como Postman) pero no en Apidog?
      • ¿Cómo obtener valores de variables desde una base de datos en Apidog?
      • ¿Cómo migrar entornos desde otras herramientas a Apidog?
      • ¿Cómo realizar aserciones usando scripts en Apidog?
      • JSONPath solo puede extraer arrays. ¿Cómo puede extraer un solo elemento de ellos en Apidog?
      • ¿Cómo configurar operaciones de base de datos en Apidog cuando diferentes entornos tienen distintas credenciales de cuenta de base de datos?
      • ¿Cómo obtener la URL base del servicio en un script personalizado?
      • ¿Por qué Apidog informa un error que supera la longitud máxima de cadena de Node.js cuando la respuesta de la API es demasiado grande?
      • ¿Cuál es el límite de tamaño para la impresión en consola? ¿Por qué aparece un error al imprimir archivos grandes?
      • ¿Cómo resolver errores de conexión a la base de datos DB2 en Windows?
      • ¿Por qué aparece el error NJS-045 al conectarme a una base de datos Oracle en Apidog?
      • ¿Cómo generar valores dinámicos en scripts personalizados de Apidog?
      • ¿Por qué la petición del cliente al mismo endpoint se realiza correctamente, pero se produce un error al depurar en el lado web: "No se puede solicitar la dirección"?
      • ¿Por qué Apidog informa un error cuando la respuesta es demasiado grande?
      • ¿Cómo utilizo el endpoint de registro de Apidog?
      • Al definir la respuesta de un endpoint, ¿se permite que el endpoint no tenga contenido de respuesta?
      • ¿Cómo obtengo la baseURL del servicio en un script personalizado?
      • ¿Cómo puedo ver el paquete original en Apidog?
      • ¿Por qué veo el error "Invalid URI xxx" al realizar una petición?
      • ¿Cómo realizo una petición asíncrona en un script de Apidog?
      • ¿Por qué veo el mensaje "Couldn't resolve host" al enviar una petición?
      • ¿Cuál es el límite de tamaño de impresión de la consola? ¿Por qué aparece un error cuando imprimo un archivo grande?
      • ¿Cómo puedo cargar un archivo en una petición de endpoint?
      • ¿Qué hacer si Apidog se bloquea o los datos de respuesta no se muestran?
      • URI de redirección oficial utilizada por Apidog para OAuth2.0
    • Datos de API mock
      • ¿Cómo hacer mock de APIs automáticamente?
      • ¿Qué puede hacer el mock de Apidog?
      • ¿Cómo simular datos fijos de API en Apidog?
      • ¿Cómo simular datos condicionales en Apidog?
      • ¿Cómo habilitar el mock en la nube en Apidog?
      • ¿Cómo habilitar un mock autoalojado en Apidog?
      • ¿Apidog admite mocks de API WebSocket?
      • ¿Por qué el navegador no devuelve contenido al solicitar el endpoint mock?
    • Pruebas automatizadas
      • ¿Por qué los escenarios de prueba se ejecutan sin problemas en mi cliente local, pero se producen errores al ejecutarlos en Apidog CLI o runner?
      • ¿Cómo crear un escenario de prueba en Apidog?
      • ¿Cómo pasar datos entre pasos de prueba?
      • ¿Por qué no puedo referenciar correctamente los datos del paso previo?
      • ¿Cómo usar el bucle foreach en Apidog?
      • ¿Cuáles son las diferencias entre sincronizar datos desde endpoints/casos de endpoint?
      • ¿Cómo utilizar datos de prueba en Apidog?
      • ¿Cómo recuperar datos de prueba en scripts en Apidog?
      • ¿Cómo ejecutar escenarios de prueba por lotes en Apidog?
      • ¿Cómo programar tareas de prueba en Apidog?
      • ¿Cómo ejecutar una prueba de rendimiento en Apidog?
      • ¿Cómo puedo ver las peticiones y respuestas reales en las pruebas de rendimiento?
      • ¿Cómo puedo exportar informes de pruebas de rendimiento en Apidog?
      • ¿Cómo utilizar los resultados de consultas de base de datos como parámetros para realizar peticiones de API en bucle?
      • Capturar y validar webhooks de Stripe en ApiDog durante CI/CD
      • ¿Cómo resolver el error "Error: unable to verify the first certificate on runner"?
      • Error «Not Found» en el contenedor Docker de General Runner.
      • ¿Cómo configurar el host del servidor para el General Runner en la versión web de Apidog?
      • ¿Por qué el escenario de prueba programado terminó con 0 peticiones?
      • ¿Qué debo hacer si no se puede encontrar el parámetro de carga de archivo en Runner o CLI?
      • ¿Cómo usar Runner para ejecutar un escenario de prueba con un paso de carga de archivo?
      • ¿Cómo resuelvo el error "Error: unable to verify the first certificate on runner"?
      • ¿Cómo accedo y busco en los registros del runner para identificar el problema cuando surge un problema con un runner?
      • ¿Qué debo hacer si el parámetro del endpoint es un archivo de carga y no se puede encontrar en Runner o CLI?
      • ¿Por qué los pasos de prueba no se sincronizan automáticamente cuando cambia el caso de uso de la API?
      • ¿Por qué el uso de varios signos de dólar en un documento Markdown provoca que parte del contenido no se muestre correctamente?
      • ¿El Runner autoalojado genera un informe de prueba en el servidor después de ejecutar una tarea?
      • ¿Puedo añadir pre/postprocesadores unificados a las peticiones en un escenario de prueba?
      • ¿Cómo puedo mantener valores dinámicos coherentes durante una única ejecución de prueba automatizada?
    • Publicar documentación de API
      • ¿Cómo ocultar todos los logotipos de Apidog en los documentos publicados?
      • Cuando se actualiza la especificación de la API, ¿cambiará la documentación de la API?
      • ¿Cómo compartir APIs con colaboradores en Apidog?
      • ¿Cómo personalizar el dominio de la documentación de Apidog?
      • ¿Cómo crear documentación multiversión en Apidog?
      • Alcance de uso compartido para sitios de documentación publicados en Apidog
      • Alcance de uso compartido para la lista Share Doc en Apidog
      • ¿Por qué los Share Docs publicados no muestran el hostname?
      • ¿Cómo pueden los usuarios de la documentación modificar la URL base en documentos compartidos?
      • ¿Puedo duplicar un documento de Apidog publicado para usarlo en mi propio proyecto?
      • ¿Cómo compartir encabezados (por ejemplo, token) en la documentación en línea de Apidog?
      • ¿Por qué mi miembro del equipo no puede encontrar la documentación publicada?
      • ¿Cómo soluciono la expiración de un certificado SSL o un error 526 de Cloudflare en mi dominio personalizado?
      • SMTP personalizado configurado correctamente, pero los usuarios en la lista de permitidos no reciben correos electrónicos con OTP
    • Markdown
      • ¿Cómo usar tarjetas para enlazar a varias páginas o endpoints dentro de Apidog?
      • ¿Por qué algunos contenidos no se muestran correctamente al usar varios símbolos $ en documentos Markdown?
      • ¿Cómo usar imágenes con fondo transparente en Apidog Markdown?
      • ¿Cómo establecer el ancho de columna de una tabla Markdown?
      • ¿Cómo puede insertar APIs internas, documentos, esquemas de datos o carpetas en un documento Markdown?
      • ¿Cómo agrego un enlace a un documento o endpoint dentro de un proyecto en un componente de tarjeta de Apidog?
    • Ramas
      • ¿Cómo acceder a la rama de sprint?
    • Administración
      • ¿Cómo instalar el cliente de Apidog de forma silenciosa?
      • ¿Por qué veo un error de «Sin permiso» a pesar de tener acceso de administrador?
      • ¿Cómo puedo comprobar el número de versión del runner?
      • ¿Apidog es compatible con Windows 7?
      • ¿Por qué Apidog muestra el error "Cannot locate program entry point DiscardVirtualMemory in dynamic link library KERNEL32.dll" después de la instalación?
      • Cambios de suscripción y reembolsos
      • Las peticiones web funcionan, pero la aplicación muestra "read ECONNRESET": ¿por qué?
      • ¿Por qué no puedo abrir Apidog después de una actualización del sistema Windows?
      • Por qué Apidog no se abre después de una actualización del sistema Windows
    • Facturación
      • ¿Puedo configurar una cuenta de facturación separada para mi equipo en Apidog?
      • Problemas de acceso del equipo y facturación en Apidog
      • Los miembros invitados del equipo no pueden acceder a Apidog.
      • Transferir un equipo personal de pago a una organización
    • On-premises
      • Gestión de usuarios y acceso en la versión autohospedada (Enterprise) de Apidog
    • Web y cliente
      • Descarga e instalación de la versión de escritorio para Linux
  1. Escenarios de prueba

Condiciones de control de flujo

Puede añadir condiciones de control de flujo (bucles, condiciones, esperas, agrupación, etc.) a sus escenarios de prueba. Esto mejora el uso de configuraciones de escenarios/procesos de prueba más complejos y, en última instancia, resuelve los desafíos de prueba de escenarios intrincados mediante funciones de pruebas automatizadas.
Condiciones de control de flujo

Bucles For#

Cuando necesita enviar una sola petición varias veces de forma consecutiva, usar un bucle for es un enfoque eficiente. A continuación se explica cómo usar eficazmente los bucles for en sus escenarios de prueba de Apidog:
Configurar el recuento de iteraciones: Decida cuántas veces debe ejecutarse el bucle. Puede ser un número fijo o una {{variable}}.
Añadir peticiones: Dentro de un bucle for, puede incluir una o más peticiones, así como otros bucles o ramas condicionales. Esta flexibilidad permite escenarios de prueba complejos en los que es necesario probar varias acciones en secuencia.
Condición Break If: Puede añadir una condición Break if a un bucle for. Esto terminará inmediatamente el bucle si se cumple la condición. Puede arrastrar y ajustar la posición de Break if o incluso añadir varias condiciones Break if para gestionar diferentes escenarios.
Gestión On Error: Gestione los errores añadiendo condiciones On Error al bucle. Si se produce un error, se activarán las acciones especificadas:
Ignorar: El bucle continúa con la siguiente petición.
Continuar: Omite las peticiones restantes del ciclo actual y pasa a la siguiente iteración.
Interrumpir la ejecución: Detiene el bucle y continúa con las peticiones posteriores fuera del bucle.
Finalizar la ejecución: Detiene por completo todo el escenario de prueba.
La condición On Error está fija al inicio del bucle y no se puede mover.

Usar el índice del bucle en las peticiones#

El índice actual del bucle puede usarse como una variable local dentro de las peticiones para ajustar dinámicamente parámetros o cuerpos de petición. Para utilizarlo:
1
Añada un bucle for e incluya una petición dentro del bucle.
2
Haga clic en el icono de varita mágica 🪄 en el parámetro de la petición y seleccione "Recuperar datos del paso previo".
La función "Recuperar datos del paso previo" solo está disponible en el módulo "Pruebas" y no en el módulo "APIs".
Al usar "Recuperar datos del paso previo", el valor solo puede obtenerse cuando se ejecuta todo el escenario de prueba en conjunto; no se puede acceder a él al ejecutar pasos individuales.
3
Elija la opción del bucle, normalmente etiquetada como "Repetir n veces".
4
Seleccione "Índice actual del bucle".
5
Obtendrá una variable dinámica como {{$.5.index}}. Haga clic en "Insertar" y se reemplazará en tiempo de ejecución por el índice actual del bucle, como 0 o 5.
El índice del bucle siempre empieza en 0.

Bucles ForEach#

Cuando tiene un array que contiene varios elementos (una lista de contenido específico o una lista obtenida de pasos anteriores) y necesita realizar la misma operación en cada elemento de la lista (por ejemplo, primero obtener una lista de productos y luego añadir cada producto de la lista al carrito de compras), debe usar un bucle ForEach.
En un bucle ForEach, las operaciones dentro del bucle se ejecutarán para cada elemento del array.
La diferencia con un bucle For es que no necesita preocuparse por el número de iteraciones; solo debe centrarse en el contenido del array del bucle.
Configurar el array del bucle: En un bucle ForEach, debe establecer un array como objeto del bucle. Puede usar una variable o introducir manualmente un array, como ["a","b","c"].
Añadir peticiones: Dentro de un bucle ForEach, puede añadir una o más peticiones, o añadir otros bucles o ramas condicionales, etc.
Condición Break If y gestión On Error: Puede añadir Break if y On error al bucle ForEach, de forma coherente con el bucle for mencionado anteriormente.
TIP
En la configuración avanzada del bucle ForEach, también puede personalizar las opciones de gestión de excepciones para Break If y On Error. Para obtener más información, consulte Reglas de juicio.

Ejemplo de uso de ForEach#

Considere dos endpoints: uno para recuperar una lista de información de mascotas y otro para obtener los detalles de una sola mascota. Si necesita obtener los detalles de una mascota añadida recientemente a la lista, puede configurar este escenario usando un bucle ForEach en sus pruebas automatizadas.
1.
El primer paso fuera del bucle ForEach sería solicitar el endpoint de lista de información de mascotas para recuperar los datos reales de la lista. Normalmente, la respuesta de esta interfaz contiene un array con información básica sobre varias mascotas, como el ID y el nombre de la mascota.
2.
Configure un bucle ForEach con el array de origen como un subconjunto del array de mascotas de la respuesta del paso anterior.
3.
Dentro del bucle, configure una petición al endpoint "Obtener información de mascota" y use el valor del elemento del bucle ForEach para completar el parámetro ID en esta petición.

Usar el elemento del bucle en las peticiones#

El elemento/índice actual del bucle puede usarse como una variable local dentro de las peticiones para ajustar dinámicamente parámetros o cuerpos de petición. Para utilizarlo:
1
Añada un bucle ForEach e incluya una petición dentro del bucle.
2
Haga clic en el icono varita mágica en el parámetro de la petición y seleccione "Recuperar datos del paso previo".
3
Elija la opción del bucle, normalmente etiquetada como "Repetir cada elemento en {{array}}".
4
Seleccione "Elemento actual del bucle". Puede utilizar JSONPath para extraer propiedades del elemento.
5
Obtendrá una variable dinámica como {{$.17.element}}. Haga clic en "Insertar" y se reemplazará en tiempo de ejecución por el elemento actual del bucle, que es un elemento del array del bucle.
TIP
Elemento actual del bucle: El sistema extrae automáticamente elementos del array especificado en el bucle ForEach y los almacena en la variable designada. Al inicio de cada iteración, esta variable se actualiza con el valor del elemento actual del array. Si el elemento es un objeto, puede usar JSONPath para extraer un subcampo específico, como {{$.1.element.data.name}}.
Índice actual del bucle: El índice del bucle actual se almacena en esta variable. Empieza en 0 y aumenta en 1 al comienzo de cada iteración posterior, reflejando el índice actual.

If#

Cuando necesita enviar diferentes peticiones según distintos escenarios, puede usar una instrucción If para añadir ramas condicionales. Cuando se cumplen las condiciones especificadas, se ejecutará el paso correspondiente; de lo contrario, se omitirá. Para obtener detalles más específicos, consulte Reglas de juicio.
Configurar la instrucción If: La instrucción If admite varias condiciones, como igual a, no igual a, contiene, no contiene, etc. Se pueden usar tanto constantes como variables en cualquiera de los lados de la condición.
Añadir peticiones: Se pueden añadir varias peticiones dentro de una rama condicional, así como otros bucles o ramas condicionales.
Ejecutar ramas condicionales: Si se cumplen las condiciones establecidas en la configuración, se ejecutará el paso de prueba; de lo contrario, se omitirá.
Instrucción Else: Se puede añadir una instrucción Else dentro de una rama condicional para gestionar escenarios cuando no se cumple la condición If.

Ejemplo de uso de If#

El propietario de una tienda de mascotas, según el estado de ventas de las mascotas del día anterior, necesita cambiar el estado de venta de una mascota a "Vendida" si se vendió. De lo contrario (else), necesita comprobar la lista de mascotas que aún están en venta.
1.
Haga clic en el botón "Añadir paso" en la parte inferior y seleccione "Ramificación condicional".
2.
Introduzca la variable saleStatus obtenida de la respuesta de la petición API en el cuadro de entrada después de "If" y seleccione la condición "equals". Finalmente, introduzca true como valor de comparación.
3.
Pase el cursor sobre la operación de ramificación condicional para ver la opción " + Else". Haga clic en ella para añadir el paso "Lista de mascotas en venta" (en caso de que no se cumpla la condición, es decir, para consultar la lista de mascotas que aún están en venta).

Reglas de juicio#

Al usar la instrucción If en un escenario de prueba, puede definir reglas condicionales para controlar la ejecución de la prueba. Si se cumplen las condiciones, se ejecutará el paso correspondiente; de lo contrario, se omitirá. Del mismo modo, en la configuración de Break If para los bucles ForEach y For, puede establecer reglas de juicio para controlar el flujo de ejecución de forma más flexible.
ReglaDescripción
Igual aComprueba si dos valores son iguales.
No igual aComprueba si dos valores no son iguales.
ExisteComprueba si existe un campo o una variable.
No existeComprueba si un campo o una variable no existe.
Menor queComprueba si un valor es menor que otro.
Menor o igual queComprueba si un valor es menor o igual que otro.
Mayor queComprueba si un valor es mayor que otro.
Mayor o igual queComprueba si un valor es mayor o igual que otro.
Coincide con RegexComprueba si una cadena coincide con la expresión regular especificada.
ContieneComprueba si una cadena o array contiene el valor especificado.
No contieneComprueba si una cadena o array no contiene el valor especificado.
Está vacíoComprueba si un campo, array o variable está vacío.
No está vacíoComprueba si un campo, array o variable no está vacío.
En listaComprueba si un valor pertenece a una lista especificada.
No en listaComprueba si un valor no pertenece a una lista especificada.
Al realizar comprobaciones condicionales (como mayor que, mayor o igual que, igual a o no igual a), si los valores que se comparan son enteros o cadenas, el sistema convertirá automáticamente las cadenas en números para una comparación precisa. Por ejemplo, si compara una cadena "18" con el número 18, el sistema convertirá la cadena "18" en el número 18 antes de comparar.

Igual a#

Comprueba si dos valores son iguales. Si son iguales, se cumple la condición y se ejecutará el paso de prueba; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si la edad del usuario extraída del paso previo es igual a 18.
Ejemplo de condición: {{$.5.response.body.data.age}} Equals 18
Efecto real de ejecución: Si el valor de edad extraído del paso previo es 18 (la cadena se convertirá automáticamente en un número), el paso se ejecutará, como mostrar información específica o realizar ciertas acciones.

No igual a#

Comprueba si dos valores no son iguales. Si no son iguales, se cumple la condición y se ejecutará el paso de prueba; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si el estado del pedido extraído del paso previo no es igual a "Pagado".
Ejemplo de condición: {{$.4.response.body.data.status}} Does not equal Paid
Efecto real de ejecución: Si el estado del pedido extraído del paso previo es otro valor (como "Pendiente" o "Enviado"), el paso se ejecutará.

Existe#

Comprueba si existe un determinado campo o variable. Si existe, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si el campo email existe en los datos de usuario extraídos del paso previo.
Ejemplo de condición: {{$.3.response.body.data.email}} Exists
Efecto real de ejecución: Si el campo email está presente en los datos de usuario extraídos del paso previo, el paso se ejecutará.

No existe#

Comprueba si un determinado campo o variable no existe. Si no existe, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si el campo phone no existe en los datos de usuario extraídos del paso previo.
Ejemplo de condición: {{$.2.response.body.data.phone}} Does not exist
Efecto real de ejecución: Si el campo phone está ausente en los datos de usuario extraídos del paso previo, el paso se ejecutará.

Menor que#

Comprueba si un valor es menor que otro. Si lo es, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si el stock del producto extraído del paso previo es menor que 10.
Ejemplo de condición: {{$.1.response.body.data.stock}} Less Than 10
Efecto real de ejecución: Si el valor de stock extraído del paso previo es 8, se cumple la condición y se ejecutará el paso.

Menor o igual que#

Comprueba si un valor es menor o igual que otro. Si lo es, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si la edad extraída del paso previo es menor o igual que 12.
Ejemplo de condición: {{$.2.response.body.data.age}} Less than or equal 12
Efecto real de ejecución: Si el valor de edad extraído del paso previo es 10, se cumple la condición y se ejecutará el paso.

Mayor que#

Comprueba si un valor es mayor que otro. Si lo es, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si el importe del pedido extraído del paso previo es mayor que 1000.
Ejemplo de condición: {{$.1.response.body.data.amount}} Greater than 1000
Efecto real de ejecución: Si el valor del importe del pedido extraído del paso previo es 1105, se cumple la condición y se ejecutará el paso.

Mayor o igual que#

Comprueba si un valor es mayor o igual que otro. Si lo es, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si los puntos del usuario extraídos del paso previo son mayores o iguales que 500.
Ejemplo de condición: {{$.3.response.body.data.points}} Greater than or equal 500
Efecto real de ejecución: Si el valor de puntos extraído del paso previo es 600, se cumple la condición y se ejecutará el paso.

Coincide con Regex#

Comprueba si una cadena coincide con una expresión regular especificada. Si coincide, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si el formato de correo electrónico extraído del paso previo es correcto.
Ejemplo de condición: {{$.2.response.body.data.email}} Matches with Regex /^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/i
Efecto real de ejecución: Si el formato de correo electrónico extraído del paso previo coincide con la expresión regular (por ejemplo, test@gmail.com), el paso se ejecutará.
TIP
Las expresiones regulares deben escribirse usando la sintaxis "literal", donde el patrón se encierra entre /, con modificadores opcionales (por ejemplo, g para coincidencia global, i para no distinguir entre mayúsculas y minúsculas) añadidos al final. Para obtener más información sobre cómo escribir expresiones regulares, puede consultar la documentación de MDN.

Contiene#

Comprueba si una cadena o array contiene un valor especificado. Si lo contiene, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si la lista de roles de usuario extraída del paso previo contiene el rol "admin".
Ejemplo de condición: {{$.3.response.body.data.roles}} Contains admin
Efecto real de ejecución: Si la lista de roles extraída del paso previo contiene "admin", el paso se ejecutará.

No contiene#

Comprueba si una cadena o array no contiene un valor especificado. Si no lo contiene, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si el carrito de compras del usuario extraído del paso previo no contiene un determinado producto.
Ejemplo de condición: {{$.4.response.body.data.cartItems}} Does not contain productId123
Efecto real de ejecución: Si el array de carrito extraído del paso previo no contiene el producto productId123, el paso se ejecutará.

Está vacío#

Comprueba si un campo, array o variable está vacío. Si lo está, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si el campo de observaciones extraído del paso previo está vacío.
Ejemplo de condición: {{$.2.response.body.data.remarks}} Is empty
Efecto real de ejecución: Si el campo de observaciones extraído del paso previo está vacío, el paso se ejecutará.

No está vacío#

Comprueba si un campo, array o variable no está vacío. Si no está vacío, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si las observaciones del pedido extraídas del paso previo están completadas.
Ejemplo de condición: {{$.1.response.body.data.orderRemarks}} Is not Empty
Efecto real de ejecución: Si las observaciones del pedido extraídas del paso previo no están vacías, el paso se ejecutará.

En lista#

Comprueba si un valor pertenece a una lista especificada. Si pertenece, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si el producto seleccionado por el usuario extraído del paso previo está en la lista de productos recomendados.
Ejemplo de condición: {{$.3.response.body.data.productId}} In List ["prod123", "prod456", "prod789"]
Efecto real de ejecución: Si el ID de producto extraído del paso previo es "prod456", el paso se ejecutará.
TIP
En Apidog, al introducir una lista, cada elemento debe introducirse por separado y separarse pulsando la tecla Entrar.

No en lista#

Comprueba si un valor no pertenece a una lista especificada. Si no pertenece, se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.
Ejemplo:
Escenario: Compruebe si el código promocional introducido por el usuario extraído del paso previo no está en la lista de códigos promocionales usados.
Ejemplo de condición: {{$.4.response.body.data.promoCode}} Not in List ["usedCode1", "usedCode2"]
Efecto real de ejecución: Si el código promocional extraído del paso previo es "newPromo", se cumple la condición y se ejecutará el paso; de lo contrario, se omitirá.

Agrupación#

Cuando varios pasos del proceso de prueba están interrelacionados, pueden agruparse para su clasificación. Al agrupar pasos de prueba, mejora la legibilidad y operabilidad del escenario de prueba.

Espera#

Cuando un determinado paso del proceso de prueba requiere esperar un período antes de ejecutarse, puede añadir una condición de espera para resolverlo.

Ejemplo de uso de espera#

Simule que un usuario ve los detalles de una mascota y actualiza el estado de navegación de la información de la mascota después de navegar durante 1000ms.
1.
Haga clic en el botón "Añadir paso" en la parte inferior y seleccione "Esperar".
2.
Introduzca el tiempo de espera, 1000 (en milisegundos).
Cuando use el control de flujo de pruebas, el informe de prueba no mostrará pasos como If, for, etc., sino que solo mostrará las peticiones reales ejecutadas, listadas linealmente en el orden de ejecución.
Modified at 2026-06-09 08:52:14
Previous
Pasar datos entre peticiones
Next
Sincronizar datos desde endpoints y casos de endpoint
Built with