Как используются переменные в Postman и для чего они нужны?

«Как используются переменные в Postman и для чего они нужны?» — вопрос из категории Инструменты тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Переменные в Postman — это механизм для хранения и повторного использования значений, что делает коллекции динамическими, поддерживаемыми и пригодными для разных окружений.

Типы переменных и их область видимости (от самой узкой к широкой):

  1. Локальные (Local Variables): Существуют только в рамках выполнения одного запроса или сценария. Идеальны для временных вычислений.
  2. Переменные коллекции (Collection Variables): Доступны для всех запросов внутри конкретной коллекции. Используются для данных, общих для сценария (например, base_url API).
  3. Переменные окружения (Environment Variables): Привязаны к конкретному окружению (dev, staging, prod). Позволяют быстро переключать контекст (URL, ключи API).
  4. Глобальные переменные (Global Variables): Доступны во всех коллекциях и окружениях в рамках рабочего пространства. Используются для редко меняющихся общих значений.
  5. Переменные данных (Data Variables): Импортируются из внешних CSV/JSON файлов для запуска итераций в Collection Runner.

Синтаксис и использование:

  • Ссылка на переменную: {{variable_name}} в URL, headers, body.
  • Установка/получение в скриптах (JavaScript):

    // Установка переменной в текущем окружении
    pm.environment.set("auth_token", "eyJhbGciOiJ...");
    pm.collectionVariables.set("user_id", 12345);
    
    // Получение значения переменной
    const token = pm.environment.get("auth_token");
    const baseUrl = pm.collectionVariables.get("base_url");
    
    // Удаление переменной
    pm.environment.unset("temp_value");
  • Использование в тестах:
    // Проверка, что переменная установлена и имеет ожидаемое значение
    pm.test("Auth token is present", function () {
        pm.expect(pm.environment.get("auth_token")).to.be.a('string').and.to.not.be.empty;
    });

    Динамические переменные: Postman предоставляет предустановленные динамические переменные, например {{$timestamp}} (текущее время) или {{$guid}} (генерация UUID), полезные для создания уникальных данных в запросах.