Переменные и окружения (environments)
↑ 1.5 Postman: от установки до коллекций · ← Предыдущая · → Следующая
Зачем это аналитику и PM
Сценарий один, стенды разные. Если адрес зашит в запрос, копия для теста легко уходит на бой. Переменная и отдельное окружение оставляют сценарий тем же, а хост подменяют выбором.
План темы
- подстановка адреса через переменную
- глобальные, окружения, коллекции
- секретные значения
- переключение dev/test/prod
Объяснение
Переменная — имя, вместо которого клиент подставляет значение перед отправкой. Окружение — набор значений одного стенда.
Как табличка на двери. На двери написано имя. Табличка test подставляет учебный хост, табличка prod — боевой. Дверь не переписывают. Если табличка не выбрана, уйдёт сырое имя и сервер не найдётся.
Области
Адрес стенда и допуск держите в окружении: они меняются вместе со стендом. То, что одинаково для всех стендов и принадлежит сценарию, может жить на коллекции. Более общие значения на всё пространство тоже бывают. Кто кого перекрывает, сверьте в справке вашей версии: список областей расширяли. Не запоминайте чужую шпаргалку десятилетней давности как закон.
Секрет не кладут в файл для чата и git. Если клиент умеет помечать значение секретным или хранить текущее отдельно от начального, используйте это и проверьте экспорт. Имя галочки запишите у себя. В примерах только маска.
flowchart TD A["Запрос с именем переменной"] --> B{"Какое окружение активно"} B -->|"test"| C["Учебный адрес"] B -->|"prod"| D["Боевой адрес"]
Примеры
Строка адреса в запросе:
{{baseUrl}}/todos/1Упрощённая схема окружения, не полный файл экспорта. У настоящей выгрузки больше служебных полей.
{
"name": "test",
"values": [
{"key": "baseUrl", "value": "https://jsonplaceholder.typicode.com", "enabled": true}
]
}Второе окружение с https://api.example.com переключает хост, не трогая коллекцию. Токен в схему не входит.
Нюансы и подводные камни
- Без активного окружения подстановка не случается. Это не поломка API.
- Одно имя в коллекции и в окружении легко прочитать не оттуда. Адрес задавайте в одном месте.
- Экспорт может унести секрет. Откройте файл до отправки.
- Имена стендов в команде могут быть не dev и не prod. Подписывайте окружение их словами.
Практика
Два окружения, одна переменная адреса, один GET. Переключите окружение, не правя строку запроса.
Ожидаемый результат: в адресе запроса нет хоста буквами. Фактический хост меняется вместе с именем окружения. В файле для коллеги нет токена.
Вопросы с ответами
Зачем не вписать адрес руками?
Ручной адрес приклеен к стенду. Переменная оставляет запрос общим, стенд выбирают отдельно. Так реже бьют в бой.
Чем окружение отличается от коллекции?
Коллекция — запросы. Окружение — значения стенда. Одна коллекция обслуживает несколько окружений.
Куда класть токен?
В секрет окружения, если версия это умеет, и не в экспорт для чата. В тексте примера — маска. Утёкший токен гасят.
Запрос ушёл не туда.
Было активно другое окружение, либо хост до сих пор вписан мимо переменной. Перед отправкой читают имя окружения и собранный адрес.