Automatizando el guardado de cookies desde peticiones hechas en Postman

Jairo Andres Ruiz Machado

Solutions Specialist

 

 

Muchas veces tratando con APIs o microservicios necesitamos guardar cookies que estas nos envían como respuestas a ciertas peticiones, como por ejemplo cookies de autenticación o de sesión para validar peticiones siguientes. Esto puede llevar a un proceso tedioso de manualmente copiar las cookies cada vez que se manda una petición, e incluso mas tedioso si se tiene que reemplazar estos mismos valores si se están haciendo pruebas con múltiples instancias o usuarios.

Con Postman, es posible automatizar este proceso varias formas. Postman ofrece una extensión para navegador donde es capaz de interceptar las peticiones que se hagan desde este y capturar las cookies que se entreguen de vuelta. Esto es una buena solución, pero tiene la limitación que la petición debe hacerse mediante un navegador basado en Chrome. Postman también ofrece poder modificar las cookies programáticamente, utilizando scripting con JavaScript para acceder a valores de las peticiones y respuestas. Para el case de las respuestas, este se puede encontrar bajo la pestaña de Tests en la interfaz gráfica.

Aquí es donde podemos generar código que correrá después de que la petición se haya enviado y se haya recibido una respuesta. La referencia de JavaScript de Postman indica que las cookies de respuesta se encuentran bajo pm.response.cookies.jar donde el objeto ‘’jar’’ es una colección de cookies perteneciente al dominio especifico donde se envió la petición. Postman mantiene su propia colección de cookies como un objeto bajo pm.cookies.jar. Resulta que a esta colección global se le pueden ser agregadas colecciones mediante una simple asignación de la colección devuelta por una petición. El código para hacer esto es simple:

El resultado de este script al correrlo es el siguiente:

Empezamos con una colección vacía.

Mandamos la petición, el script corre automáticamente al terminar de recibir la respuesta

La colección especifica a ese dominio esta ahora dentro de la colección de cookies de Postman.

El script no solo adiciona cookies y es capaz de reemplazar los valores si pertenecen al mismo dominio, pero también adiciona colecciones de dominios diferentes que no existan en el “cookie jar” sin tener que agregar lógica adicional.

 

Esto por lo tanto ayuda a agilizar un flujo de trabajo donde se necesita guardar cookies de uno o más dominios para pruebas, QA u otros fines.