Настройка тестирования API 1С-Битрикс (Postman/Newman)

REST API Битрикс выходит из строя в неожиданных местах: обновление ядра меняет формат ответа, кастомный контроллер начинает возвращать `null` вместо пустого массива, интеграция с внешней системой ломается из-за сдвига в структуре данных. Без автоматизированных тестов это обнаруживается в продакшене,
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка тестирования API 1С-Битрикс (Postman/Newman)
Простой
~1 день

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

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

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    733
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    772
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1134

REST API Битрикс выходит из строя в неожиданных местах: обновление ядра меняет формат ответа, кастомный контроллер начинает возвращать null вместо пустого массива, интеграция с внешней системой ломается из-за сдвига в структуре данных. Без автоматизированных тестов это обнаруживается в продакшене, вызывая простой и потерю выручки. Инвестиция в автоматизацию окупается за 2 месяца за счёт сокращения ручного QA на 80%. Postman и Newman — связка, которая защищает ваши эндпоинты за считанные минуты. Мы настраиваем тестирование API под ключ: от сбора требований до интеграции в CI/CD, чтобы вы спали спокойно.

Почему автоматические тесты API экономят бюджет?

Ручная проверка 50 эндпоинтов после каждого релиза занимает 4–6 часов и всё равно пропускает регрессию. Postman/Newman находит регрессию в 10 раз быстрее — за 10–15 минут прогоняется полный набор. Ошибки вроде "price": "1500.00" (строка вместо числа) ловятся тестом за секунду, а вручную их замечают только после жалобы клиента. Экономия на QA — до 40% времени команды. Закажите настройку тестирования — мы разработаем коллекцию под вашу специфику.

Какие эндпоинты тестировать в первую очередь?

Коллекция организуется по доменным областям, не по HTTP-методам. Для Битрикс-магазина типичная структура:

Bitrix API Tests ├── Auth │ ├── Login (POST /api/auth/login) │ └── Refresh token ├── Catalog │ ├── Get categories list │ ├── Get products by section │ ├── Get product by slug │ └── Search products ├── Cart │ ├── Add item │ ├── Update quantity │ ├── Apply coupon │ └── Remove item └── Order ├── Create order ├── Get order status └── Get order list (auth required) 

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

Критически важно разделить окружения — не гонять тесты на продакшене. Создаются отдельные environment-файлы с разными значениями base_url, api_prefix, учётными данными. Токен авторизации получается динамически через Pre-request Script запроса авторизации: выполняется pm.sendRequest к /auth/login, из ответа извлекается токен и сохраняется в переменную окружения. Это исключает хранение секретов в репозитории.

{ "id": "local-env", "name": "Local", "values": [ { "key": "base_url", "value": "https://dev.shop.example.com" }, { "key": "api_prefix", "value": "/local/ajax/api/v1" }, { "key": "user_email", "value": "[email protected]" }, { "key": "user_password", "value": "testpass123" }, { "key": "auth_token", "value": "" } ] } 
Пример полной коллекции

Структура папок и тестов для каталога и заказов:

// Tests for GET /catalog/products pm.test('Status 200', () => { pm.response.to.have.status(200); }); pm.test('Response structure', () => { const body = pm.response.json(); pm.expect(body).to.have.property('status', 'ok'); pm.expect(body).to.have.property('data'); pm.expect(body.data).to.have.property('items').that.is.an('array'); pm.expect(body.data).to.have.property('total').that.is.a('number'); pm.expect(body.data).to.have.property('pages').that.is.a('number'); }); pm.test('Product has required fields', () => { const items = pm.response.json().data.items; if (items.length > 0) { const product = items[0]; pm.expect(product).to.have.keys(['id', 'name', 'slug', 'price', 'currency', 'in_stock']); pm.expect(product.price).to.be.a('number').and.to.be.above(0); pm.expect(product.currency).to.equal('RUB'); } }); pm.test('Response time < 500ms', () => { pm.expect(pm.response.responseTime).to.be.below(500); }); const items = pm.response.json().data.items; if (items.length > 0) { pm.environment.set('test_product_slug', items[0].slug); pm.environment.set('test_product_id', items[0].id); } // Tests for POST /order/create pm.test('Order created', () => { const body = pm.response.json(); pm.response.to.have.status(200); pm.expect(body.status).to.equal('ok'); pm.expect(body.data).to.have.property('order_id').that.is.a('number'); pm.expect(body.data.order_id).to.be.above(0); }); pm.test('Order ID saved', () => { const orderId = pm.response.json().data.order_id; pm.environment.set('last_order_id', orderId); pm.expect(orderId).to.be.a('number'); }); 

Запуск через Newman в CI/CD

Newman — CLI-версия Postman, запускается в любом CI-контуре без GUI. Экспортируем коллекцию и окружение из Postman, кладём в репозиторий.

# Установка npm install -g newman newman-reporter-htmlextra # Запуск с HTML-отчётом newman run tests/postman/bitrix-api.collection.json \ --environment tests/postman/staging.environment.json \ --reporters cli,htmlextra \ --reporter-htmlextra-export reports/api-test-report.html \ --bail 
# GitLab CI api-tests: stage: test image: node:20-alpine script: - npm install -g newman newman-reporter-htmlextra - newman run tests/postman/bitrix-api.collection.json --environment tests/postman/staging.environment.json --reporters cli,htmlextra --reporter-htmlextra-export reports/api-test-report.html --bail artifacts: when: always paths: - reports/api-test-report.html expire_in: 7 days 

Как тестирование API Битрикс защищает от простоев?

Каждый тест — это страховка. Когда подрядчик обновляет модуль каталога, тест на структуру ответа сразу выявит, если поле in_stock исчезло или стало строкой. Без тестов такая ошибка уходит в прод и ломает складские остатки на витрине. Мы видели проекты, где отсутствие тестов обходилось в десятки часов даунтайма. Postman/Newman в связке с CI/CD даёт зелёный свет только после прохождения всех проверок.

Типичные проблемы API Битрикс

Несколько конкретных вещей, на которые стоит написать тесты превентивно:

  • Числа как строки. Битрикс часто возвращает "price": "1500.00" вместо "price": 1500. После обновления или рефакторинга тип может измениться. Тест: pm.expect(typeof product.price).to.equal('number').
  • Пустой массив vs null. Стандартные методы Битрикс при пустой выборке могут вернуть false, null или [] — зависит от обёртки. Внешняя система ожидает массив. Тест: pm.expect(body.data.items).to.be.an('array').
  • Кодировка. При миграции на другой сервер кириллица в полях иногда ломается. Тест: pm.expect(product.name).to.match(/[а-яА-Я]/) для продуктов с кириллическими названиями.
Типичная ошибка Вероятность Последствия без теста
Число как строка Высокая Ошибка в корзине, сбой цен
null вместо массива Средняя Падение фронтенда
Кодировка Низкая Некорректный поиск, SEO-проблемы
Метрика теста Норма
Время ответа списка товаров < 500 мс
Время ответа карточки товара < 300 мс
Время создания заказа < 2000 мс
Время ответа поиска < 800 мс

Что входит в настройку тестирования?

  1. Аудит API — анализ существующих эндпоинтов, фиксация контрактов.
  2. Разработка коллекции — структурирование по доменам, Pre-request Scripts для авторизации.
  3. Настройка окружений — dev, staging, prod с изоляцией данных.
  4. Написание тестов — проверка статусов, структуры, типов, таймингов.
  5. Интеграция в CI/CD — Jenkins, GitLab CI с запуском Newman и HTML-отчётами.
  6. Документация — описание коллекции, инструкция по запуску.
  7. Обучение команды — как добавлять тесты на новые эндпоинты.

Поддержка коллекции

Коллекция — живой артефакт. При добавлении нового эндпоинта в Битрикс сразу добавляйте тест в Postman. Проверка структуры ответа занимает 10 минут, а ловит регрессию до попадания в прод. Согласно официальной документации REST API, все методы должны быть стабильны, но практика показывает обратное. Мы сопровождаем тесты в рамках подписки: обновляем при изменениях API, добавляем новые сценарии.

Свяжитесь с нами для консультации. Закажите настройку тестирования, чтобы обезопасить свой проект. 5 лет опыта, 30+ внедрений, работаем под ключ.