← Назад к вопросам

Как создавал переменную окружения в Postman

2.0 Middle🔥 231 комментариев
#Тестирование API

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Управление переменными окружения в Postman

Для QA Engineer, работающего с API, Postman является ключевым инструментом для тестирования, и грамотное использование переменных окружения (Environment Variables) — одна из его самых мощных функций. Это позволяет отделить данные (например, URL, токены, ключи) от самих запросов, что делает коллекции гибкими, переносимыми и безопасными.

Создание нового окружения

  1. В правой части интерфейса Postman найдите боковую панель Environments (или перейдите в меню "File" -> "Settings" -> "Manage Environments" в старых версиях).
  2. Нажмите кнопку "Add" или "+".
  3. В появившемся окне задайте имя окружения (например, "Dev", "Staging", "Production").
  4. В таблице ниже определите ваши переменные. Для каждой переменной заполните:
    *   **Initial Value**: Значение, которое будет использоваться при первом запуске или в режиме дизайна. Это часто приватное значение (например, реальный API ключ).
    *   **Current Value**: Значение, которое фактически используется при выполнении запросов. Его можно временно переопределить для тестирования, не меняя Initial Value.

Пример создания окружения "Local Development":

// Это структура данных внутри окружения, а не код для выполнения.
{
  "environment_name": "Local Development",
  "variables": [
    {
      "key": "base_url",
      "initial_value": "http://localhost:8080/api/v1",
      "current_value": "http://localhost:8080/api/v1"
    },
    {
      "key": "api_key",
      "initial_value": "secret_dev_key_123",
      "current_value": "secret_dev_key_123"
    }
  ]
}

Использование переменных в запросах

После создания окружения и его выбора в верхнем правом углу (из выпадающего списка), переменные можно использовать в любом месте запроса через синтаксис двойных curly braces {{...}}.

Пример запроса с использованием переменных:

// В поле 'URL' запроса
{{base_url}}/users

// В заголовках (Headers)
Key: Authorization
Value: Bearer {{api_key}}

// В теле запроса (Body), например, в JSON
{
    "environment": "{{environment_name}}"
}

Динамическое присвоение значений через скрипты (Pre-request и Test)

Одна из самых продвинутых техник — получение значения переменной во время выполнения, например, из ответа на запрос авторизации. Это делается в разделе Tests скрипта.

// Пример в секции 'Tests' запроса на логин
pm.test("Save access token", function () {
    var jsonData = pm.response.json();
    // Устанавливаем переменную в текущем активном окружении
    pm.environment.set("access_token", jsonData.access_token);
});

// Теперь в следующем запросе можно использовать {{access_token}}

Глобальные переменные и уровни видимости

Важно понимать разницу:

  • Environment Variables: Привязываются к конкретному окружению. Переключение между окружениями (например, Dev и Prod) меняет все значения.
  • Global Variables: Доступны всегда, независимо от выбранного окружения. Создаются через "Globals" на той же боковой панели. Используются для данных, общих для всех контекстов.

Практические советы для QA

  • Разделение конфигураций: Создавайте отдельные окружения для каждой стадии (Development, Staging, Production). Это основа для корректного тестирования в разных условиях.
  • Массовое импорт/экспорт: Окружения можно экспортировать в JSON файл для бэкапа или передачи коллегам, и импортировать их обратно.
  • Безопасность: Initial Value может хранить реальные секреты для разработки. Для Production окружения можно оставить Current Value пустым и вводить его только при запуске, чтобы ключи не хранились в файле коллекции.
  • Для автоматизации (Newman): При запуске коллекции через CLI инструмент Newman, окружение можно передать как JSON файл, что критически важно для CI/CD pipelines.

Таким образом, переменные окружения в Postman — это не просто удобство, а обязательная практика для построения профессиональных, надежных и безопасных тестовых коллекций API. Они превращают статические запросы в динамические и контекстно-зависимые сценарии тестирования.