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.

Abrir el editor de variables

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.

Elegimos el Collection Runner

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.

Run Collection Runner

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).

Resultado de ejecutar la colección

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!!