#postman
#postman
Вопрос:
Я могу использовать
{{guid}}
чтобы получить идентификатор для параметров тела, который я могу использовать для идентификатора новой записи.
Как мне использовать подстроку guid
в postman либо в этой переменной param (которая, кстати, является уровнем сбора), либо через другую переменную?
Я пробовал различные, такие как
{{$guid.substring(10)}}
{{$guid}.substring(10)}
но они не сработали
Я попытался использовать сценарий предварительного запроса, подобный этому:
pm.collectionVariables.set("short_guid", pm.collectionVariables.get("myGUID").substr(12) )
используя переменную myGUID моей коллекции, которая определяется как {{guid}}
наряду с
"email": "{{$pm.collectionVariables.get('myGUID')}}@example.com",
но это не работает, поскольку переменная не интерпретируется, и я получаю строковый литерал
Комментарии:
1. Вы видели что-то, что заставило вас думать, что вы должны иметь возможность запускать произвольные JS в этих заполнителях? Я бы ожидал, что для этого потребуется сценарий предварительного запроса.
2. Сценарий предварительного запроса выглядит как хороший подход. Я изучу это
3. Пытаюсь, но пока не получается (информация добавлена выше).
4. Единственный способ добиться этого — использовать скрипт предварительного запроса для создания необходимого вам значения для запросов. Это должно установить переменную коллекции в качестве этого динамического значения guid —
pm.collectionVariables.set("short_guid", pm.variables.replaceIn("{{$guid}}"))
вы должны иметь возможность использовать{{short_guid}}
переменную в теле запроса. Это не дает вам substr, но, надеюсь, это имеет смысл.5. На вашем скриншоте вы используете
guid
, но во фрагментах кода этоmyGUID
. Может ли это быть проблемой? Непоследовательные имена?
Ответ №1:
вы должны ссылаться на переменную в теле как {{
для предварительного запроса :
var uuid = require("uuid")
var myUUID = uuid.v4();
pm.environment.set("myuuid",myUUID.substring(20))
console.log(pm.environment.get("myuuid"))
И в теле
{
"email": {{myuuid}}
}
вы также можете использовать переменные в разделе скрипта как:
console.log(pm.variables.replaceIn("{{$guid}}").substring(20))
Это сначала заменит {{$guid}} значением переменной postman, а затем найдет подстроку
вы можете использовать это как
console.log(pm.variables.replaceIn("this will print {{variable}} value"))
Ответ №2:
Вторая проблема, связанная с тем, что переменная не обнаруживается, связана с областью действия переменной
В postman область действия переменной находится справа налево, но приоритет — слева направо следующим образом:
Локальная> данные> среда> коллекция> глобальная
Итак, если у вас есть переменная среды и переменная коллекции с тем же именем, значение этой переменной будет из среды, а не из коллекции