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

Фотография

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

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

  • Validating
  • 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



#3 Spock

Spock

    Профессионал

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

Отправлено 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 772 сообщений
  • ФИО:Роман

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

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

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

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

 

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


  • 0



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

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

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