Postbote Newman behandeln Statuscodes

Sep 22 2020

Ich habe eine Frage, ob es möglich ist, mehr als einen Statuscode im Test überprüfen zu lassen. Fall ist 201, wenn Benutzer erstellt wird, und 409, wenn Benutzer bereits vorhanden ist, wenn ich Testfälle mit derselben Gruppe von Benutzern erneut ausführe. 201 wird behandelt, 409 jedoch nicht. ein

 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 ^

BEARBEITEN:

Für 200i Benutzerobjekt bin immer kann ich dieses Objekt nicht hier posten

für 409Zeichenfolge Benutzer existiert bereits

Antworten

1 ChristianBaumann Sep 22 2020 at 19:47

Eine elegantere Möglichkeit, den Status 200 oder 409 zu testen, wäre:

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

Der Fehler tritt auf, wenn der Status 409 lautet, da die Anforderung dann nicht JSON, sondern eine Zeichenfolge zurückgibt. Ich würde so etwas sagen

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

Aber ich rate Ihnen dringend, dies nicht zu tun! In Bezug auf das Testen möchten Sie, dass ein Test nur auf eine Sache prüft. Andernfalls führt dies höchstwahrscheinlich zu Missverständnissen und erhöhtem Wartungsaufwand.

Ich würde vorschlagen, eine Anfrage zum Erstellen von Benutzern mit entsprechenden Tests zu erstellen. Und noch eine, die versucht, die Benutzer erneut mit entsprechenden Tests neu zu erstellen.