← Назад к вопросам

Что такое Newman?

1.0 Junior🔥 111 комментариев
#Теория тестирования

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое Newman?

Newman — это консольный утилита (CLI-инструмент), разработанная компанией Postman для запуска коллекций тестов Postman из командной строки. По сути, это «бегун» (runner) для коллекций Postman, который позволяет интегрировать API-тестирование, написанное в удобном графическом интерфейсе Postman, в процессы непрерывной интеграции и непрерывной доставки (CI/CD).

Ключевые возможности и назначение Newman

  • Автоматизация выполнения тестов: Newman позволяет запускать коллекции Postman в автоматическом режиме без необходимости открывать Postman GUI. Это критически важно для интеграции в CI/CD-пайплайны (Jenkins, GitLab CI, GitHub Actions, TeamCity и др.).
  • Поддержка всего функционала Postman: Newman корректно исполняет:
    *   Запросы (HTTP-методы, заголовки, тело запроса).
    *   Пред-запросные скрипты (Pre-request Scripts).
    *   Тестовые скрипты (Tests Scripts), включая assertions на `pm.response`, `pm.expect`.
    *   Переменные на всех уровнях (глобальные, коллекции, окружения, данные, локальные).
    *   Работу с окружениями (Environments).
  • Генерация отчетов: Одно из главных преимуществ — возможность генерации отчетов о выполнении тестов в различных форматах:
    *   Консольный вывод (по умолчанию).
    *   HTML-отчет (через сторонние репортеры, например `newman-reporter-html`).
    *   JUnit/XML-отчет (для интеграции с системами, читающими этот формат, например, Jenkins).
    *   JSON-отчет (для последующей программной обработки).
  • Гибкость и управление: Запуск можно тонко настраивать через параметры командной строки, указывая необходимое количество итераций, задержки, данные из файлов и т.д.

Как работает Newman?

Newman читает экспортированную из Postman коллекцию (в формате JSON v2.1) и, при необходимости, переменные окружения (также в JSON). Он эмулирует работу Postman Runner, выполняя запросы последовательно или согласно заданной логике.

Базовый пример запуска:

# Установка Newman (требуется Node.js)
npm install -g newman

# Простейший запуск коллекции
newman run MyCollection.postman_collection.json

# Запуск с окружением и HTML-отчетом
newman run MyCollection.json -e Environment.json -r html,cli

Пример более сложной команды с интеграцией в CI:

newman run api-tests.json \
  --environment staging-env.json \
  --iteration-data test-data.csv \
  --reporters cli,junit,html \
  --reporter-junit-export results/junit-report.xml \
  --reporter-html-export results/html-report.html \
  --delay-request 500 \
  --timeout-request 5000

Преимущества использования Newman в QA Automation

  • Разделение создания и выполнения тестов: Разработчики и QA-инженеры могут создавать и отлаживать сложные сценарии API-тестов в удобном GUI Postman, а автоматизаторы — интегрировать готовые коллекции в CI/CD через Newman.
  • Скорость и стабильность: Запуск из командной строки обычно быстрее и стабильнее, чем через графический интерфейс, что важно для больших наборов тестов.
  • Независимость от GUI: Тесты можно запускать на серверах, в Docker-контейнерах или любых headless-средах.
  • Экосистема: Существует множество сторонних репортеров (newman-reporter-*), которые расширяют возможности базового Newman, позволяя создавать красивые дашборды, отправлять уведомления в Slack/Telegram или интегрироваться с системами управления тестами (Allure).

Ограничения и важные моменты

  • Не является фреймворком для unit-тестов: Newman — это инструмент запуска, а не полноценный тестовый фреймворк типа Jest или Pytest. Сложную бизнес-логику или тесты, сильно зависящие от состояния внешних систем, лучше писать на специализированных языках (Java, Python, JavaScript).
  • Зависит от Postman: Коллекции должны быть созданы и поддерживаться в Postman.
  • Отладка: Отладка скриптов в Newman сложнее, чем в отладчике Postman. Часто приходится полагаться на логирование (console.log) и анализ отчетов.

Место Newman в процессе автоматизации

Newman идеально подходит для:

  1. Регрессионного API-тестирования как часть nightly- или smoke-сборок.
  2. Верификации работоспособности API (health checks) после деплоя.
  3. Интеграционного тестирования, где нужно проверить цепочки вызовов API.
  4. Нагрузочного тестирования в связке с newman run и параметрами итераций (хотя для серьезного нагрузочного тестирования лучше использовать k6 или JMeter).

Итог: Newman — это мощный и практически незаменимый инструмент в арсенале QA Automation инженера, работающего с API. Он эффективно «соединяет» удобство разработки тестов в Postman с требованиями современной DevOps-практики, позволяя сделать API-тестирование неотъемлемой, автоматизированной и наглядной частью процесса разработки программного обеспечения.