Розробка 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
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1242
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    997

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

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

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

Чому Postman і Newman — стандарт для API-тестування?

Postman — де-факто інструмент для роботи з REST API. Його ключова перевага — вбудований раннер тестів на JavaScript та можливість експорту колекції у формат, зрозумілий Newman — консольному бігуну. Newman запускає ті самі тести в CI/CD: ви пишете один раз, виконуєте всюди. Ми використовуємо обидва інструменти понад 5 років, автоматизували тестування для 45+ проектів. Postman з Newman у 5 разів швидше інтегрується в CI, ніж Insomnia з Inso. Нижче — реальний приклад структури колекції для 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%), правильність схем, час відгуку. Гарантія якості API — наш головний пріоритет. Для критичних ендпоінтів додаємо навантажувальні тести (через 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 година онлайн)

Вартість розраховується індивідуально: типова вартість проекту від $600 до $1200. Економія на регресії до $2000 на місяць. Зв'яжіться з нами — ми підготуємо комерційну пропозицію за 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 робочий день.