Al diseñar flujos de trabajo de pruebas automatizadas en Apidog, utilizará varios tipos de pasos de prueba, como solicitudes de API, consultas de bases de datos, bucles For, bucles ForEach, scripts y más.

A menudo, los datos producidos en un paso deben utilizarse en un paso posterior. Esto crea un flujo lógico donde los datos impulsan el proceso y los pasos están vinculados entre sí.
Por ejemplo, podría:
- Recuperar un token de usuario en un paso anterior, o ejecutar una consulta de base de datos para obtener un registro específico
- Luego usar esos resultados en una solicitud de punto final en el siguiente paso.
Esto plantea una pregunta importante:
¿Cómo puede referenciar correctamente los datos de pasos anteriores (ascendentes) en los pasos siguientes (descendentes)?
Dos mecanismos para la transferencia de datos en Apidog
En las pruebas automatizadas de Apidog, hay dos métodos principales para pasar datos entre diferentes pasos de prueba:
1. Recuperar datos de pasos previos mediante "Valores dinámicos"
Puede referenciar directamente la salida de un paso anterior (ascendente) en un paso posterior (descendente) utilizando la función "Valor dinámico". Esto le permite obtener datos sobre la marcha sin almacenarlos.

2. Almacenar variables y reutilizarlas
Puede extraer datos importantes de un paso ascendente y almacenarlos como una variable. Estas variables pueden luego reutilizarse en cualquier paso posterior.

Dominar estos dos métodos de transferencia de datos es clave para construir flujos de trabajo automatizados eficientes y basados en datos en Apidog.
Este artículo explica cómo manejar los datos en diferentes tipos de pasos de prueba desde dos ángulos: cómo extraer datos y cómo usarlos. Al comprender ambos, podrá construir flujos de trabajo de prueba más flexibles y mejor conectados.
Extracción y uso de datos de respuesta de puntos finales
Comprensión de los datos de respuesta de puntos finales
En las pruebas automatizadas, las solicitudes de API suelen devolver respuestas JSON estructuradas, que a menudo sirven como entrada para pasos de prueba posteriores.

A diferencia de otros tipos de pasos, las respuestas de los puntos finales suelen ser más complejas, incluyendo con frecuencia objetos y matrices anidados.
Cómo extraer datos de la respuesta de un punto final
Hay dos formas principales de extraer y pasar datos de respuesta de un punto final entre los pasos de prueba:
Método uno: Referencia de valor dinámico
Utilice "Valores dinámicos" para referenciar directamente los datos de pasos anteriores:
- En cualquier campo de entrada de un paso descendente, haga clic en el icono de la varita mágica.
- Elija "Recuperar datos de pasos previos"
- Apidog insertará automáticamente la expresión correcta, sin necesidad de escribirla manualmente.

Método dos: Extraer datos como variables
También puede utilizar la función "Extraer variables" en los post-procesadores de puntos finales para extraer campos específicos de la respuesta como variables.
Por ejemplo, para extraer el id
de los productos en una respuesta:
- Establezca el nombre de la variable como
products_id
- Utilice el JSONPath:
$.products[0].id

En pasos posteriores, simplemente referéncielo usando {{products_id}}
.
Cómo usar los datos extraídos de la respuesta de un punto final
Una vez que haya extraído datos de una respuesta de API, ya sea utilizando "Valores dinámicos" o "Variables extraídas", puede usar esos datos en pasos posteriores de varias maneras:
1. Usar los datos en solicitudes de puntos finales
- Mediante valor dinámico: Al igual que antes, haga clic en el icono de la varita mágica en el campo de entrada, elija "Recuperar datos de pasos previos" y Apidog insertará automáticamente la expresión correcta.
- Mediante variable extraída: Si previamente guardó un valor como variable (por ejemplo,
products_id
), simplemente use{{products_id}}
como parámetro en la solicitud de API.

2. Usar los datos en operaciones de base de datos
Puede usar la respuesta de la API como entrada en una consulta de base de datos. Ambos métodos funcionan:
- Método de valor dinámico
SELECT * FROM products WHERE id = '{{$.1.response.body.products[0].id}}'
Utilice valores dinámicos para referenciar los datos de respuesta de la API directamente en la consulta SQL:

- Método de variable extraída: Si ha extraído el ID del producto como una variable llamada
products_id
, use:
SELECT * FROM products WHERE id = '{{products_id}}'
3. Usar los datos en Bucle For
Para repetir pasos basándose en la longitud de una matriz de una respuesta de API:
- Utilice valores dinámicos para obtener la longitud de la matriz, por ejemplo:
{{$.1.response.body.products.length}}
Esto establece el número de iteraciones del bucle.

4. Usar los datos en Bucles ForEach
Si desea recorrer cada elemento de una matriz devuelta por un punto final:
- Método de valor dinámico: Extraiga directamente la matriz completa, por ejemplo
{{$.1.response.body.products}}

- Método de extracción de variable: Suponiendo que la matriz completa se ha extraído como la variable
products
, entonces inserte directamente{{products}}
en el bucle.

5. Usar los datos en scripts
Para usar datos de pasos anteriores dentro de un script, use el método pm.variables.get()
. Así es como:
- Método de valor dinámico: Lea los datos directamente de un paso anterior:
const products = pm.variables.get("$.1.response.body.products")

- Método de extracción de variable: Si guardó la matriz o el valor como una variable, use el siguiente script para obtener los datos:
Obtener el valor de una variable temporal:
const products = pm.variables.get("products")
Obtener el valor de una variable de entorno:
const products = pm.environment.get("products")
Obtener el valor de una variable global:
const products = pm.globals.get("products")
{{products}}
directamente. En su lugar, debe recuperar los valores de las variables utilizando los métodos apropiados mencionados anteriormente.Extracción y uso de resultados de consultas de bases de datos
Comprensión de los datos de la base de datos
Cuando se ejecuta un paso de consulta de base de datos, devuelve datos estructurados en forma de una matriz de objetos. Incluso si solo se devuelve un registro, seguirá envuelto en una matriz. Por ejemplo:

A diferencia de las respuestas de los puntos finales, los datos de los pasos de la base de datos no se pueden acceder directamente utilizando variables dinámicas. Primero debe extraer los valores en variables.
Cómo extraer datos de la base de datos
Después de ejecutar la consulta SQL en un paso de base de datos, Apidog analizará automáticamente la respuesta en datos estructurados, así:
[
{
"id": "1000",
"title": "Title 1",
"description": "Description for Title 1"
}
]
Luego puede usar JSONPath para extraer campos específicos y guardarlos como variables.
Por ejemplo:
- Nombre de la variable:
products_id
- JSONPath:
$[0].id
(para extraer el ID del primer elemento). Si desea extraer todo el conjunto de resultados, use:$
. - Los pasos posteriores referencian variables a través de
{{ }}
, por ejemplo:{{products_id}}

Cómo usar los datos extraídos de una base de datos
1. Usar los datos en solicitudes de puntos finales
Si su consulta de base de datos devuelve un ID y lo ha guardado como una variable (products_id
), puede usarlo directamente en una solicitud de punto final posterior:

2. Usar los datos en Bucles ForEach
Si su consulta devuelve una lista de registros y desea procesar cada uno individualmente, puede usar toda la matriz como fuente para un bucle ForEach
:

La premisa es que guarde toda la matriz al extraer variables en operaciones de base de datos, por ejemplo:
- Nombre de la variable:
products
- JSONPath:
$

3. Usar los datos en scripts
Para usar variables de base de datos extraídas en un script, use el mismo método que con otras variables.
Obtener el valor de una variable temporal:
const products = pm.variables.get("products")
Obtener el valor de una variable de entorno:
const products = pm.environment.get("products")
Obtener el valor de una variable global:
const products = pm.globals.get("products")
Extracción y uso de datos de Bucles For
¿Cómo funcionan los Bucles For
?
Un bucle For
se utiliza para repetir un conjunto específico de acciones varias veces. Se ejecuta basándose en un número definido de iteraciones.
Puede establecer un número fijo de veces para el bucle, o usar un valor dinámico como la longitud de una matriz .length
devuelta de un paso anterior. Por ejemplo: {{$.1.response.body.products.length}}
:

Nota: A diferencia de otros pasos que producen datos, un bucle For
en sí mismo no devuelve datos directamente. Solo proporciona un valor de índice (comenzando desde 0) para mostrar cuántas veces se ha ejecutado el bucle.
Cómo extraer datos de Bucles For
Durante el proceso de ejecución, puede acceder al índice del bucle actual utilizando la sintaxis de variable dinámica: {{$.9.index}}

- El número
9
se refiere al ID del paso de losbucles For
. - Cada paso tiene un ID único.
- El índice comienza en 0 para el primer bucle, 1 para el segundo, y así sucesivamente.
Cómo usar los datos extraídos de Bucles For
1. Usar los datos en scripts
Si desea usar información relacionada con el bucle en su script de prueba, puede usar pm.variables.get()
para obtener el índice actual:
// Get the current loop index
const index = pm.variables.get("$.7.index");

2. Usar los datos con otras fuentes de datos
Un caso de uso común para un bucle For
es procesar datos de pasos anteriores, como recorrer una matriz y manejar cada elemento:
// Get the array from a previous step
const products = pm.variables.get("$.1.response.body.products");
// Get the current loop index
const index = pm.variables.get("$.7.index");
// Access the current item in the array using the index
console.log(products[index]);
Esto le permite realizar operaciones por lotes en cada elemento de la matriz durante cada iteración del bucle.
Extracción y uso de datos de Bucle ForEach
¿Cómo funciona el Bucle ForEach
?
El bucle ForEach está diseñado específicamente para datos de tipo array. Itera automáticamente a través de cada elemento del array y realiza el mismo conjunto de operaciones.
La diferencia clave entre un bucle ForEach
y un bucle For
es que el bucle ForEach
extrae automáticamente los datos completos del elemento de array actual en cada iteración, haciéndolos directamente accesibles en sus pasos hijos.
Acceso a datos en un Bucle ForEach
Dentro de un bucle ForEach
, el sistema crea automáticamente dos variables especiales:
- Elementos del bucle actual: Contiene los datos completos del elemento de la matriz que se está procesando actualmente. Por ejemplo:
{{$.4.element}}
. Si la matriz contiene objetos, puede acceder directamente a sus propiedades, como:{{$.4.element.id}}
,{{$.4.element.title}}
, etc.

- Índice del bucle actual: Representa el recuento de iteraciones actual (comenzando desde 0), por ejemplo,
{{$.4.index}}
.

Nota: El número 4
se refiere al ID del paso Bucle ForEach
. En su flujo de trabajo real, reemplácelo con el ID de paso correcto de su proceso.
Casos de uso comunes para datos de Bucle ForEach
1. Usar los datos en solicitudes de puntos finales
Los bucles ForEach son perfectos para manejar operaciones de datos por lotes. Por ejemplo, si tiene una matriz de elementos, puede enviar automáticamente una solicitud de punto final para cada elemento de la matriz. Durante cada bucle, la misma plantilla de solicitud se reutiliza, pero se rellena con datos diferentes, como {{$.4.element.id}}
.

2. Usar los datos en operaciones de base de datos
Puede usar datos del elemento del bucle actual para ejecutar consultas de base de datos o insertar múltiples filas.
Ejemplo: Consultar la base de datos usando el campo del elemento actual
SELECT * FROM products WHERE id = '{{$.4.element.id}}'
La expresión {{$.4.element.id}}
se puede acceder utilizando la función de valor dinámico.

Insertar múltiples campos del elemento actual en una tabla:
INSERT INTO products (id, title) VALUES ('{{$.4.element.id}}', '{{$.4.element.title}}')
3. Usar los datos en scripts
Si necesita procesar más datos del bucle en un script personalizado, puede usar el método pm.variables.get()
para recuperar los valores:
// Get the current element
const item = pm.variables.get("$.4.element");
// Get the current index
const index = pm.variables.get("$.4.index");
Extracción y uso de datos de scripts
Cómo funcionan los datos de script
A diferencia de otros pasos en un flujo de trabajo, los scripts no generan automáticamente una salida que pueda usarse directamente en los pasos siguientes. Si desea pasar datos de un script a pasos posteriores, debe almacenarlos manualmente en una variable.
Cómo extraer datos de un script
Puede guardar valores en diferentes tipos de variables de esta manera:
// Get JSON response data
// 1. From the current endpoint response
// const currentData = pm.response.json();
// 2. Or get it from a previous step using a dynamic value
const preData = pm.variables.get("$.1.response.body");
// Save to environment variables
pm.environment.set('products', preData.products);
pm.environment.set('products_id', preData.products[0].id);
// Save to global variables
pm.globals.set('products', preData.products);
// Save to temporary variables (valid only during this run)
pm.variables.set('products', preData.products);
Una vez que las variables se extraen y se establecen, puede referenciarlas en pasos posteriores usando la sintaxis {{variableName}}
.
Cómo usar los datos extraídos de scripts
1. Usar los datos en solicitudes de puntos finales
Las variables establecidas en un script pueden usarse directamente como parámetros en solicitudes de puntos finales posteriores. Por ejemplo, si guarda products_id
en el script, puede referenciarlo en una solicitud posterior así: {{products_id}}
.

2. Usar los datos en operaciones de base de datos
Las variables de script también se pueden usar para construir sentencias SQL dinámicas. Por ejemplo:
SELECT * FROM products WHERE id = '{{products_id}}'
3. Usar los datos en Bucle For
Puede usar un script para generar el recuento del bucle u otros valores intermedios, almacenarlos como "variables temporales" y pasarlos al paso del Bucle For
:
pm.variables.set("loopCount", 5);
Luego, en la configuración del bucle, use {{loopCount}}
como el número de iteraciones.
4. Usar los datos en Bucles ForEach
Puede almacenar una matriz completa en una variable y usarla como fuente de datos para un Bucle ForEach
.
Ejemplo:
// Optionally retrieve array from a previous step using dynamic values
// const preData = pm.variables.get("$.1.response.body.products")
const preData = [{id: 1}, {id: 2}, {id: 3}];
// Save to environment variable
pm.environment.set('products', preData);
Luego, en el Bucle ForEach
, establezca la fuente de datos en {{products}}
.
Conclusión
Para construir un flujo de trabajo de prueba automatizado eficiente, es esencial comprender cómo extraer y usar datos de diferentes tipos de pasos:
- Los pasos de punto final y base de datos generan datos relacionados con el negocio.
- Los pasos de bucle controlan el flujo de la lógica.
- Los pasos de script se utilizan para procesar y transformar datos.
Al combinar la referencia de valores dinámicos con la extracción de variables, puede diseñar un proceso de prueba basado en datos flexible y potente.
Mejores prácticas para la transferencia de datos:
- Utilice la referencia de valores dinámicos para datos simples que solo se usan una vez o ocasionalmente.
- Utilice la extracción de variables para datos que necesitan ser reutilizados en múltiples pasos o manejados en scripts.
Elegir el método correcto según la complejidad de los datos y la frecuencia de uso hará que su flujo de trabajo sea más mantenible y eficiente.