Ответ
Postman — это основной инструмент для ручного тестирования, отладки и автоматизации проверок API.
Основные сценарии использования:
- Ручное тестирование и отладка: Быстрая отправка запросов (GET, POST, PUT, DELETE, PATCH), проверка статус-кодов, тела ответа (JSON, XML), заголовков и cookies.
- Организация работы: Создание коллекций для группировки запросов по функциональности (например,
User API,Order API). Использование папок внутри коллекций. - Управление окружениями: Создание переменных окружений (
dev,staging,prod) для хранения базовых URL, токенов, учетных данных. Быстрое переключение между средами. - Автоматизация проверок (Postman Tests): Написание скриптов на JavaScript для автоматической валидации ответов.
- Запуск коллекций (Collection Runner): Последовательный или параллельный запуск набора запросов, создание сценариев (pre-request scripts, tests).
- Интеграция в CI/CD: Запуск коллекций из командной строки с помощью Newman для автоматического прогона в пайплайнах.
Пример коллекции с переменными окружения и тестами:
Окружение Staging:
{
"id": "staging-env",
"name": "Staging",
"values": [
{
"key": "baseUrl",
"value": "https://api.staging.example.com",
"type": "default"
},
{
"key": "authToken",
"value": "{{your_token_here}}",
"type": "secret"
}
]
}
Запрос GET /users/{{userId}} с тестами:
// Pre-request Script: Установка переменной (пример)
pm.variables.set("userId", 42);
// Тесты (Tests tab)
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Response has JSON body", function () {
pm.response.to.be.json;
});
pm.test("User ID matches request", function () {
const jsonData = pm.response.json();
pm.expect(jsonData.id).to.eql(pm.variables.get("userId"));
});
pm.test("Response time is acceptable", function () {
pm.expect(pm.response.responseTime).to.be.below(500); // Меньше 500 мс
});
Дополнительные возможности:
- Мониторинг API: Настройка периодического запуска коллекций для проверки доступности.
- Документирование: Генерация документации из коллекций.
- Моки серверов (Mock Servers): Создание заглушек для API на этапе разработки.
- Работа в команде: Синхронизация коллекций через Workspaces, контроль версий.