Skip to content

winamu6/api-orchestra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

!!!Решение для VTB API Hackathon 2025!!!

Задача: «Оркестр» из API: анализ и тестирование бизнес-процессов. Соберите «оркестр» из API и превратите сложные бизнес-процессы в простые надежные тесты. Покупка в один клик, оформление кредита, интеграция с маркетплейсом — все это цепочки из десятков API-вызовов, где ошибка на любом шаге может нарушить весь процесс. Сегодня их тестирование — это кастомные скрипты, ручная работа и головная боль. Ваша задача: создать ИИ-инструмент для тестирования, который позволяет легко описывать, запускать и проверять такие многошаговые сценарии через взаимодействие с API. Как именно вы это сделаете — решать вам. Главное, чтобы тестировщики и разработчики могли с его помощью ловить ошибки до того, как они попадут к пользователям.


API Orchestra

API Orchestra — инструмент для тестирования многошаговых бизнес-процессов через API.
Он позволяет описывать сложные сценарии покупки, кредитования, интеграции с маркетпл��йсом и др., а затем выполнять их как надежные тесты, выявляя ошибки до попадания в продакшн.


🛠 Возможности

  • Описание сценариев в YAML: шаги, запросы, проверки, извлечение переменных.
  • Выполнение HTTP-запросов (GET, POST, PUT, DELETE).
  • Проверка HTTP-статусов и значений в JSON-ответах (assertions).
  • Извлечение данных из ответов для использования в следующих шагах (extract).
  • Лёгкое подключение к JUnit для автоматического тестирования.

📂 Структура проекта

src/
├── main/
│ ├── java/org/example/
│ │ ├── executor/ # Выполнение сценариев
│ │ ├── http/ # HTTP клиент
│ │ ├── io/ # Загрузка YAML сценариев
│ │ ├── model/ # Модели сценариев и шагов
│ │ └── Main.java # Запуск сценария
│ └── resources/scenarios/ # YAML-сценарии
└── test/
└── java/org/example/ # Тесты JUnit

📖 Пример YAML-сценария

id: purchase-1click
description: "Покупка в один клик"
variables:
  baseUrl: "https://postman-echo.com"
steps:
  - id: create-order
    type: http
    request:
      method: POST
      url: "${baseUrl}/post"
      headers:
        Content-Type: application/json
      body:
        productId: "sku-123"
        quantity: 1
    extract:
      echoId: "/json/productId"
    assertions:
      - status: 200
      - jsonPath: "/json/productId"
        equals: "sku-123"

🚀 Запуск

Из IntelliJ IDEA:

ПКМ → Run Main.main()

Через Maven:

mvn clean compile exec:java -Dexec.mainClass="org.example.Main"

  1. Секции зависимостей и дальнейшего развития
  • Списки лучше оформлять с - и пробелом.
  • Использовать кодовые блоки для команд или файлов.

Пример:

⚙️ Настройка проекта

  • Требуется JDK 21 и Maven.
  • Все зависимости подтягиваются через pom.xml:
    • OkHttp для HTTP-запросов
    • Jackson для JSON/YAML
    • SLF4J для логирования
    • JUnit 5 для тестов

🔮 Дальнейшее развитие

  • Поддержка JSONPath для сложных проверок.
  • Подключение других типов шагов: базы данных, GraphQL, Kafka и др.
  • Генерация HTML/Allure отчётов.
  • Визуальный интерфейс для создания сценариев.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages