Postman newman manejar códigos de estado
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
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.