Налаштування тестування API 1С-Бітрікс (Postman/Newman)

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

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1017
  • 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
    759
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    802
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1161

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+ впроваджень, працюємо під ключ.