qadesk.ru / Платформы и стек / Postman · API-тесты
API и интеграции

API и интеграции — отчёт Newman в покрытие, обмен между системами под контролем

Postman-коллекция через Newman, pytest с requests, REST Assured и контракты Pact отдают JUnit XML — QA Деск принимает его как любые автотесты, а кейсы на обмены между системами ведутся рядом с ними и прогоняются по стендам.

Два вида «интеграционного тестирования»

Под интеграционными тестами понимают разное. Первое — проверка API одного сервиса: коды ответов, схемы, авторизация, граничные значения. Второе — проверка обмена между системами: заказ из сайта ушёл в 1С, сделка из Битрикс24 попала в учёт, вебхук пришёл один раз, а не три. Первое почти полностью автоматизируется; второе требует сценарных кейсов и рук, потому что участвуют две команды и два релизных цикла.

QA Деск покрывает оба: автотесты API приезжают отчётами, сценарии обменов ведутся кейсами и прогоняются по стендам.

Отчёты API-автотестов

Postman-коллекция запускается Newman с репортёром JUnit:

newman run collection.json -e stage.postman_environment.json \
  -r cli,junit --reporter-junit-export reports/junit.xml

pytest с requests или httpx — --junitxml=reports/junit.xml. REST Assured под TestNG/JUnit пишет surefire-reports сам. Контрактные тесты Pact в любом языке идут через тот же раннер. Karate отдаёт JUnit из коробки.

Ключ кейса — в имени запроса Postman или тестовой функции:

QAD-C42 POST /orders — заказ создаётся с верной суммой

Загрузка:

./qadesk-cli upload --run "billing api" --env stage --platform api --build "$CI_COMMIT_SHORT_SHA" reports

--platform api отделяет эти прогоны от браузерных и мобильных в истории. Тесты без ключа не записываются и возвращаются поимённо.

Кейсы на обмены

Сценарий обмена — это кейс с шагами по обе стороны границы: «создать заказ на сайте → дождаться выгрузки → проверить документ в 1С → изменить статус в 1С → проверить статус на сайте». Такие кейсы плохо ложатся в автотесты и хорошо — в ручной прогон перед релизом любой из сторон.

Что стоит держать в библиотеке для каждого обмена:

  • полная и дельта-выгрузка;
  • повтор после сбоя: обмен упал на середине, перезапущен — дубли не появились;
  • конфликт: запись изменена с обеих сторон между сеансами;
  • откат: документ удалён или отменён в источнике;
  • предельные объёмы и время окна обмена — ночная выгрузка на десять тысяч позиций не должна выйти за окно и наложиться на утренний запуск.

Готовые наборы для обменов 1С ↔ Битрикс24 и CommerceML — в каталоге кейсов; проверки самой платформы — на страницах и 1С-Битрикс.

Стенды как конфигурации прогона

Интеграционный регресс идёт на конкретной паре стендов: {stand: preprod, api_version: v2, counterpart: 1C-test}. В QA Деск это конфигурация прогона: один план — прогон на каждой паре, результат каждой строки отдельно. Так видно, что обмен работает с тестовой 1С и падает с предпродовой — и это два разных дефекта, а не один «иногда не работает».

Дефект и ошибки мониторинга

Дефект из упавшей строки наследует стенд, версию API и сборку. Ошибки обмена в проде, которые ловит Sentry, становятся дефектами без рук — Sentry. Ответ на дефект — задача разработчику в Битрикс24 или SourceCraft.

Чего в продукте нет

  • нет запуска коллекций и моков — QA Деск не заменяет Newman, WireMock и стенд;
  • нет импорта OpenAPI в скелеты кейсов — в дорожной карте;
  • нет проверки схем ответов — это работа автотеста, деск принимает его результат.

С чего начать

  1. Добавьте JUnit-репортёр в задание с Newman или pytest и выгрузку с when: always.
  2. Проставьте ключи кейсов у запросов, которые ломаются чаще всего.
  3. Заведите кейсы на обмены по списку выше и конфигурации стендов.
  4. Прогоните план по стендам перед ближайшим релизом любой из сторон.

Попробуйте на своём проекте

Заведите проект, загрузите первый отчёт или заведите первый дефект — бесплатный тариф без карты. Нужно демо на ваших сценариях — напишите на hello@qadesk.ru.

Создать проект