Использование переменных окружения в Postman

Продолжу тему про Postman.

В этой заметке немного расскажу про использование переменных в Postman.

JavaScript API

Во-первых, напомню, что переменные можно использовать в JavaScript API Postman. Например, для тестов или в pre-request:

console.log(pm.variables.get('param'));
console.log(pm.environment.get('param'));
console.log(pm.globals.get('param'));

Объекты variables, globals и environment объекта pm хранят значения переменных из соответствующих scope-ов: из переменных коллекции, из глобального scope и из переменных окружения. Приоритеты получения переменной:

  1. pm.environment содержит значения переменных, означенных для окружения,
  2. pm.variables содержит значения переменных, означенных для коллекции,
  3. pm.globals содержит значения переменных, означенных в глобальном окружении.

То есть в первую очередь переменная ищется в environment, далее в variables и, в конце, в globals.

environment, globals содержат методы set('parav_name', 'param_value') для записи значения в соответствующий scope.

Использование через {{param}}

Значения из переменных можно получить в адресной строке, заголовках и в запросе при помощи синтаксиса {{param}}:

postman1

postman2

request

Что ещё?

В нашей команде это используем следующим образом.

У нас имеется коллекция запросов к разрабатываемым сервисам. В коллекции адрес сервисов не указываются - вместо них прописаны подстановки из переменных: {{service_url}}. В переменной {{service_url}} коллекции (эта возможность доступна в бесплатной версии) указано значение по-умолчанию (адрес демо-стенда, т.к. эту коллекцию могут использовать все заинтересованные). Каждый в команде в своём окружении указывает адрес своего сервера для отладки сервисов. Таким образом достаточно в одном месте переопределить значение переменной {{service_url}} и работать с нужным сервисом.

В качестве демо с создал коллекцию, которая обращается к API сайта thetvdb. В ней указаны переменные коллекции apikey, userkey, username со значениями-заглушками и service_address с адресом API.

Переменные apikey, userkey, username необходимо переопределить в переменных окружения значениями полученными при регистрации на сайте thetvdb и можно пользоваться этоми запросами для получения информации о сериалах.