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 предназначен только для разработки и тестирования, а не для продакшн-среды.

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

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

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

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

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