Realizando tests (Serie Postman - Parte 4)
Ariel Alvarado | Julio 16, 2020
En el post anterior de Postman aprendimos a utilizar el tab de tests para asignar valores a una variable de entorno.
Si bien el cargar variables de entorno es muy útil, ahora utilizaremos el tab de test para su propósito real. Puedes obtener la colección entera e importarla directamente a Postman con el link https://www.getpostman.com/collections/b1091baa16b9f4500595.
Todos los tests serán creados en el tab de *Tests. Postman pone a disposición la variable pm que contiene variables, el ambiente, la solicitud, la respuesta, datos de iteración (esto se verá en un post futuro), cookies y utilidades para tests.
Por ejemplo, podemos crear un test simple para asegurarnos que la respuesta sea OK con código 200:
pm.test("Respuesta correcta es correcto", () => {
pm.expect(pm.response.status).to.equal("OK");
pm.expect(pm.response.code).to.equal(200);
});
Obviamente, este código debe agregarse al tab Tests de Postman.
Para hacer correr el test necesitamos presionamos el ícono de la flechita (al lado del nombre de nuestra colección) y luego el botón Run.
Con la pantalla de Collection Runner abierta, presionamos Run <nombre colección> (en mi caso la colección se llama Postman Echo) y los tests se ejecutarán.
El resultado nos aparece en una nueva pantalla donde se nos indica cuantos tests fueron exitosos y cuales fallaron (Si quieres volver a hacer correr los tests presiona el botón Retry).
Por ejemplo, para verificar que el atributo args de la respuesta tenga los valores que esperamos:
pm.test("Cuerpo de la respuesta es correcto", () => {
// Obtenemos la respuesta en JSON
const respuestaEnFormatoJson = pm.response.json();
// Verificamos que los argumentos sean de la forma que se quiere
pm.expect(respuestaEnFormatoJson.args).to.deep.equal({
"par1": "valor1",
"par2": "postman-echo.com"
});
});
Ó podriamos verificar el resultado valor por valor:
pm.test("Cuerpo de la respuesta es correcto 2", () => {
// Obtenemos la respuesta en JSON
const respuestaEnFormatoJson = pm.response.json();
pm.expect(respuestaEnFormatoJson.args).to.have.property("par1");
pm.expect(respuestaEnFormatoJson.args.par1).to.equal("valor1");
pm.expect(respuestaEnFormatoJson.args).to.have.property("par2");
pm.expect(respuestaEnFormatoJson.args.par2).to.equal("postman-echo.com");
});
Y eso es todo por ahora, en un próximo post haremos correr estos tests directamente en Node.js. Keep coding!!