Что такое Collection Runner в Postman?

«Что такое Collection Runner в Postman?» — вопрос из категории API тестирование, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Collection Runner в Postman — это мощный инструмент для автоматического выполнения коллекций запросов, который я активно использую для комплексного API-тестирования, нагрузочного тестирования начального уровня и интеграции в CI/CD. Он позволяет запускать предварительно подготовленные сценарии (коллекции) в контролируемом режиме, с параметризацией данных и сбором детальных результатов.

Типичные сценарии использования в моей работе:

  1. Запуск набора интеграционных тестов: Последовательное выполнение запросов, зависящих друг от друга (например, создание сущности -> её обновление -> проверка -> удаление).
  2. Параметризованное тестирование: Запуск одного и того же запроса с разными наборами входных данных из CSV или JSON-файла для проверки граничных значений и различных сценариев.
  3. Регрессионное прогонка API: Быстрая проверка работоспособности ключевых эндпоинтов после деплоя.

Как выглядит процесс запуска Collection Runner:

  1. Создаётся коллекция с запросами, где в тестовых скриптах (Tests tab) прописаны assertions на JavaScript.
  2. В Runner'е выбирается коллекция, необходимое окружение (Environment), количество итераций и задержка между запросами.
  3. При необходимости загружается файл с данными (Data File).
  4. Запускается прогон. 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, который позволяет запускать эти же коллекции из командной строки.