t.me/atinfo_chat Telegram группа по автоматизации тестирования

Postman: как из тела ответа передать параметр в тело нового запроса

Теги: #<Tag:0x00007f7486f65a48> #<Tag:0x00007f7486f65958> #<Tag:0x00007f7486f65840> #<Tag:0x00007f7486f65750>

Допустим у я отправил POST запрос на JSON и получил ответ “params”: “value”
и теперь мне нужно передать “value” автоматом на следующий новый пост запрос, как это сделать?

  1. Создаешь переменную в Postman (paramsVal)

  2. В запросе на вкладке Tests пишешь js код:

    var jsonData = JSON.parse(responseBody);
    postman.setEnvironmentVariable (“paramsVal”, jsonData.params);

После выполнения запроса он запишет значение в переменную.

также можно сделать несколько вариантов для разных ответов
if (responseCode.code === 201){
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable (“value1”, jsonData.value);
}

else if (responseCode.code === 409) {
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable (“value1”, jsonDataResponse.errors.meta.metaData.value);
}

может еще пригодиться:
если структура Json имеет вложености тогда строка будет примерно такая

postman.setEnvironmentVariable (“value1”, jsonDataResponse.вложеность1.вложеность2.value);

2 Симпатий

немного не дописал, я использовал данный метод для создания такой переменной

и теперь в новом окне , нового пост запроса я хочу автоматом в боди передавать значение данной переменной в value, я это делаю так ---- в хедере пишу в кей params а в value {{params}} ( я так токен передаю) и по идее это тоже должно работать но не работает и не пойму почему

и никаких ошибок на вкладке тест нет? а постман подтягивает саму переменную(коричневім по моему выделяет)?

да выделяет, но с вариантом для токена значение передается в хедер(куда надо) а вот как передать такуюже переменную в тело.
да вот если что то что я создал

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable(“paymentId”, jsonData.paymentId);

и я проверил что нужное значение тянет, и теперь мне надо его передать в тело нового запроса

так также ‘‘keyPaymentId’’: “{{PaymentId}}”

Но если я пропишу его в хедере то в боди его не передаст, а только на хедер, а если я пропишу место значения value {{paymentId}} то будет ексепшен

и какой же ексепшн?

“message”: “getSingleResult() did not retrieve any entities.”,

Короче еще раз что мне нужно, я получил ответ в формате json “params”:“value”
теперь я создаю в новом окне новый запрос и в тело хочу автоматом передать полученное “value” в тело нового запроса “params”:“value

Проверил все работает, в названиях нет совпадения? переменные разные ипользуются? в постмене можно еще дебаг включить и посмотреть что туда сохраняется

ну ты в body json запроса передаешь значение из переменной? таким образом? “params”:"{{Value}}
?

именно так

короче поменял название переменной и стало работать, а до етого не знаю че не работало, но спасибо

Скорее всего у тебя конфликт имен переменных, это когда переменная окружения и глобальная переменная имеют одно и тоже имя. В таких случаях значение переменной в окне просмотра показывается перечеркнутым и не используется в запросах. Очень противное поведение постмана поскольку избавится от такой переменной очень сложно (даже непосредственное удаление переменной из базы ни к чему не приводит, если снова создать переменую с таким именем она всеравно будет зачеркнута)
http://joxi.ru/8Anpw61cbBdVmO