Статья подготовлена в рамках исследовательского проекта CloudBridge Research

Проект: github.com/cloudbridge-research/quic-test

Предыстория

Месяц назад, 26 ноября, мы рассказывали на Хабре о создании quic-test — открытого инструмента для тестирования QUIC, BBRv3 и FEC в реальных условиях. Тогда это был преимущественно CLI-инструмент для сетевых инженеров и исследователей.

За этот короткий период проект значительно эволюционировал. Мы получили активную обратную связь от пользователей, которые начали использовать quic-test в своих проектах. Основные запросы касались удобства использования и автоматизации тестирования.

Сегодня представляем результат интенсивной работы последнего месяца: quic-test получил полнофункциональный Web GUI, REST API для автоматизации и значительные технические улучшения.

Что изменилось

Web GUI интерфейс

Web GUI интерфейс
Web GUI интерфейс

Главное нововведение — полнофункциональный веб-интерфейс, который делает QUIC-тестирование доступным для широкой аудитории.

Основные возможности GUI:

  • Dashboard — обзор активных тестов и системного статуса

  • New Test — создание тестов через интуитивные веб-формы

  • Test History — просмотр всех выполненных тестов с детальными метриками

  • Real-time monitoring — мониторинг тестов в реальном времени

  • Test Details — детальный анализ результатов с графиками и логами

Запуск GUI:

# Сборка
make build

# Запуск GUI сервера
make gui
# или
./quic-gui --addr=:8080 --api-addr=:8081

# Открыть в браузере
open http://localhost:8080

Архитектура GUI:

  • Frontend: Чистый HTML/CSS/JavaScript без фреймворков

  • Backend: Go HTTP сервер с REST API

  • API: Полноценный REST API для автоматизации

  • Real-time: Автоматическое обновление статуса тестов

REST API для автоматизации

Веб-интерфейс построен поверх полноценного REST API, который можно использовать для автоматизации тестирования:

Основные endpoints:

# Создание теста
POST /api/tests
{
  "mode": "test",
  "duration": "60s",
  "connections": 2,
  "streams": 4,
  "congestion_control": "bbrv3"
}

# Получение статуса теста
GET /api/tests/{id}

# Остановка теста
DELETE /api/tests/{id}

# Текущие метрики
GET /api/metrics/current

# Метрики в формате Prometheus
GET /api/metrics/prometheus

Образовательная документация

Создана комплексная техническая документация, которая включает:

API Reference:

  • Полное описание всех REST API endpoints

  • Примеры запросов и ответов

  • Схемы данных и коды ошибок

Техническое руководство:

  • Детальное описание архитектуры QUIC

  • Сравнение различных алгоритмов congestion control

  • Объяснение метрик производительности

Практические примеры:

  • Готовые сценарии тестирования

  • Интеграция с системами мониторинга

  • Автоматизация через CI/CD

Расширенная функциональность

WebTransport поддержка:

# Тестирование WebTransport
make test-webtransport

HTTP/3 load testing:

# HTTP/3 нагрузочное тестирование
make test-http3

Улучшенная архитектура:

quic-test/
├── cmd/
│   ├── gui/                # Web GUI интерфейс
│   ├── tui/                # Terminal UI мониторинг
│   ├── experimental/       # Экспериментальные функции
│   └── ...
├── internal/
│   ├── gui/                # GUI сервер и API
│   ├── webtransport/       # WebTransport поддержка
│   ├── http3/              # HTTP/3 load testing
│   ├── pqc/                # Post-Quantum Crypto симуляция
│   └── ...
├── web/                    # Web GUI статические файлы
└── docs/                   # Расширенная документация

Технические улучшения

Улучшенная стабильность

  • 100% успешных тестов основного функционала

  • Обработка 10,000+ пакетов в секунду

  • Автоматическое восстановление после сбоев

  • Поддержка множественных параллельных тестов

Расширенные метрики

Добавлены новые метрики для более детального анализа:

  • Детальная статистика по потокам QUIC

  • Метрики производительности FEC

  • Анализ эффективности различных алгоритмов congestion control

  • Интеграция с AI Routing Lab для пр��дсказания маршрутов

Практические примеры использования

Пример 1: Сравнение TCP vs QUIC через Web GUI

  1. Открываем http://localhost:8080

  2. Переходим в "New Test"

  3. Выбираем режим "Integrated (Server + Client)"

  4. Устанавливаем длительность 60 секунд

  5. Выбираем профиль "Mobile (4G/LTE)"

  6. Запускаем тест и наблюдаем результаты в реальном времени

Пример 2: Автоматизация через API

# Создание теста через API
curl -X POST http://localhost:8081/api/tests \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "test",
    "duration": "120s",
    "connections": 4,
    "streams": 8,
    "congestion_control": "bbrv3",
    "profile": "mobile"
  }'

# Получение результатов
curl http://localhost:8081/api/tests/test_1234567890

Пример 3: Интеграция с CI/CD

# GitHub Actions пример
- name: QUIC Performance Test
  run: |
    docker run -d --name quic-server \
      -p 9000:9000/udp \
      mlanies/quic-test:latest --mode=server
    
    sleep 5
    
    docker run --rm \
      mlanies/quic-test:latest \
      --mode=client \
      --server=localhost:9000 \
      --duration=30s \
      --output=results.json

Статистика развития проекта

Технические показатели за месяц:

  • 15,000+ строк кода (рост в 3 раза)

  • 12 основных модулей (было 4)

  • 10+ REST API endpoints

  • 5 готовых лабораторных работ

Функциональность:

  • Web GUI — полнофункциональный веб-интерфейс

  • WebTransport — поддержка современного протокола

  • HTTP/3 load testing — нагрузочное тестирование

  • Post-Quantum Crypto — симуляция PQC алгоритмов

Документация:

  • Полная API документация — все endpoints с примерами

  • Техническое руководство — архитектура и принципы работы

  • Практические примеры — готовые сценарии использования

  • Многоязычная поддержка — русский и английский языки

Как начать использовать

Быстрый старт с GUI

# Сборка
make build

# Запуск GUI сервера
make gui

# Открыть в браузере
open http://localhost:8080

Автоматизация через API

# Создание теста
curl -X POST http://localhost:8081/api/tests \
  -H "Content-Type: application/json" \
  -d '{"mode": "test", "duration": "60s"}'

# Получение результатов
curl http://localhost:8081/api/tests/{test_id}

Docker развертывание

# Запуск с GUI
docker run -p 8080:8080 -p 8081:8081 -p 9000:9000/udp \
  mlanies/quic-test:latest gui

# Использование API
docker run --rm mlanies/quic-test:latest \
  --mode=client --server=demo.quic.tech:4433

Как связаться с нами

Участие в проекте

Мы приглашаем к сотрудничеству:

  • Разработчиков — для улучшения функциональности

  • Исследователей — для проведения совместных экспериментов

  • Инженеров — для тестирования в production средах

  • Энтузиастов — для участия в open-source разработке

Заключение

За месяц интенсивной работы quic-test эволюционировал от узкоспециализированного CLI-инструмента до полнофункциональной платформы с Web GUI и REST API. Мы добавили удобный веб-интерфейс, создали комплексную техническую документацию и значительно расширили функциональность.

Главное достижение, мы сделали QUIC-тестирование более доступным и удобным для автоматизации. Теперь проводить эксперименты с QUIC, BBRv3 и FEC могут не только опытные сетевые инженеры через CLI, но и разработчики через удобный веб-интерфейс, а DevOps команды, через REST API.

Проект продолжает активно развиваться. Мы открыты для новых идей, сотрудничества и обратной связи. Вместе мы делаем сетевые технологии лучше и доступнее.

Попробуйте новую версию, поделитесь своими результатами, участвуйте в развитии проекта!


Статья подготовлена командой CloudBridge Research. Все материалы и код проекта доступны под открытой лицензией MIT.