Postman: платформа для разработки и тестирования API

Короткие ссылки
Что такое Postman?
Использование Postman
Что такое Postman?
Postman называет себя «платформой для разработки API». По сути, это современный REST-клиент с графическим интерфейсом, который делает работу с удалёнными API быстрой и наглядной. Он подходит и для одиночных ручных запросов, и для организации коллекций запросов с автоматическими тестами.

Postman позволяет группировать запросы в коллекции, наполнять их преднастроенными данными и сценариями тестирования. Такие коллекции можно запускать вручную или встраивать в CI/CD-пайплайны (через Newman) для регрессии и непрерывного контроля качества API.
Основные сценарии использования
- Ручное тестирование отдельных эндпоинтов.
- Прототипирование API-запросов (headers, body, auth).
- Автоматизированные тесты коллекций с проверками ответов.
- Визуализация результатов и простая агрегация данных.
- Интеграция тестов в CI (Newman) и шаринг коллекций с командой.
Интерфейс и базовые элементы
В рабочем пространстве у каждого запроса своя вкладка. В верхней части вы задаёте URL и метод, ниже — настройки (Headers, Authorization, Body), справа — тело ответа и результаты.

Вы можете переключать режимы отображения (вкладки/колонки) для удобства.

Метод запроса
Метод выбирается в выпадающем списке: GET, POST, PUT, DELETE, PATCH и др. — все HTTP-диаграммы поддерживаются.
Аутентификация
Во вкладке “Authentication” настраиваются ключи и схемы: OAuth 1/2, Bearer Token, Basic Auth и кастомные токены.

Заголовки
Во вкладке “Headers” добавляются заголовки, например Content-Type. Многие заголовки добавляются автоматически; скрытые заголовки можно просмотреть через кнопку “Hidden”.

Тело запроса
Тело может быть form-data, x-www-form-urlencoded, binary, GraphQL или raw (JSON, текст). Редактор поддерживает подсветку и валидацию JSON.

Тестирование в Postman
Postman позволяет писать проверки на JavaScript, которые выполняются после получения ответа. Это даёт возможность автоматизировать утверждения (assertions) о теле ответа, заголовках и статусе.

Пример простого теста в Postman:
pm.test("Статус ответа 200", function () {
pm.response.to.have.status(200);
});
pm.test("Тело содержит поле userId", function () {
const json = pm.response.json();
pm.expect(json).to.have.property('userId');
});После подготовки запроса нажмите кнопку “Send” — в правой панели появится ответ в разных представлениях: Pretty, Raw, Preview. В статусной строке отображаются код ответа, размер полезной нагрузки и время отклика.

Вы также можете переключиться на вкладку “Headers”, чтобы увидеть возвращённые сервером заголовки.
С помощью JavaScript-тестов можно строить простые визуализации — диаграммы и графики для быстрой интерпретации больших объёмов данных.

Коллекции и Collection Runner
Сохранённые запросы организуются в коллекции. Collection Runner позволяет запускать все запросы и тесты внутри коллекции последовательно или параллельно (в зависимости от настройки), что удобно для модульного тестирования API.
Экспорт и совместное использование
Коллекции можно экспортировать в JSON и импортировать на другой машине или поделиться через Postman Cloud.
Автоматизация через Newman
Newman — это CLI-инструмент для запуска коллекций в средах CI. Пример запуска коллекции локально:
newman run my-collection.json -e dev-environment.json --reporters cli,junitВ CI вы можете добавить команду запуска Newman в пайплайн (GitHub Actions, GitLab CI, Jenkins). Результаты удобно собирать как артефакты (JUnit) и отображать в системе отчётности.
Мини-методология: как писать надёжные тесты в Postman
- Описание: Определите контракт API — ожидаемые поля и форматы.
- Arrange: Подготовьте окружение и данные (environment, pre-request scripts).
- Act: Выполните запрос.
- Assert: Проверьте статус, схему и значения полей.
- Tear down: Очистите временные ресурсы (post-request scripts).
Используйте environment variables для разных сред (dev/stage/prod).
Role-based чеклисты
Разработчик
- Написать пример запроса и response mock.
- Добавить тесты на успешный и ошибочный сценарий.
- Документировать параметры и заголовки.
QA
- Проверить сценарии граничных значений и негативные сценарии.
- Запустить коллекцию и убедиться в стабильности тестов.
- Экспортировать отчёты и приложить к баг-репорту.
DevOps
- Настроить запуск Newman в CI с артефактами.
- Обеспечить безопасное хранение секретов (не хранить токены в коллекции).
- Мониторить время выполнения и стабильность тестов.
Product/PO
- Проверить, что тесты покрывают ключевые пользовательские сценарии.
- Утвердить критерии приёмки для API-эндпоинтов.
Критерии приёмки
- Запрос возвращает ожидаемый HTTP-код (например, 200 для успешного GET).
- Тело ответа соответствует контракту (обязательные поля присутствуют и имеют ожидаемые типы).
- Заголовки соответствуют требованиям (Content-Type, CORS и пр.).
- Тесты в коллекции проходят без ошибок в среде staging.
Примеры тест-кейсов/Acceptance
- Позитивный: GET /users/123 — ожидается 200 и поле id=123.
- Негативный: GET /users/invalid — ожидается 400/404 и сообщение об ошибке.
- Авторизация: запрос без токена — ожидается 401.
Безопасность и приватность
- Никогда не сохраняйте секреты и пароли в публичных коллекциях.
- Используйте переменные окружения и защищённое хранилище секретов в CI.
- Для тестовых данных используйте анонимизированные или фейковые записи.
Альтернативы и когда Postman не лучший выбор
Когда Postman подходит плохо:
- Нужна высокая степень параллелизма и нагрузочное тестирование (лучше JMeter, k6).
- Требуется тонкая интеграция с кодовой базой и покрытие тестов в коде (в этом случае unit/integration тесты на языке приложения).
Альтернативы: Insomnia (удобный и простой UI), curl (скриптовые, без GUI), k6 (нагрузочное тестирование), SoapUI (SOAP и сложные сценарии).
Советы и хорошие практики
- Версионируйте коллекции и окружения.
- Пишите читабельные названия тестов.
- Используйте Pre-request scripts для подготовки данных.
- Логируйте ответы при неудаче для диагностики.
Snippet: Pre-request и сохранение переменной
// Pre-request script: сохраняем токен из запроса авторизации
pm.sendRequest({
url: pm.environment.get('authUrl'),
method: 'POST',
header: 'Content-Type:application/json',
body: { mode: 'raw', raw: JSON.stringify({ username: 'test', password: 'pwd' }) }
}, function (err, res) {
if (!err && res.code === 200) {
const token = res.json().access_token;
pm.environment.set('accessToken', token);
}
});Примеры интеграции в CI (GitHub Actions)
Пример шага в GitHub Actions для запуска Newman:
- name: Run Postman tests
run: |
npm install -g newman
newman run my-collection.json -e dev-environment.json --reporters cli,junit --reporter-junit-export results.xmlКороткая диаграмма принятия решения
flowchart TD
A[Нужно быстро проверить API?] -->|Да| B[Использовать Postman GUI]
A -->|Нет| C[Нужно нагрузочное тестирование]
C --> D[k6 / JMeter]
B --> E[Автоматизировать → Newman в CI]Сводка
Postman — универсальный инструмент для мануального и автоматизированного тестирования API, удобный для быстрой отладки запросов, написания JavaScript-тестов и интеграции с CI через Newman. Он не заменит специализированные средства нагрузочного тестирования, но отлично дополняет процесс разработки, QA и деплоя.
Важное: храните секреты безопасно, используйте environment variables и пишите стабильные тесты с явными критериями приёмки.
Похожие материалы
Как исправить ошибку записи диска в Steam
Изменить папку скриншотов в One UI 5.1
Звук запуска Windows 7 — включение, отключение, замена
Искать по комментариям в Excel
Отключить обновление драйвера в Windows 10