Postman Auto Test. Почему при запуске запроса с вариантами тестов, ответ запроса учитывается только в последнем тесте.

Есть запрос на авторизацию. Тело запроса (x-www-form-urlencoded) содержат переменные окружения (Environment) phone и code. При вводе телефона, скажем 10 из 11 цифр, ответ один, при вводе пустого номера ответ другой. При запуске автотеста:

pm.test("Проверка авторизации при вводе 10 из 11 цифр", function(){
    pm.environment.set("phone1", 8123456789)
    var jsonD = pm.response.json();
    var er = jsonD.meta.error;
    console.log(er)
    pm.expect(er).to.eql("Неправильный код подтверждения телефона")

})

pm.test("Проверка авторизации при вводе 9 из 11 цифр", function(){
    pm.environment.set("phone1", 812345678)
    var jsonD = pm.response.json();
    var er = jsonD.meta.error;
    console.log(er)
    pm.expect(er).to.eql("Неправильный код подтверждения телефона")
})

pm.test("Проверка авторизации при пустом поле ввода номера телефона", function(){
    pm.environment.set("phone1", )
    var jsonD = pm.response.json();
    var jsonData = jsonD.meta.error;

    console.log(jsonData)
    pm.expect(jsonData).to.eql("Неверный формат номера телефона")
})

учитывается последний тест. То есть, верно отрабатывается тест с пустым номером телефона, а остальные в статусе Fail. В ответе (body) приходят данные как раз для последнего теста.

ВОПРОС: Как сделать так, что бы каждый тест отрабатывался и проверялся?

Можно попробовать создать прогон с тремя, в данном случае, запросами и вынести эти тесты в каждый по одному. Запустить прогон и скорее всего каждый пройдет со статусом Passed (если с бэком все ок конечно)

1 лайк

Насколько я понимаю всегда будет только последний отрабатывать. Правильно посоветовали выше - один тест на один запрос. так что дублировать запросы и в каждом запросе свой уникальный тест. Вроде звучит логично

1 лайк