#javascript #api #conditional-statements #postman
Вопрос:
прежде чем вы прочтете это, я полный нуб, извините за это.
У меня есть некоторая конечная точка, которая будет возвращать разные статусы в зависимости от того, сколько раз эта конечная точка вызывается. Либо он вернет статус 200, либо 409 с некоторой дополнительной информацией. В последнем случае он вернет что-то вроде этого:
{
"error": {
"code": "ABC",
"message": "ABC",
"target": null,
"innerError": null,
"details": null
}
}
и я хотел бы, чтобы тест прошел, если либо статус будет равен 200, либо будет 409 с «сообщением»: «ABC».
Я пробовал это по-разному, но я застрял на этом. Моя последняя попытка выглядела бы так:
pm.test("Status is 200 or ABC", function () {
if(pm.response.code !== 200)
{
var jsonData = pm.response.json();
var expectedObject = {
"message": "ABC"
}
}
else
{
(pm.response.to.have.status(200))
console.log("Success")
}
});
и он прошел бы этот тест, даже если статус не равен 200 и если тело не содержит «сообщение»: «ABC».
Есть какие-нибудь идеи о том, как я мог бы это сделать?
Ответ №1:
Вы должны выполнить какую-то проверку, чтобы тест прошел/не прошел. Условие должно быть примерно таким:
var jsonData = pm.response.json();
// expecting that jsonData.message will be equal to "ABC"
pm.expect(jsonData.message).to.eql("ABC")
В случае сомнений, проверьте документы