MockServer: HTTP(S) мок-сервер и прокси для тестирования приложений

MockServer: HTTP(S) мок-сервер и прокси для тестирования приложений

MockServer — это HTTP(S) мок-сервер и прокси для тестирования. Он позволяет замокировать API, инспектировать и изменять живой трафик, а также вводить ошибки для тестирования устойчивости приложений.

Основные возможности включают мокирование недоступных или неполных систем, проксирование реального трафика с возможностью его записи и редактирования, а также внедрение задержек и ошибок для проверки на прочность. Особенностью MockServer является поддержка множества протоколов, включая HTTP/1.1, HTTP/2, gRPC, WebSockets и TCP — всё это на одном порту без необходимости в дополнительной конфигурации.

Проект написан на Java и доступен для запуска с помощью Docker или напрямую, если у тебя есть соответствующие среды. У MockServer есть экспериментальная поддержка HTTP/3 и возможность работы с мессенджерами на базе Kafka и MQTT. Имей в виду, что это решение подходит для разработчиков, которым необходимо тестировать свои приложения в нестандартных условиях, но на данный момент проект может быть не совсем стабильным.

MockServer — это инструмент для тестирования в виде HTTP(S) mock-сервера и прокси. Он позволяет имитировать API для разработки и тестирования, проксировать реальный трафик и управлять его параметрами, а также проводить хаос-тестирование, чтобы проверить, как приложение справляется с нестабильными зависимостями.

Зачем нужен MockServer

  • Мокинг API: позволяет имитировать API, которые могут быть недоступны или их сложно воспроизвести.
  • Проксирование: записывает и модифицирует запросы и ответы в реальном времени, превращая MockServer в отладчик сетевого трафика.
  • Хаос-тестирование: позволяет имитировать сбои зависимостей с помощью внедрения задержек, сброшенных соединений и ошибок.

Установка и запуск

Запустить MockServer можно с помощью Docker:

# 1. Запустить MockServer
docker run -d --rm -p 1080:1080 mockserver/mockserver

# 2. Создать ожидание: GET /hello -> 200 "Hello World"
curl -X PUT http://localhost:1080/mockserver/expectation \
  -H 'Content-Type: application/json' \
  -d '{
        "httpRequest":  { "method": "GET", "path": "/hello" },
        "httpResponse": { "statusCode": 200, "body": "Hello World" }
      }'

# 3. Вызвать мок
curl http://localhost:1080/hello
# -> Hello World

Можно также установить MockServer через Homebrew на macOS или Linux:

brew install mockserver
mockserver run --port 1080

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

  • Поддержка различных протоколов: HTTP/1.1, HTTPS, HTTP/2, HTTP/3, gRPC и WebSockets.
  • Динамические ответы с помощью шаблонов.
  • Генерация ожиданий на основе спецификаций OpenAPI.
  • Поддержка интеграции с клиентами на Java, JavaScript/Node, Python, Ruby и других языках.
  • Запуск в различных средах: Docker, Kubernetes, JAR/WAR.

Ограничения и требования

MockServer требует Java 17 и выше. Если ты используешь старую версию Java (например, 11), то следует использовать предыдущую версию MockServer, так как новая уже не поддерживает устаревшие версии Java. Также стоит отметить, что MockServer предназначен только для разработки и тестирования, а не для продакшн-среды.

Перед началом работы стоит ознакомиться с документацией, доступной на официальном сайте проекта. Она включает в себя инструкции по установке, использованию и примерам интеграции с различными фреймворками.

Радар проекта: 82 из 100 — зрелый и живой проект

ИмпульсТемпЗрелостьСообществоСвежестьСтартПродакшенДовериеДокументацияЭкосистема82
  • Импульс 10 ≈ 20 звёзд в месяц
  • Темп разработки 100 1732 коммита за 12 недель
  • Зрелость 89 проекту 13 лет, 13 релизов
  • Сообщество 88 144 участника, 1121 форк
  • Свежесть 96 последний коммит — 6 дней назад
  • Быстрый старт 75 есть: команда установки, сайт/демо, примеры
  • Готовность к продакшену 80 релиз mockserver-9.2.0, автосборка
  • Безопасность и доверие 100 лицензия Apache-2.0, SECURITY.md, организация
  • Документация 100 README 29.7 тыс. знаков, 18 разделов, папка docs
  • Экосистема 80 116 подписчиков на обновления, 15 тем
Как считаем

Только открытые данные GitHub на 07.11.2026, без оценок нейросети. Каждая ось — от 0 до 100, итог — среднее.

  • Импульс — звёзд в день: за время наших замеров, а пока их нет — за всю жизнь проекта; 200 в день — максимум.
  • Темп разработки — коммитов за последние 12 недель; 300 — максимум. Пока GitHub не досчитал статистику, ось не учитывается.
  • Зрелость — возраст проекта (3 года — максимум) и число релизов (30 — максимум), поровну.
  • Сообщество — участников с коммитами (200 — максимум) и форков (5000 — максимум), поровну.
  • Свежесть — дней с последнего коммита: сегодня — 100, полгода и больше или архив — 0.
  • Быстрый старт — в README есть команда установки, раздел «быстрый старт» или примеры использования, в репозитории — Docker и папка примеров, у проекта есть сайт или демо.
  • Готовность к продакшену — релизы, версия 1.0 и выше, автосборка (GitHub Actions), тесты, лицензия, журнал изменений.
  • Безопасность и доверие — открытая лицензия (своя — половина балла), политика безопасности (SECURITY.md), проект организации, правила для участников, не в архиве.
  • Документация — объём и структура README, папка docs или сайт, оценка «здоровья сообщества» GitHub.
  • Экосистема — звёзды (50 тыс. — максимум), подписчики на обновления (1000 — максимум), темы репозитория.

Открыть на GitHub: mock-server/mockserver-monorepo →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте