Postman newman manejar códigos de estado

Sep 22 2020

Tengo una pregunta si es posible tener más de una verificación de código de estado en la prueba. El caso es 201 cuando se crea el usuario y 409 cuando el usuario ya existe cuando vuelvo a ejecutar casos de prueba con el mismo lote de usuarios. 201 se maneja pero 409 no. a

 var data = pm.response.json()
 pm.test("Status test", function () {
  return  pm.response.to.have.status(200) || pm.response.to.have.status(409);
     
});


There was an error in evaluating the test script:  JSONError: Unexpected token 'U' at 1:1 User already Exists ^

EDITAR:

Porque 200obtengo un objeto de usuario, no puedo publicar este objeto aquí

para la 409cadena El usuario ya existe

Respuestas

1 ChristianBaumann Sep 22 2020 at 19:47

Una forma más elegante de probar el estado 200 o 409 sería:

pm.expect(pm.response.code).to.be.oneOf([200, 409]);

El error ocurre cuando el estado es 409, porque entonces la solicitud no devuelve JSON, sino una cadena. Pondría algo como

if (pm.response.code == 200) {
    var data = pm.response.json()
    // your code
}

¡Pero te recomiendo encarecidamente que no hagas esto! En términos de pruebas, desea que una prueba solo verifique una cosa. De lo contrario, lo más probable es que esto dé lugar a malentendidos y a un mayor esfuerzo de mantenimiento.

Propondría crear una solicitud para crear usuarios, con las pruebas correspondientes. Y otro, que intenta recrear a los usuarios, nuevamente con pruebas acordes.