1. Основы работы и конфигурация переменных окружения в Postman
Основы работы и конфигурация переменных окружения в Postman
Представьте, что вам нужно протестировать перевод между счетами в банковском приложении на трех разных стендах: тестовом (Dev), предрелизном (Staging) и промышленном (Production). В каждом случае адрес сервера, номер карты отправителя и ключи доступа будут отличаться. Если вы пропишете эти данные вручную в теле каждого запроса, то при смене среды тестирования вам придется вручную изменять десятки, а то и сотни параметров. В банковских системах уровня ВТБ Онлайн, где количество микросервисов исчисляется сотнями, такой подход неизбежно приведет к критическим ошибкам и потере актуальности тестовой модели.
Эффективная работа с API начинается не с отправки первого запроса, а с архитектурного планирования среды, в которой этот запрос будет существовать. Postman предлагает для этого механизм переменных и окружений (Environments), который позволяет отделить логику запроса от его конкретных данных.
Анатомия банковского запроса и роль абстракции
Любой запрос к банковскому API, будь то получение баланса или создание платежного поручения, состоит из констант и переменных. Константа — это метод (например, POST) и путь ресурса (/api/v1/payments). Переменная — это базовый URL сервера, версия API, токен авторизации и идентификаторы клиента.
В контексте ВТБ Онлайн мы сталкиваемся с повышенными требованиями к безопасности и строгой типизацией данных. Банковское API часто требует передачи специфических заголовков, таких как X-MDT-Signature или X-Device-ID. Если идентификатор устройства изменится, а он зашит в 50 запросов коллекции, тестирование остановится.
Использование переменных позволяет внедрить принцип DRY (Don't Repeat Yourself — не повторяйся). Вместо того чтобы писать https://api.vtb.ru/mobile/v2/auth, мы пишем {{baseUrl}}/{{apiVersion}}/auth. Это создает гибкую систему, где один и тот же набор запросов может мгновенно переключаться между разными конфигурациями данных.
Иерархия областей видимости в Postman
Для грамотного проектирования коллекции важно понимать, где именно хранить данные. В Postman существует пять уровней областей видимости (scopes). Чем уже область видимости, тем выше её приоритет. Если переменная с одним и тем же именем объявлена на разных уровнях, Postman выберет ту, что находится «ближе» к запросу.
В банковской практике чаще всего используется связка Environment + Collection. В окружение выносятся параметры инфраструктуры (хосты, порты), а в коллекцию — логические параметры сценариев.
Настройка окружения для ВТБ Онлайн
Рассмотрим практический процесс создания окружения. В интерфейсе Postman это делается через вкладку «Environments» в левой панели. При создании нового окружения (назовем его VTB_Stage_1) мы заполняем таблицу с тремя колонками: Variable, Initial Value и Current Value.
Различие между Initial Value и Current Value критически важно для безопасности: * Initial Value (Исходное значение): Синхронизируется с облаком Postman. Его увидят ваши коллеги по команде. Сюда нельзя вносить реальные пароли, пин-коды или секретные ключи банковских карт. * Current Value (Текущее значение): Хранится только локально на вашем компьютере. Именно это значение используется при отправке запроса. Здесь мы храним временные сессионные токены и персональные данные.
Базовый набор переменных для старта
Для работы с API ВТБ Онлайн на начальном этапе нам понадобятся следующие переменные:
| Переменная | Пример значения | Описание |
| :--- | :--- | :--- |
| baseUrl | https://gate-stage.vtb.ru | Адрес шлюза API |
| apiVersion | v1 | Текущая версия протокола |
| clientId | VTB-MOB-ANDROID-4.2 | Идентификатор типа клиента |
| deviceId | 550e8400-e29b-41d4-a716 | Уникальный ID устройства (UUID) |
После того как переменные созданы, их можно вызвать в любом поле запроса (URL, Headers, Body) с помощью двойных фигурных скобок: {{variable_name}}.
Динамические переменные и генерация данных
Банковские системы часто блокируют повторные запросы с идентичными параметрами (защита от дублирования транзакций или replay-атак). Для тестирования нам нужно каждый раз генерировать уникальные значения, например, номер транзакции или идентификатор устройства.
Postman имеет встроенную библиотеку динамических переменных, которые начинаются со знака guid}} — генерирует уникальный идентификатор (UUID v4). Идеально подходит для заголовка X-Request-ID.
* {{randomInt}} — случайное целое число.
Пример использования в теле запроса (JSON):
Здесь deviceId берется из настроенного окружения, а requestId и clientTimestamp генерируются «на лету» для каждого клика по кнопке Send.
Работа с секретами и безопасность данных
В банковской сфере безопасность — это не опция, а фундамент. При работе с Postman существует риск случайной утечки чувствительных данных. Например, если вы добавите в Initial Value реальный токен доступа к счету и нажмете «Save», этот токен улетит на серверы Postman.
Правила «гигиены» при работе с банковскими API:
secret вместо default. Это скроет значение под звездочками на экране, предотвращая случайную демонстрацию пароля во время созвона или записи экрана.Current Value.Current Value.Отладка и мониторинг переменных
Когда цепочка запросов становится длинной, легко запутаться в том, какое именно значение сейчас подставляется в запрос. Для контроля используйте два основных инструмента:
Инструмент 1: Quick Look (Глаз)
В правом верхнем углу окна Postman есть иконка глаза. Нажав на неё, вы увидите список всех активных переменных окружения и глобальных переменных с их текущими значениями. Если переменная подсвечена красным цветом в URL запроса — значит, она не определена в текущем выбранном окружении.Инструмент 2: Postman Console
Это «черный ящик» вашего тестирования. НажмитеCtrl + Alt + C (или Cmd + Option + C на Mac), чтобы открыть консоль. Здесь отображается реальный сформированный запрос. Если вы отправили {{baseUrl}}/login, в консоли вы увидите https://api.vtb.ru/login. Консоль — это первый пункт назначения, если сервер вернул ошибку 404 (неверный URL) или 401 (ошибка авторизации из-за неверного токена).Практический пример: Подготовка к первому запросу
Для закрепления материала настроим окружение для гипотетического API ВТБ Онлайн.
VTB_Sandbox.host со значением https://api-sandbox.vtb.ru.{{host}}/info/status.X-App-ID. В качестве значения укажите {{$guid}}. Это позволит банку отслеживать каждый ваш запрос как уникальный.Если все настроено верно, Postman заменит {{host}} на реальный адрес, сгенерирует уникальный ID приложения и отправит запрос. В консоли вы увидите чистый HTTP-трафик без фигурных скобок.
Понимание механизмов окружения превращает Postman из продвинутого «браузера для запросов» в мощный инструмент автоматизации. Мы создали фундамент, который позволит нам в дальнейшем не просто отправлять разовые команды, а выстраивать сложные логические цепочки, где данные плавно перетекают из одного запроса в другой, имитируя реальное поведение пользователя в банковском приложении.