No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Postman

Curso de Postman

Eduardo Álvarez

Eduardo Álvarez

Creación de Pruebas para endpoints

15/17
Recursos

Aportes 20

Preguntas 4

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Como quedo mi test usando el API de spotify


pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});


pm.test("JSON", function () {
    pm.response.json();
    
});


pm.test("response token" , function() {
    
    pm.environment.unset("token");
  if(pm.response.to.have.jsonBody("access_token") && pm.response.to.have.jsonBody("token_type") ){
        var json = JSON.parse(responseBody)
        var token = `${json.token_type} ${json.access_token}`;
        pm.environment.set("token",token);
  }    
})

Este tutorial que encontré tiene casi la misma información de este curso solo que en un post, por si quieren poder leerlo mas lentamente.

Tutorial

Postman permite el uso de las arrow function de JavaScript

pm.test("Status code is 200", () => pm.response.to.have.status(200));
pm.test("Response JSON", () => pm.response.to.be.json);
pm.test("Response Have Name", function () {
    pm.response.to.have.jsonBody("name");
    pm.environment.unset("name");
    var json = JSON.parse(responseBody);
    pm.environment.set("name", json.name);
    //postman.setEnvironmentVariable("name", json.name);
});

para quienes se preguntan de donde sale esos .to.have .to.be.oneOf etc. pueden visitar https://www.chaijs.com/api/bdd/, lenguaje de cadena, ya que postman lo usa con el método expect.

Asi me quedó la prueba actualizando: solo si es válido.

  • Código
pm.test("Response should be JSON", function () {
    let resp = pm.response.to.have.jsonBody("token");
    if(resp){
        pm.environment.unset("token");
        // Obtener la respuesta y pasarla a tipo JSON.
        var json = JSON.parse(responseBody)
        // Guardar la variable de entorno obteniendo el campo token.
        pm.environment.set("token", `Token ${json.token}`);
    } 
});
  • Prueba

Genial, estas funciones me recuerdan mucho a Jest, el usar la función expect().to.be es muy similar a Jest, increíble el poder hacer pruebas automatizadas usando Postman.

Frameworks como Laravel traen ya una herramienta de testing integrada, y ahora si le sumamos el testing con Postman bum! imposible que nuestra API falle jaja


Me aparece este error en la autentificacion del token porque ?

Esta es la clase más importante de este curso.

SI quieren saber mas acerca de que pre-request usar, les dejo este link. https://learning.postman.com/docs/writing-scripts/pre-request-scripts/

las variables pm, postman y responseBody ya estan predefinidas en postman? cual viene a ser la diferencia entre pm y postman?

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

pm.test("Response should be JSON", function(){
    pm.response.to.be.json;
})

pm.test("Response shoud be body", function(){
    pm.response.to.be.withBody;
})

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

var schema = {
   "message": "string",
};

pm.test('Schema is valid', function() {
  pm.expect(tv4.validate(pm.response.json(), schema)).to.be.true;
});

Excelente

Postman tiene snippets que mnos ayudan a validar ciertos reponse como 200, 401 etc

Se debe utilizar let y const para definir variables ?

POSTMAN ocupa alguna libreria para estos test?

Hacer pruebas Verificar el formato del response Añadir el response a una variable del ambiente

Comparto unos tests que hice para mi API

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

pm.test("Response should contains access token", function () {
    pm.environment.unset("access_token");
    if(pm.response.to.have.jsonBody("access_token") && pm.response.to.have.jsonBody("token_type")) {
        var json = JSON.parse(responseBody);
        pm.environment.set("access_token", json.access_token);
    }
});

Esto es simplemente genial, gracias por este curso!

Tests usando arrow functions

pm.test('Status code is 200', () => {
    pm.response.to.have.status(200);
});

pm.test('Response should be JSON', () => {
    pm.response.to.be.json;
});

pm.test('Response should have token', () => {
    pm.response.to.have.jsonBody('token');
    // Un/Set 'token'
    pm.globals.unset('token');
    const response = JSON.parse(responseBody);
    pm.globals.set('token', response.token);
});

Usando la API de Star Wars
https://swapi.dev/api/people/