Допустим у я отправил POST запрос на JSON и получил ответ “params”: “value”
и теперь мне нужно передать “value” автоматом на следующий новый пост запрос, как это сделать?
- Создаешь переменную в Postman (paramsVal)
- В запросе на вкладке 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);
немного не дописал, я использовал данный метод для создания такой переменной
и теперь в новом окне , нового пост запроса я хочу автоматом в боди передавать значение данной переменной в 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