postman
jolugama.com

Postman - nivel pro - variables, scripts, colecciones, entornos producción y desarrollo

Publicado: por

Guía de uso, nivel pro, para poder trabajar en cualquier proyecto, ser más eficiente y tener más control de cualquier cambio en las API que tengamos.

Útil si trabajas en el back como en el front, nos ayuda a probar nuestras API, y desde el front para hacer pruebas, testear que funcionan los servicios en desarrollo y en producción.

Descarga

Hace tiempo que postman dejó de ser un simple plugin de chrome y ser una propia app. Disponible para GNU/Linux, Windows y Mac.

https://www.getpostman.com/

Descargala e instala.

1. Crear colección, importación y exportación

En el menu izquierdo, creamos una nueva colección. Ésta contendrá todos los servicios del proyecto. A medida que se vaya creando tabs se podrán guardar en una colección en concreto.

Para compartir el proyecto a un amigo, solo tenemos que pulsar los 3 puntitos de la colección que queramos, y pinchar en share. Podemos hacer varias cosas, como compartir url. Nos indicará una url que será la que pasemos a nuestros compañeros. También podremos crear un equipo de trabajo y de esta forma completar la colección entre varios compañeros.

Podemos exportar e importar dicha colección de igual manera.

2. Consola y devTools

Abajo a la izquierda disponemos de una consola para poder ver los mensajes de respuesta/error de un servicio. Para las devTools: menu - view - developer - show devTools.

3. APIs públicas - endpoints para pruebas http

Una cosa muy interesante es poder usar apis públicas si aún no tenemos el proyecto funcionando, y poder desarrollar la parte front y adelantarnos al back.

Uno de los que más me gusta es: httpbin.org. De aquí en adelante la usaremos para hacer diversas pruebas.

Podemos testear un servicio get con argumentos, post con parámetros.

4. Entornos de mocks, desarrollo y produccion

Supongamos que tenemos un entorno de pruebas en node en localhost (mocks), otro que lo están desarrollando el equipo de back y el de producción (release del desarrollo).

Con el fin de no duplicar los tabs y agrandar la colección, añadiremos el prefijo antes del nombre del servicio, de manera que cambiando de entorno accederá a producción, mocks locales, o desarrollo.

Pulsamos la rueda dentada arriba a la derecha, add.

Como ejemplo ponemos en nombre de entorno: test, y añadimos la variable url con valor https://httpbin.org. Creamos otro entorno, por ejemplo mocks y variable url con valor http://localhost:3000/MIAPI

De esta forma si ponemos como url /get?uno=a&dos=b y seleccionamos el entorno de test nos funcionará, entrará en https://httpbin.org/get?uno=a&dos=b

5 Pre-script y script

En cada servicio, tenemos unas tabs de prescript y script. Se lanzan antes y despues de una llamada a un servicio. Cuando lo seleccionamos nos aparecen una serie de snippets que podemos usar directamente.

Es muy útil para actualizado de variables globales y hacer testing.

En cada tab puedes probar a meter cualquier código en javascript. Por ejemplo pon un console.log en cada una.

6. Variables de entorno, token como variable global

Supongamos que tenemos todos los servicios con seguridad por token (Authorization). Tener que ir copiando y pegando el token bueno en cada servicio cada vez que se ha caducado es realmente tedioso.

Desde el servicio que actualiza el token vamos a guardar el token globalmente, para ello, nos vamos a la tab Test, y escribimos lo siguiente (dependiendo del tipo de respuesta que de, un ejemplo sería este).

let resp = pm.response.json();
if(resp.ok){
    let token=resp.token;
    // actualizamos token
	pm.environment.set("token",token);
	console.log('se ha actualizado el token');
}else{
	console.log('no se ha actualizado el token');
}

En los demás servicios que requieran el token, en la petaña de Authorization, añadimos ``.

7 - Documentación

Botón derecho sobre la colección, Publish docs, seleccionamos el entorno y pinchamos en publicar. Copiamos la url y la ponemos en el navegador.

Una parte que me gusta mucho es la zona de la derecha, donde podemos copiar y pegar el código para realizar la llamada al api, siendo configurable en distintos lenguajes de programación: node, jquery, php…

8 - Test

Un tema muy interesante, el hecho de que cada vez que realizamos una llamada a un servicio desde postman realice una serie de test. Para ello se deben escribir en el tab Tests.

postman tiene una documentación muy sencilla: learning.getpostman.com/docs/postman/scripts/test_scripts/

// example using pm.response.to.have
pm.test("response is ok", function () {
    pm.response.to.have.status(200);
});

// example using pm.expect()
pm.test("environment to be production", function () { 
    pm.expect(pm.environment.get("env")).to.equal("production"); 
});

// example using response assertions
pm.test("response should be okay to process", function () { 
    pm.response.to.not.be.error; 
    pm.response.to.have.jsonBody(""); 
    pm.response.to.not.have.jsonBody("error"); 
});

// example using pm.response.to.be*
pm.test("response must be valid and have a body", function () {
     // assert that the status code is 200
     pm.response.to.be.ok; // info, success, redirection, clientError,  serverError, are other variants
     // assert that the response has a valid JSON body
     pm.response.to.be.withBody;
     pm.response.to.be.json; // this assertion also checks if a body  exists, so the above check is not needed
});
 
... y finalmente... Si te ha gustado, difúndelo. Es solo un momento. escríbe algo en comentarios 😉 Gracias.