Какие типы переменных существуют в Postman?
Что проверяют
Умеете ли вы делать коллекцию, которая переносится между стендами и запускается в CI, а не набор запросов с вбитыми вручную адресами. Вопрос простой, но по ответу видно, писали ли вы скрипты в Postman. Следом обычно спрашивают, как передать токен из ответа одного запроса в следующий и что произойдёт при совпадении имён.
Как отвечать
Перечислите области видимости от широкой к узкой:
- глобальные: одна на весь воркспейс, удобны для редких общих значений, легко превращаются в свалку;
- переменные коллекции: живут вместе с коллекцией и уезжают с ней при экспорте, хорошее место для
baseUrlпо умолчанию; - переменные окружения: свой набор под dev, stage и prod, переключается селектором вверху справа, основной рабочий инструмент;
- данные: приходят из CSV или JSON при прогоне в Collection Runner и в Newman через
-d, существуют только внутри итерации; - локальные: заданы в скрипте через
pm.variables.set, исчезают после запроса.
Обязательно скажите про приоритет: побеждает самая узкая область, то есть локальная перекрывает данные, те перекрывают окружение, окружение перекрывает коллекцию, коллекция перекрывает глобальные. Дальше практика: подстановка {{baseUrl}}, чтение и запись через pm.environment.get, pm.collectionVariables.set, разбор ответа в скрипте после запроса и сохранение токена. Отдельно назовите initial value против current value: первое синхронизируется в командный воркспейс, второе остаётся у вас, поэтому секреты помечают типом secret или держат в Postman Vault. Полезно добавить динамические подстановки {{$guid}}, {{$randomInt}}, {{$timestamp}}: это генераторы, а не хранилище.
Где спотыкаются
Кладут боевой токен в initial value и отправляют его в общий воркспейс вместе с коллекцией. Это самая частая утечка в командах QA.
Не знают про приоритет и час ищут, почему запрос идёт не на тот хост: значение перебивала забытая переменная в другой области.
Вбивают адреса и идентификаторы прямо в запросы. Такая коллекция не переезжает на другой стенд и не запускается в пайплайне через Newman.