Postman newman lidar com códigos de status
Eu tenho uma pergunta se é possível ter mais de um código de status de teste. O caso é 201 quando o usuário é criado e 409 quando o usuário já existe quando eu executo novamente os casos de teste com o mesmo lote de usuários. 201 é tratado, mas 409 não. uma
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:
Pois 200estou recebendo um objeto de usuário, não posso postar este objeto aqui
para 409string O usuário já existe
Respostas
Uma maneira mais elegante de testar o status 200 ou 409 seria:
pm.expect(pm.response.code).to.be.oneOf([200, 409]);
O erro ocorre quando o status é 409, pois a solicitação não retorna JSON, mas uma string. Eu colocaria algo como
if (pm.response.code == 200) {
var data = pm.response.json()
// your code
}
Mas eu te aconselho fortemente a não fazer isso! Em termos de teste, você deseja que um teste verifique apenas uma coisa. Caso contrário, isso provavelmente levará a mal-entendidos e a um maior esforço de manutenção.
Eu proporia a criação de um pedido para criar usuários, com os testes correspondentes. E outro, que tenta recriar os usuários, novamente com os respectivos testes.