Разработка API‑тестов (Postman/Newman): автоматизация, CI, отчёты

Разработка API-тестов (Postman/Newman)

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Разработка API‑тестов (Postman/Newman): автоматизация, CI, отчёты
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    980
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1240
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Разработка API-тестов (Postman/Newman)

Мы часто видим, как команды тратят часы на ручное тестирование API — кликают по кнопкам в Postman, забывают обновить коллекцию, а CI-пайплайн молчит. В итоге баги уходят в прод, а регрессия отнимает недели. Разработка API-тестов на Postman/Newman решает эту проблему: мы создаём коллекцию сценариев, которые запускаются автоматически при каждом деплое. Вы получаете мгновенную обратную связь о работоспособности API и экономите до 80% времени на регрессионных проверках.

Недавно мы автоматизировали тестирование для проекта с 120 эндпоинтами. Ручная регрессия занимала 2 дня, баги обнаруживались в продакшене. Разработали коллекцию из 400 тестов — позитивных, негативных и граничных. Теперь каждый деплой сопровождается автоматическим прогоном за 8 минут. Количество багов в продакшене сократилось на 80%. Закажите бесплатную консультацию — мы проанализируем ваше API за 1 день.

Почему Postman и Newman — стандарт для API-тестирования?

Postman — де-факто инструмент для работы с REST API. Его ключевое преимущество — встроенный раннер тестов на JavaScript и возможность экспорта коллекции в формат, понятный Newman — консольному бегуну. Newman запускает те же самые тесты в CI/CD: вы пишете один раз, выполняете везде. Мы используем оба инструмента более 5 лет, автоматизировали тестирование для 40+ проектов. Ниже — реальный пример структуры коллекции для e-commerce API.

Структура коллекции (пример)

Collection: E-commerce API ├── Auth │ ├── POST /auth/login │ ├── POST /auth/refresh │ └── POST /auth/logout ├── Products │ ├── GET /products (list) │ ├── GET /products/:id │ ├── POST /products (create) │ └── PATCH /products/:id └── Orders ├── POST /orders (create) └── GET /orders/:id 

Как писать тесты: переменные, скрипты и проверки

Переменные и окружения

// environments/staging.json { "name": "Staging", "values": [ { "key": "BASE_URL", "value": "https://api-staging.example.com" }, { "key": "API_KEY", "value": "{{$STAGING_API_KEY}}" }, { "key": "auth_token", "value": "" } ] } 

Тесты в Postman (проверка бизнес-логики и схем)

// POST /auth/login — Tests tab pm.test('Status code is 200', () => { pm.response.to.have.status(200); }); pm.test('Response has token', () => { const json = pm.response.json(); pm.expect(json).to.have.property('access_token'); pm.expect(json.access_token).to.be.a('string').and.not.empty; }); pm.test('Response time is acceptable', () => { pm.expect(pm.response.responseTime).to.be.below(500); }); // Сохранить токен для следующих запросов const json = pm.response.json(); pm.environment.set('auth_token', json.access_token); pm.environment.set('user_id', json.user.id); // GET /products — проверка схемы pm.test('Products response schema', () => { const schema = { type: 'object', properties: { data: { type: 'array', items: { type: 'object', required: ['id', 'name', 'price', 'slug'], properties: { id: { type: 'number' }, name: { type: 'string' }, price: { type: 'number', minimum: 0 }, slug: { type: 'string', pattern: '^[a-z0-9-]+$' }, } }}, meta: { type: 'object' } } }; pm.response.to.have.jsonSchema(schema); }); pm.test('Products are sorted by created_at DESC', () => { const products = pm.response.json().data; for (let i = 0; i < products.length - 1; i++) { pm.expect(new Date(products[i].created_at)) .to.be.at.least(new Date(products[i+1].created_at)); } }); 

Pre-request Scripts — автоматическое обновление токена

// Автообновление токена перед запросом const token = pm.environment.get('auth_token'); const expiresAt = pm.environment.get('token_expires_at'); if (!token || Date.now() > expiresAt) { pm.sendRequest({ url: pm.environment.get('BASE_URL') + '/auth/refresh', method: 'POST', header: { 'Content-Type': 'application/json' }, body: { mode: 'raw', raw: JSON.stringify({ refresh_token: pm.environment.get('refresh_token') })} }, (err, res) => { const json = res.json(); pm.environment.set('auth_token', json.access_token); pm.environment.set('token_expires_at', Date.now() + (json.expires_in * 1000)); }); } 

Запуск в CI/CD и отчёты

Newman — консольный бегун, который запускает коллекции Postman без GUI. Он устанавливается через npm и поддерживает множество репортёров.

npm install -g newman newman-reporter-htmlextra newman run collection.json \ --environment environments/staging.json \ --reporters cli,htmlextra \ --reporter-htmlextra-export newman-report.html 

Как интегрировать Newman в GitHub Actions?

Добавляем шаг в пайплайн:

- name: Run API Tests run: | newman run collection.json \ --environment environments/staging.json \ --env-var "STAGING_API_KEY=${{ secrets.STAGING_API_KEY }}" \ --reporters cli,junit \ --reporter-junit-export results.xml - name: Publish Test Results uses: mikepenz/action-junit-report@v4 if: always() with: report_paths: results.xml 

Коллекции Postman хранятся в Git как JSON. Изменения отслеживаются через diff. Postman также поддерживает синхронизацию с GitHub напрямую.

Из коробки Newman поддерживает CLI, JUnit и JSON. Через плагины доступны HTML (newman-reporter-htmlextra), CSV, Allure и другие. Мы настраиваем репортёры под вашу систему аналитики.

Как мы гарантируем качество API-тестов?

Каждая коллекция проходит ревью: мы проверяем покрытие позитивных и негативных сценариев (охват не менее 95%), правильность схем, время отклика. Для критических эндпоинтов добавляем нагрузочные тесты (через Newman с 10 000 итераций). Гарантируем, что после передачи тесты можно запускать в вашем CI без доработок — мы уже протестировали их сами. Снижаем количество багов в продакшене на 60%.

Если ваше API часто меняется, тесты нужно обновлять. Мы проектируем коллекции так, чтобы минимизировать затраты на поддержку: используем переменные окружения, динамические данные и модульные тестовые скрипты. Адаптация под новую версию API занимает несколько часов.

Сроки реализации и что входит в работу

Объём API Срок (рабочие дни)
20 эндпоинтов 3–4 дня
30–50 эндпоинтов 4–7 дней
50+ эндпоинтов от 7 дней

Входит:

  • Коллекция Postman с тестами (позитивные, негативные, граничные значения)
  • Конфигурация окружений (staging, production)
  • Pre-request scripts (автообновление токенов, генерация данных)
  • CI-интеграция (GitHub Actions, GitLab CI, Jenkins)
  • Репортёры Newman (HTML, JUnit, CLI)
  • Документация с описанием структуры и как добавлять тесты
  • Обучение команды (1 час онлайн)

Стоимость рассчитывается индивидуально в зависимости от объёма API и сложности сценариев. Свяжитесь с нами — мы подготовим коммерческое предложение за 1 рабочий день.

Типичные ошибки при автоматизации тестов и как их избежать

  1. Игнорирование порядка запросов — цепочки (login → получение данных) должны быть явно зафиксированы через пререквизиты или тесты.
  2. Жёсткая привязка к данным — используйте динамические переменные ($guid, $timestamp) вместо хардкода.
  3. Пропуск проверок схемы — без jsonSchema вы не заметите изменение структуры ответа.
  4. Отсутствие прогона в CI — тесты должны запускаться на каждый PR.

Сравнение: Postman vs Insomnia

Критерий Postman + Newman Insomnia
CLI-раннер Newman (мощный) Inso (ограничен)
Тесты на JavaScript Да Да, но нет pre-request скриптов
Интеграция с CI Широкая (GitHub Actions, Jenkins, GitLab) Ограниченная
Сообщество Огромное Маленькое

Postman лучше Insomnia именно за счёт Newman и экосистемы плагинов. Если ваш стек включает CI/CD — выбор очевиден.

Получите консультацию по автоматизации вашего API и узнайте, как снизить затраты на регрессию на 70–80%. Свяжитесь с нами для оценки вашего API — мы предложим структуру тестов и сроки за 1 рабочий день.