Postman Newman gérer les codes d'état

Sep 22 2020

J'ai une question s'il est possible d'avoir plus d'un test de vérification de code d'état. Le cas est 201 lorsque l'utilisateur est créé et 409 lorsque l'utilisateur existe déjà lorsque je réexécute les cas de test avec le même lot d'utilisateurs. 201 est traité mais pas 409. une

 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 ^

ÉDITER:

Car 200je reçois un objet utilisateur, je ne peux pas publier cet objet ici

pour la 409chaîne L'utilisateur existe déjà

Réponses

1 ChristianBaumann Sep 22 2020 at 19:47

Une façon plus élégante de tester le statut 200 ou 409 serait:

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

L'erreur se produit lorsque l'état est 409, car la demande ne renvoie pas JSON, mais une chaîne. Je mettrais quelque chose comme

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

Mais je vous conseille vivement de ne pas faire ça! En termes de test, vous voulez qu'un test ne vérifie qu'une seule chose. Sinon, cela conduira très probablement à des malentendus et à des efforts de maintenance accrus.

Je proposerais de créer une demande pour créer des utilisateurs, avec des tests correspondants. Et un autre, qui essaie de recréer les utilisateurs, encore une fois avec des tests correspondants.