Postman и прокси
Postman — самый популярный инструмент для тестирования API. Настройка прокси в Postman нужна для: работы в корпоративных сетях с обязательным прокси, тестирования API из разных гео, отладки трафика через intercepting proxy (Fiddler, mitmproxy) и обхода rate limiting.
Настройка прокси
Через Settings
- Откройте Postman
- Нажмите шестерёнку (Settings) или Ctrl+,
- Перейдите во вкладку «Proxy»
Системный прокси
По умолчанию Postman использует системный прокси:
1. Включите «Use the system proxy» (по умолчанию включено)
2. Postman автоматически использует настройки прокси Windows/macOS
3. Не требует дополнительной настройки
Кастомный прокси
- Отключите «Use the system proxy»
- Включите «Add a custom proxy configuration»
- Введите:
- HTTP Proxy: адрес и порт
- HTTPS Proxy: адрес и порт (может быть тот же) - Bypass: домены, которые обходят прокси
Аутентификация
Если прокси требует логин/пароль:
1. В настройках Proxy включите «This proxy requires authentication»
2. Введите Username и Password
3. Postman будет автоматически отправлять Proxy-Authorization заголовок
Использование переменных окружения
Для гибкой работы с прокси используйте переменные Postman:
- Создайте Environment (например, «Production via Proxy»)
- Добавьте переменные: proxy_url, proxy_user, proxy_pass
- В Pre-request Script используйте переменные
Работа с SSL через прокси
Отключение проверки SSL
При работе через intercepting proxy (mitmproxy, Fiddler):
1. Settings → General
2. Отключите «SSL certificate verification»
3. Это позволяет Postman принимать самоподписанные сертификаты прокси
Добавление CA-сертификата
Для корпоративных прокси:
1. Settings → Certificates
2. Нажмите «Add CA Certificate»
3. Загрузите PEM-файл корпоративного сертификата
4. Postman будет доверять этому CA
Client Certificate
Некоторые прокси требуют клиентский сертификат:
1. Settings → Certificates
2. Нажмите «Add Certificate»
3. Укажите Host, CRT file, KEY file
4. Postman отправит сертификат при подключении
Postman как прокси (Interceptor)
Postman может сам работать как прокси для перехвата запросов из браузера:
Postman Interceptor
- Установите расширение «Postman Interceptor» в Chrome
- Включите Interceptor в Postman
- Запросы из Chrome будут перехватываться в Postman
- Удобно для записи API-вызовов сайта
Postman Proxy
- Settings → Proxy → Enable Postman as a proxy
- Укажите порт (по умолчанию 5555)
- Настройте устройство использовать localhost:5555 как прокси
- Все запросы будут записываться в Postman History
Прокси в Postman CLI (Newman)
Newman — CLI для Postman, для запуска коллекций из командной строки:
# Через переменную окружения
export HTTP_PROXY=http://proxy_ip:8080
export HTTPS_PROXY=http://proxy_ip:8080
newman run collection.json
# Через флаг
newman run collection.json --env-var "proxy_url=http://proxy_ip:8080"
Pre-request Script для прокси-логики
// Динамический выбор прокси на основе окружения
const env = pm.environment.get("target_env");
if (env === "production") {
pm.request.proxy = {
match: "https://*.api.com/*",
host: "proxy_ip",
port: 8080
};
}
Debugging
Postman Console
- Откройте Postman Console (View → Show Postman Console или Ctrl+Alt+C)
- Здесь видны все HTTP-запросы, включая прокси-подключения
- Полезно для отладки проблем с прокси
Network Log
В Console видны:
- Подключение к прокси
- CONNECT запрос (для HTTPS)
- Ответ прокси
- Финальный ответ сервера
Типичные проблемы
«Could not get any response»
- Проверьте адрес и порт прокси
- Убедитесь, что прокси работает
- Проверьте, не блокирует ли файрвол подключение к прокси
SSL Error через прокси
- Отключите SSL verification в Settings
- Или добавьте CA-сертификат прокси
- Для intercepting proxy (Fiddler) установите его CA-сертификат
407 Proxy Authentication Required
- Включите аутентификацию в настройках прокси
- Проверьте логин и пароль
- Убедитесь, что прокси поддерживает Basic auth
Заключение
Postman предлагает гибкие настройки прокси для различных сценариев: от корпоративных прокси до отладки через intercepting proxy. Поддержка SSL-сертификатов, переменных окружения и CLI (Newman) делает работу с прокси удобной как в GUI, так и в автоматизированных pipeline.