Перейти к содержимому

Практикум по тест-дизайну 2.0
онлайн, начало 29 ноября
Тестирование мобильных приложений
онлайн, начало 27 ноября
Автоматизатор мобильных приложений
онлайн, начало 27 ноября
Программирование на Python для тестировщиков
онлайн, начало 22 ноября
Фотография

Postman, проверка полей в Response Body

postman

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 Expro

Expro

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 22 Ноябрь 2018 - 07:54

Доброе время суток!
Подскажите как составить запрос на проверку полей в теле ответа:

{
    "partners": [
        {
            "partner": "...",
            "price": ...,
            "currency": "...",
            "url": "..."
        }
    ]
}

но нужно так, что бы если вдруг ответ изменится и одного поля не будет (например уберут "url": "..."), то тест должен пройти успешно проверив что оставшиеся поля совпадают с моим ожиданием.
Тест который пытался сам написать:

var json1 = JSON.parse(responseBody);
tests["partnersTest"] = responseBody.has('partners') ;
tests["partnerTest"] = responseBody.has('partner') ;
tests["priceTest"] = responseBody.has('price') ;
tests["currencyTest"] = responseBody.has('currency') ;
tests["urlTest"] = responseBody.has('url') ;

Тем самым я проверяю весь ответ на заданные мной совпадения, не то что бы я хотел, т.к. если какого-то совпадения не находит тест валится на этом, это не практично.
№2:

pm.test("partners", function () {
var json1 = JSON.parse(responseBody);
pm.response.to.have.jsonBody('partners');
});

поиск совпадения производится только по главному полю, т.е то что внутри поля "partners" недоступно.
 


  • 0

#2 kyba

kyba

    Новый участник

  • Members
  • Pip
  • 9 сообщений
  • ФИО:Денис

Отправлено 22 Ноябрь 2018 - 08:47

Доброе время суток!
Подскажите как составить запрос на проверку полей в теле ответа:

{
    "partners": [
        {
            "partner": "...",
            "price": ...,
            "currency": "...",
            "url": "..."
        }
    ]
}

но нужно так, что бы если вдруг ответ изменится и одного поля не будет (например уберут "url": "..."), то тест должен пройти успешно проверив что оставшиеся поля совпадают с моим ожиданием.
Тест который пытался сам написать:

var json1 = JSON.parse(responseBody);
tests["partnersTest"] = responseBody.has('partners') ;
tests["partnerTest"] = responseBody.has('partner') ;
tests["priceTest"] = responseBody.has('price') ;
tests["currencyTest"] = responseBody.has('currency') ;
tests["urlTest"] = responseBody.has('url') ;

Тем самым я проверяю весь ответ на заданные мной совпадения, не то что бы я хотел, т.к. если какого-то совпадения не находит тест валится на этом, это не практично.
№2:

pm.test("partners", function () {
var json1 = JSON.parse(responseBody);
pm.response.to.have.jsonBody('partners');
});

поиск совпадения производится только по главному полю, т.е то что внутри поля "partners" недоступно.
 

 

язык C#? 

 

Используйте try catch


  • 0

#3 Spock

Spock

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 601 сообщений
  • ФИО:Роман

Отправлено 22 Ноябрь 2018 - 09:14

генерируйте схему и потом проверяйте по ней одной строчкой кода

 

сразу все поля проверите, и те что есть, и те которые вдруг лишние появятся. никакими другими проверками вы это не выловите


  • 0

#4 Expro

Expro

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 22 Ноябрь 2018 - 12:04

генерируйте схему и потом проверяйте по ней одной строчкой кода

 

сразу все поля проверите, и те что есть, и те которые вдруг лишние появятся. никакими другими проверками вы это не выловите

спасибо, всё получилось!


  • 1

#5 Expro

Expro

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 23 Ноябрь 2018 - 07:43

генерируйте схему и потом проверяйте по ней одной строчкой кода

 

сразу все поля проверите, и те что есть, и те которые вдруг лишние появятся. никакими другими проверками вы это не выловите

Подскажите пожалуйста, а так как я хотел не сделать?
Нужно так, что бы если вдруг ответ изменится и одного поля не будет (например уберут "url": "..."), то тест должен пройти успешно проверив что оставшиеся поля совпадают с моим ожиданием.


  • 0

#6 Spock

Spock

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 601 сообщений
  • ФИО:Роман

Отправлено 23 Ноябрь 2018 - 08:27

если поля у вас некоторые необязательные - вы в схеме их так и помечайте необязательными

если обязательные - помечайте обязательными

если поля с условиями, тогда логические условия прописывайте в схеме

 

плюс в каждую ветку добавляйте условие что лишних элементов не должно быть, чтобы отлавливать новые элементы либо случайно добавленные ненужные


  • 0


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн




Темы с аналогичным тегами postman

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале