Automatizando peticiones HTTP que requieren autenticación con Postman
Como desarrolladores, debemos de automatizar todas las tareas repetitivas para dedicarnos a lo realmente importante.
En la programación de APIs, es muy habitual tener endpoints protegidos con autenticación.
Cuando queremos probar los endpoints que requieren autenticación, debemos autenticarnos, es obvio 🤡
En el siguiente artículo te voy a explicar cómo automatizar con Postman la autenticación de los endpoints que lo requieren.
Creando variables globales
Me gusta tener como variables globales de Postman el endpoint de autenticación y las credenciales de prueba, para así tenerlas disponible en la petición de autenticación y para cualquier automatización donde requiera dichas variables.
Lo dicho, voy a crear las siguientes variables:
- Enpoint de autenticación que llamaré url_login
- Usuario que la llamaré user
- Contraseña que la llamaré password
- Variable accessToken que serán donde almacen el valor del token de autenticación JWT
Para ello:
- Crea una colección
- Navega a la pestaña de variables
- Crea las variables
Creando la petición de autenticación
Dentro de nuestra colección, crearemos nuestra petición de autenticación, es mi caso es una petición POST y le paso en un json las credenciales.
Mi endpoint de autenticación requiere los campos usuario y contrasena
Para que los campos de usuario y contrsena tomen los valores de las variables globales que creé en el punto 1 lo hacer metiendo el nombre de la variables entre dobles llaves.
Creando la petición que requiere autenticación
Una vez que hemos creado la petición de autenticación y hemos probado que funciona bien con las variables globales que creamos en el punto 1 podemos pasar al siguiente apartado.
Creando la petición
En mi caso, uso para autenticar en mi API JWT con un Beare token, así que añade un Header de Authorization válido para tu caso.
En mi caso sería:
Si te fijas, estoy utilizando la variable global accessToken que será la que se envía a mi API.
Automatizando la obtención del token de autenticación
Para obtener el token de acceso automaticamente, lo que hago es:
- Navega a la pentaña de Pre-req
- Programamos una petición POST con JavaScript que almacenará el token en la variable global accessToken
Código del script
Te dejo el código del script por si lo quieres copiar 👇
pm.sendRequest({ url:pm.variables.get('url_login'), method: 'POST', header: { 'Content-Type': 'application/json', }, body: { mode: 'raw', raw: JSON.stringify({ usuario: pm.variables.get('user'), contrasena: pm.variables.get('password'), }), }, }, function (err, response) { if (err) { console.log(err); } else { // Extraer el token de la respuesta y almacenarlo en una variable de entorno var token = response.json().token; pm.environment.set('accessToken', token); } });
Hasta luego 🖖