Deprecated: Creation of dynamic property Yoast\Presenters\CommonArticlePresenter::$metaPropertyType is deprecated in /var/www/html/web/app/themes/tutortop-blog/Yoast/Presenters/CommonArticlePresenter.php on line 26

Deprecated: Creation of dynamic property Yoast\Presenters\CommonArticlePresenter::$metaPropertyType is deprecated in /var/www/html/web/app/themes/tutortop-blog/Yoast/Presenters/CommonArticlePresenter.php on line 26

Deprecated: Creation of dynamic property Yoast\Presenters\CommonArticlePresenter::$metaPropertyType is deprecated in /var/www/html/web/app/themes/tutortop-blog/Yoast/Presenters/CommonArticlePresenter.php on line 26
Создание окружения в Postman: полное руководство по настройке среды для API-разработки
27.06.2025
235
18.5 мин

Создание окружения в Postman: исчерпывающее руководство по настройке среды разработки

Понимание концепции окружений в Postman

Окружение в Postman — это набор ключевых переменных, которые позволяют использовать одни и те же запросы в различных контекстах. Как отмечает Абхинав Аснатхани, главный евангелист Postman: «Окружения позволяют разработчикам создавать гибкие и переиспользуемые коллекции запросов, которые могут работать в любой среде без необходимости дублирования кода».

Освоить окружения в Postman и остальные ключевые инструменты QA можно на онлайн-курсах.

Зачем нужны окружения?

Окружения решают несколько критически важных задач:

  • Упрощение переключения между средами: одним кликом можно переключиться с локального сервера на продакшн
  • Снижение количества ошибок: исключается человеческий фактор при ручном изменении параметров
  • Командная работа: разные участники команды могут использовать собственные настройки без влияния на коллег
  • Безопасность: чувствительные данные могут храниться отдельно для каждой среды

Рассмотрим практический пример. Компания «ТехноЛаб» разрабатывает API для системы управления складом. У них есть три среды: локальная разработка (localhost:3000), тестовая среда (test-api.technolab.ru) и продакшн (api.technolab.ru). Без использования окружений разработчикам пришлось бы создавать три отдельные коллекции запросов или постоянно менять URL вручную.

Области видимости переменных

В Postman существует иерархия областей видимости переменных, которая определяет приоритет их использования:

  • Global variables (глобальные): доступны во всех коллекциях и окружениях
  • Collection variables (переменные коллекции): доступны только в рамках конкретной коллекции
  • Environment variables (переменные окружения): доступны только при активном окружении
  • Data variables (переменные данных): используются при итерационном тестировании
  • Local variables (локальные): существуют только в рамках выполнения одного запроса

Важно понимать, что переменные с одинаковыми именами перезаписывают друг друга согласно этой иерархии — локальные переменные имеют наивысший приоритет.

Пошаговое создание окружения в Postman

Способ 1: Создание через панель Environments

Самый распространенный способ создания окружения:

  1. Откройте вкладку Environments: в левой боковой панели Postman найдите и кликните на значок «Environments» (выглядит как шестеренка или планета)
  2. Нажмите кнопку создания: в верхней части панели нажмите кнопку «+» или «Create Environment»
  3. Задайте имя окружения: введите описательное имя, например «Development API» или «Production Environment»
  4. Добавьте переменные: в таблице введите названия переменных и их значения
  5. Сохраните изменения: нажмите кнопку «Save» для сохранения окружения

Способ 2: Создание через выпадающее меню

Альтернативный способ для быстрого создания:

  1. Найдите селектор окружений: в правом верхнем углу интерфейса найдите выпадающий список с надписью «No Environment»
  2. Откройте меню: кликните на выпадающий список
  3. Выберите создание: в меню выберите опцию «Add» или «Create Environment»
  4. Настройте параметры: задайте имя и добавьте необходимые переменные

Добавление переменных окружения

При создании переменных важно понимать разницу между Initial Value (начальное значение) и Current Value (текущее значение):

  • Initial Value: это значение, которое будет видно другим участникам команды при экспорте или синхронизации окружения
  • Current Value: локальное значение, которое используется при выполнении запросов и не синхронизируется

Для чувствительных данных (токены, пароли) рекомендуется оставлять Initial Value пустым, а заполнять только Current Value.

Тип переменнойПример имениОписание использованияРекомендуемые значения
URL сервераbase_urlОсновной адрес APIhttps://api.example.com
Токен авторизацииauth_tokenJWT или API ключBearer eyJhbGciOiJIUzI1NiIs…
Версия APIapi_versionВерсионирование эндпоинтовv1, v2, beta
Идентификатор пользователяuser_idID для тестовых операций12345
Порт базы данныхdb_portПодключение к БД5432, 3306

Практические примеры настройки окружений

Пример 1: Настройка окружения для REST API интернет-магазина

Рассмотрим создание окружения для тестирования API интернет-магазина:

Название окружения: «E-commerce Development»

  • base_url: http://localhost:8080/api
  • admin_token: Bearer admin_dev_token_123
  • customer_id: 1001
  • product_category: electronics
  • currency: RUB
  • timeout: 30000

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

  • URL запроса: {{base_url}}/products/{{product_category}}
  • Заголовок авторизации: Authorization: {{admin_token}}
  • Параметр запроса: customer_id={{customer_id}}

Пример 2: Окружение для микросервисной архитектуры

Для более сложной архитектуры с несколькими микросервисами:

Название окружения: «Microservices Staging»

  • auth_service_url: https://auth.staging.company.com
  • user_service_url: https://users.staging.company.com
  • order_service_url: https://orders.staging.company.com
  • payment_service_url: https://payments.staging.company.com
  • jwt_secret: staging_secret_key_2023
  • database_host: staging-db.company.com
  • redis_host: staging-redis.company.com

Пример 3: Окружение для тестирования GraphQL API

Особенности настройки для GraphQL:

Название окружения: «GraphQL Testing»

  • graphql_endpoint: https://api.example.com/graphql
  • subscription_endpoint: wss://api.example.com/subscriptions
  • schema_url: https://api.example.com/schema
  • playground_url: https://api.example.com/playground
  • api_key: gql_api_key_dev_2023

Переключение и управление окружениями

Переключение между средами

Для переключения между окружениями используется выпадающий список в правом верхнем углу интерфейса Postman:

  1. Откройте селектор: кликните на текущее название окружения (или «No Environment»)
  2. Выберите нужное: из списка выберите требуемое окружение
  3. Подтвердите переключение: окружение активируется автоматически

После переключения все переменные в запросах будут использовать значения из нового окружения. Это особенно удобно при переходе от разработки к тестированию или продакшену.

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

Синтаксис использования переменных в различных частях запроса:

  • В URL: {{base_url}}/users/{{user_id}}
  • В заголовках: Authorization: {{auth_token}}
  • В теле запроса: {"currency": "{{currency}}", "amount": 100}
  • В параметрах запроса: ?category={{product_category}}&limit={{page_limit}}

В скриптах Pre-request и Tests переменные используются через объект pm.environment:

  • Получение значения: const baseUrl = pm.environment.get("base_url");
  • Установка значения: pm.environment.set("user_id", responseUserId);
  • Удаление переменной: pm.environment.unset("temp_token");

Редактирование окружения

Для изменения существующего окружения:

  1. Перейдите в Environments: откройте панель управления окружениями
  2. Выберите окружение: кликните на название нужного окружения
  3. Внесите изменения: добавьте, измените или удалите переменные
  4. Сохраните изменения: обязательно нажмите «Save» или используйте Ctrl+S

Альтернативный способ — редактирование через «Environment Quick Look» (значок глаза рядом с селектором окружений), который позволяет быстро просматривать и изменять текущие значения переменных.

Мужчина работает за ноутбуком

Установка переменных окружения с помощью скриптов

Динамическая установка переменных

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

Пример авторизации с сохранением токена:

// В секции Tests после запроса авторизации
pm.test("Login successful", function () {
const responseJson = pm.response.json();
pm.expect(responseJson.status).to.eql("success");

// Сохраняем токен в переменную окружения
pm.environment.set("access_token", responseJson.data.access_token);
pm.environment.set("refresh_token", responseJson.data.refresh_token);
pm.environment.set("token_expires_at", responseJson.data.expires_at);

console.log("Token saved:", responseJson.data.access_token);
});

Условная установка переменных

Иногда необходимо устанавливать переменные в зависимости от условий:

// Установка переменных в зависимости от окружения
const currentEnv = pm.environment.name;

if (currentEnv === "Production") {
pm.environment.set("api_timeout", "60000");
pm.environment.set("retry_attempts", "3");
} else if (currentEnv === "Development") {
pm.environment.set("api_timeout", "30000");
pm.environment.set("retry_attempts", "1");
pm.environment.set("debug_mode", "true");
}

Работа с массивами и объектами

Для сложных структур данных можно использовать JSON:

// Сохранение объекта пользователя
const user = {
id: responseJson.user.id,
email: responseJson.user.email,
role: responseJson.user.role,
permissions: responseJson.user.permissions
};

pm.environment.set("current_user", JSON.stringify(user));

// Использование сохраненного объекта
const savedUser = JSON.parse(pm.environment.get("current_user"));
console.log("User role:", savedUser.role);

Работа со средами в команде

Совместное использование окружений

Согласно отчету Postman API Platform Report 2023, 89% команд разработчиков используют совместные рабочие пространства для координации работы с API. Правильная организация окружений в команде критически важна для эффективности.

Перемещение среды в общее рабочее пространство

Для совместной работы окружения необходимо перенести в командное рабочее пространство:

  1. Откройте окружение: в панели Environments выберите нужное окружение
  2. Найдите кнопку Share: в правом верхнем углу окружения нажмите «Share»
  3. Выберите workspace: укажите целевое рабочее пространство
  4. Настройте права доступа: определите, кто может просматривать и редактировать
  5. Подтвердите перенос: нажмите «Move to workspace»

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

В Postman доступны следующие роли для работы с окружениями:

  • Viewer: может просматривать окружение и его переменные
  • Editor: может изменять переменные и их значения
  • Admin: полный контроль, включая управление доступом

Важно отметить, что пользователи с ролью Viewer не видят Initial Values для переменных, помеченных как секретные.

Создание форка среды

Форки окружений позволяют каждому разработчику иметь собственную копию для экспериментов:

  1. Выберите окружение: откройте нужное командное окружение
  2. Создайте форк: нажмите кнопку «Fork» в правом верхнем углу
  3. Назовите форк: добавьте суффикс, например «Production — Ivan Fork»
  4. Выберите workspace: укажите личное или командное пространство
  5. Создайте: подтвердите создание форка

Форки можно позже объединить с основным окружением через Pull Request, что обеспечивает контроль качества изменений.

Продвинутые техники работы с окружениями

Автоматическое переключение окружений

Для автоматизации процессов можно создавать скрипты, которые переключают окружения в зависимости от условий:

// Переключение окружения в зависимости от времени
const currentHour = new Date().getHours();
const environments = ["Development", "Staging", "Production"];

if (currentHour >= 9 && currentHour <= 17) {
// Рабочие часы - используем Staging
pm.environment.name = "Staging";
} else {
// Нерабочее время - используем Development
pm.environment.name = "Development";
}

Валидация переменных окружения

Создание проверок для обеспечения корректности конфигурации:

// Проверка обязательных переменных
const requiredVars = ["base_url", "auth_token", "user_id"];
const missingVars = [];

requiredVars.forEach(varName => {
const value = pm.environment.get(varName);
if (!value || value.trim() === "") {
missingVars.push(varName);
}
});

if (missingVars.length > 0) {
throw new Error(`Missing required environment variables: ${missingVars.join(", ")}`);
}

Генерация случайных данных

Использование встроенных функций Postman для создания тестовых данных:

// Генерация случайных данных для тестирования
pm.environment.set("random_email", pm.variables.replaceIn("{{$randomEmail}}"));
pm.environment.set("random_phone", pm.variables.replaceIn("{{$randomPhoneNumber}}"));
pm.environment.set("random_uuid", pm.variables.replaceIn("{{$guid}}"));
pm.environment.set("current_timestamp", new Date().toISOString());

// Создание уникального ID для тестовых данных
const testId = `test_${Date.now()}_${Math.floor(Math.random() * 1000)}`;
pm.environment.set("test_identifier", testId);

Безопасность и лучшие практики

Управление чувствительными данными

Безопасность при работе с окружениями — критически важный аспект. По данным исследования Verizon Data Breach Investigations Report 2023, 74% утечек данных связаны с человеческим фактором, включая неправильное управление секретами в инструментах разработки.

Рекомендации по безопасности:

  • Никогда не сохраняйте секреты в Initial Values: используйте только Current Values для паролей и токенов
  • Используйте отдельные окружения для продакшена: продакшн-секреты должны быть изолированы
  • Регулярно ротируйте токены: обновляйте API ключи и токены доступа
  • Ограничивайте доступ: предоставляйте минимально необходимые права
  • Используйте переменные типа «secret»: в Postman есть специальный тип для чувствительных данных

Версионирование окружений

Для критически важных проектов рекомендуется вести версионность окружений:

  • Именование с версиями: «Production API v2.1», «Staging 2023-Q4»
  • Документирование изменений: ведите changelog для каждого окружения
  • Резервные копии: регулярно экспортируйте конфигурации
  • Теги и метки: используйте описания для пометки стабильных версий

Мониторинг и логирование

Настройка отслеживания использования окружений:

// Логирование использования переменных
console.log(`Environment: ${pm.environment.name}`);
console.log(`Request URL: ${pm.request.url.toString()}`);
console.log(`Timestamp: ${new Date().toISOString()}`);

// Отправка метрик использования (если есть система мониторинга)
const usageData = {
environment: pm.environment.name,
collection: pm.info.name,
request: pm.info.requestName,
timestamp: Date.now()
};

pm.environment.set("last_usage_log", JSON.stringify(usageData));

Интеграция с внешними системами

Подключение к системам управления конфигурацией

Современные команды разработки часто интегрируют Postman с внешними системами для управления конфигурациями. Это позволяет централизованно управлять переменными окружений.

Популярные интеграции:

  • HashiCorp Vault: для управления секретами
  • AWS Systems Manager: Parameter Store для конфигураций
  • Azure Key Vault: безопасное хранение ключей
  • Kubernetes ConfigMaps: для контейнеризированных приложений

Автоматизация через Newman CLI

Newman — это CLI-версия Postman, которая позволяет запускать коллекции с различными окружениями в CI/CD пайплайнах:

# Запуск коллекции с определенным окружением
newman run collection.json -e development.postman_environment.json

# Запуск с переопределением переменных
newman run collection.json -e prod.postman_environment.json \
--env-var "base_url=https://api.production.com" \
--env-var "timeout=60000"

# Множественные окружения для сравнительного тестирования
newman run collection.json -e staging.json --reporter-html-export staging-report.html
newman run collection.json -e production.json --reporter-html-export prod-report.html

Часто задаваемые вопросы

Как восстановить случайно удаленное окружение?

К сожалению, Postman не предоставляет встроенную функцию восстановления удаленных окружений. Однако есть несколько способов минимизировать потери:

  • Регулярные экспорты: еженедельно экспортируйте критически важные окружения
  • Синхронизация с командой: если окружение было в общем workspace, коллеги могут иметь локальные копии
  • Git-интеграция: храните экспортированные файлы окружений в системе контроля версий
  • Документирование: ведите документацию с основными переменными

Почему переменная не разрешается в запросе?

Существует несколько распространенных причин, по которым переменные могут не работать:

  • Неактивное окружение: убедитесь, что нужное окружение выбрано в селекторе
  • Неправильный синтаксис: используйте двойные фигурные скобки {{variable_name}}
  • Пустое значение: проверьте, что переменная имеет значение в Current Value
  • Конфликт имен: переменная может быть перезаписана переменной с более высоким приоритетом
  • Специальные символы: избегайте пробелов и специальных символов в именах переменных

Можно ли использовать переменные внутри других переменных?

Да, Postman поддерживает вложенные переменные, но с ограничениями:

  • Простое вложение: {{base_url}}/{{api_version}}/users работает корректно
  • Динамическое формирование имен: конструкции типа {{{{env_prefix}}_url}} не поддерживаются
  • Скриптовое решение: для сложной логики используйте Pre-request Scripts
// Пример динамического формирования переменной в скрипте
const envPrefix = pm.environment.get("environment_prefix"); // "dev" или "prod"
const dynamicUrl = pm.environment.get(`${envPrefix}_api_url`);
pm.environment.set("current_api_url", dynamicUrl);

Практический чек-лист для создания окружений

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

Чек-лист подготовки к созданию окружения:

  • Аудит существующих запросов: определите, какие URL и параметры повторяются
  • Планирование структуры: создайте схему переменных для каждой среды
  • Безопасность: выделите чувствительные данные, которые потребуют особого обращения
  • Командные соглашения: согласуйте правила именования переменных
  • Документирование: подготовьте описание назначения каждой переменной

Этапы создания и настройки:

  1. Создание базовой структуры: основные переменные для URL, авторизации и версионирования
  2. Тестирование переменных: проверка корректности разрешения во всех типах запросов
  3. Настройка безопасности: правильное разделение между Initial и Current Values
  4. Командная интеграция: перенос в общее рабочее пространство и настройка доступов
  5. Документирование и обучение: создание гайдов для команды

Контрольные вопросы для валидации:

  • Все ли критические переменные покрыты для каждой среды?
  • Корректно ли настроены права доступа для различных ролей?
  • Есть ли процедуры для регулярного обновления и ротации секретов?
  • Подготовлены ли резервные копии конфигураций?
  • Понятна ли документация новым участникам команды?

Оцените статью

4.8 5 (23 оценки)
Хочу стать тестировщиком!
Специально для вас мы собрали отдельную подборку лучших онлайн-курсов по QA-тестированию на рынке и сравнили их по цене, продолжительности и отзывам студентов.
Курсы по QA-тестированию