Descubre cómo hacer pruebas masivas en Postman y ahorrar horas de trabajo en tus APIs
Ejecutar colecciones utilizando datos importados
El contexto
En los últimos días, he estado trabajando con las APIs de georeferenciación de Google. Durante este proceso, me encontré con la necesidad de probar masivamente las APIs que estoy desarrollando, las cuales hacen uso de estos servicios. En concreto, quería ejecutar múltiples casos de prueba en una sola ejecución para evaluar diversas situaciones.
Una de las API que estoy utilizando es la de Google, que recibe una dirección y devuelve información detallada de georreferenciación. Probarla de manera eficiente y con diferentes conjuntos de datos era fundamental para asegurarme de su correcto funcionamiento en distintos escenarios.
La solución
Después de investigar cómo realizar estas pruebas masivas de manera eficiente, descubrí que Postman ofrece una funcionalidad muy útil: la posibilidad de ejecutar colecciones utilizando archivos de datos, como CSV o JSON. Esta herramienta permite ejecutar pruebas en secuencia y obtener los resultados de cada iteración de forma automatizada. Además, es posible añadir scripts post-ejecución para realizar verificaciones adicionales sobre las respuestas, lo que proporciona un control detallado sobre cada prueba.
¿Cómo ejecutar una colección con archivos JSON?
Formato de archivo JSON
El archivo JSON debe tener un formato de matriz con pares clave-valor. Cada clave representa el nombre de una variable que se utilizará en la solicitud.
Ten en cuenta que las variables en Postman distinguen entre mayúsculas y minúsculas, por lo que debes asegurarte de que coincidan con las que defines en tu archivo JSON o CSV. Las variables se resuelven como variables locales y puedes acceder a ellas mediante
pm.variables.get("variable_key")
. Para más información sobre el uso de variables en scripts, consulta el uso de variables en scripts.
Ejecutar una colección con archivos
- Añade una solicitud
GET
con la siguiente URL, usando variables para el país y la dirección:
<https://www.localhost.com/georeference?country={{country}>}&address={{address}}
2. En la pestaña Scripts > Post-response de la solicitud, añade el siguiente código para validar la respuesta y sus variables:
// Verificar que la respuesta tenga un código 200 (éxito)
pm.test("Estado de respuesta es 200", function () {
pm.response.to.have.status(200);
});
let queryParams = pm.request.url.query.toObject();
let country = queryParams['country'];
let address = queryParams['address'];
// Obtener el cuerpo de la respuesta
let response = pm.response.json();
// Verificar si el country es "CO"
if (country === "CO") {
// Verificar que zip_code no es null
pm.test("El (zip_code) no debe ser nulo para el país CO", function () {
pm.expect(response.data.zip_code).to.not.be.null;
});
}
3. Prepara un archivo de datos en formato JSON, por ejemplo, llamado test.json
, que contenga los casos de prueba:
4. Desde la interfaz de Postman, selecciona Run Folder para ejecutar la colección. Al hacerlo, carga el archivo JSON que acabas de crear.
5. Previsualiza los datos importados antes de ejecutar las pruebas para asegurarte de que los valores sean correctos.
6. Finalmente, selecciona Run para ejecutar la colección y analizar los resultados.
Conclusión
Usar Postman para ejecutar pruebas masivas es una solución eficaz que permite probar múltiples casos en una sola ejecución, ahorrando tiempo y esfuerzo en el desarrollo de APIs. Al aprovechar funcionalidades como la ejecución con archivos de datos y los scripts de post-ejecución, podemos asegurarnos de que nuestras APIs funcionen correctamente bajo diversas condiciones. Esta metodología me ayudó a automatizar mis pruebas de georeferenciación y obtener resultados de forma rápida y precisa.
Si te encuentras en una situación similar donde necesitas ejecutar múltiples pruebas con diferentes datos, te recomiendo que pruebes esta funcionalidad de Postman. Es una herramienta flexible y poderosa que puede mejorar considerablemente tus flujos de trabajo de testing.
Bibliografía
- Geocoding Google https://developers.google.com/maps/documentation/javascript/geocoding?hl=es
- Run collections using imported data https://learning.postman.com/docs/collections/running-collections/working-with-data-files/