Ответ
Collection Runner в Postman — это мощный инструмент для автоматического выполнения коллекций запросов, который я активно использую для комплексного API-тестирования, нагрузочного тестирования начального уровня и интеграции в CI/CD. Он позволяет запускать предварительно подготовленные сценарии (коллекции) в контролируемом режиме, с параметризацией данных и сбором детальных результатов.
Типичные сценарии использования в моей работе:
- Запуск набора интеграционных тестов: Последовательное выполнение запросов, зависящих друг от друга (например, создание сущности -> её обновление -> проверка -> удаление).
- Параметризованное тестирование: Запуск одного и того же запроса с разными наборами входных данных из CSV или JSON-файла для проверки граничных значений и различных сценариев.
- Регрессионное прогонка API: Быстрая проверка работоспособности ключевых эндпоинтов после деплоя.
Как выглядит процесс запуска Collection Runner:
- Создаётся коллекция с запросами, где в тестовых скриптах (Tests tab) прописаны assertions на JavaScript.
- В Runner'е выбирается коллекция, необходимое окружение (Environment), количество итераций и задержка между запросами.
- При необходимости загружается файл с данными (Data File).
- Запускается прогон. Postman выполняет запросы, применяет тестовые скрипты и генерирует детальный отчёт.
Пример простого тестового скрипта в Postman, который проверяет статус и структуру ответа:
// Проверка HTTP статуса
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
// Проверка времени ответа (performance check)
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
// Верификация JSON схемы ответа
pm.test("Response body matches schema", function () {
const schema = {
"type": "object",
"properties": {
"id": {"type": "number"},
"name": {"type": "string"},
"active": {"type": "boolean"}
},
"required": ["id", "name"]
};
pm.response.to.have.jsonSchema(schema);
});
После прогона Collection Runner предоставляет сводку: сколько тестов прошло, сколько упало, общее время выполнения и логи по каждому запросу. Для более сложной автоматизации в CI/CD (например, Jenkins, GitLab CI) я использую Postman CLI — Newman, который позволяет запускать эти же коллекции из командной строки.