Postbote Newman behandeln Statuscodes
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
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.