Я относительно новичок в Postman. В сценарии предварительного запроса я определил переменную: updatedUserGrTypeName,
var updatedUserGrTypeName = pm.environment.get("newGroupTypeToUpdateAndDelete") +
"_PutUpdate";
Затем я передал его в Тело:
{
"id": {{grTypeIdUpdateDelete}},
"name": "{{updatedUserGrTypeName}}"
}
Обратите внимание, что {{grTypeIdUpdateDelete}} определено в среде — это глобальная переменная.
Я нажимаю Отправить.
И я ожидаю, что запись будет обновлена как «NewIdentityGrTypeToBeUpdatedAndDeleted_PutUpdate», которая на самом деле является текущим значением глобальной переменной «newGroupTypeToUpdateAndDelete», объединенной со строкой «_PutUpdate».
Однако реальный результат: "{{updatedUserGrTypeName}}" (см. скриншот из базы данных):
Похоже, что когда я передаю в Body имя глобальной переменной (определенной в среде) {{grTypeIdUpdateDelete}}, она работает (обновляет запись по ее идентификатору), однако не берет значение из переменная grTypeIdUpdateDelete, определенная в предварительном запросе.
Может кто-нибудь помочь мне, пожалуйста.
Переменные Postman и переменные JavaScript — это разные вещи. Чтобы использовать вычисляемое значение в запросе, вам нужно сначала сохранить его в переменной Postman.
Подобно тому, как вы использовали метод get(key)
в pm.environment
для чтения переменной среды Postman, вы также можете создавать или обновлять переменные Postman в выбранной вами области, используя set(key, value)
в соответствующей коллекции переменных.
В этом конкретном случае вы, вероятно, сохраните его как «локальную» переменную Postman, чтобы избежать добавления беспорядка в вашу среду, вызвав pm.variables.set("updatedUserGrTypeName", updatedUserGrTypeName)
. Ваш сценарий предварительного запроса будет выглядеть так:
var updatedUserGrTypeName = pm.environment.get("newGroupTypeToUpdateAndDelete")
+ "_PutUpdate";
pm.variables.set("updatedUserGrTypeName", updatedUserGrTypeName);
Для получения дополнительной информации см. «Определение переменных в сценариях» в Учебном центре Postman.