Рубрики
Uncategorized

Сравнение призмы, Hoverfly и HMT- части 1

Статья, сравнивающая три рамки издевательства. Помечено с API, WEB, DEVOPS, тестированием.

Это первая статья серии из двух частей, сравнивая призму, Hoverfly и HMT. В этой статье представлено сравнение высокого уровня. То второй Показывает их можно использовать с определенной API.

Наша команда во время краткого, спонтанного момента легковости.

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

Недавно мы начали открывать источник больше нашего стека, поскольку мы приближаемся к достижению нашей миссии. При этом мы придумывались против некоторых сильных инфекций, таких как призма и Hoverfly. В этой статье я хотел бы представить оба тех инструмента для нашего нового проекта с открытым исходным кодом HMT .

Призма

Призма — это компонент с открытым исходным кодом StopLight.io куча. Stop Close, по моему опыту, лучший редактор для создания спецификаций Openapi. UI великолепен. Если вы авторируете спецификацию Openapi и не любите писать YAML или JSON, вы должны попробовать прожекторы.

Используя PRISM, вы можете взять на себя SPECE SPECT на STOPLIGHT (или построен с любым другим инструментом) и запустить:

$ prism mock my-spec.yml

Призма создаст сервер, который издевается на все конечные точки вашего спецификации Openapi. Например, представьте, что my-spec.yml содержит путь /пользователи . Вы можете позвонить http://loalhost: 3000/пользователи Чтобы получить список пользователей Mock, которые соответствуют спецификации в My-Spec.yml. .

Вывод: : Prism — отличный инструмент, чтобы повернуть спецификацию Openapi в MOCK Server.

Hoverfly

Hoverfly создает MOCK Server на основе записей живой службы.

Самый простой способ записи трафика с Hoverfly — использовать его как прокси. Для этого вы запускаете hoverctl и проинструктируете его в режиме захвата. Затем вы можете использовать Curl или Postman, чтобы отправить свой HTTP-трафик через прокси Hoverfly. Также возможно настроить прокси на конкретных языках. Например, в Nodejs вы можете установить переменные среды http_proxy и https_proxy.

Отсюда вы можете экспортировать запись в файл моделирования и остановить Hoverctl когда вы закончите.

$ hoverctl start
$ hoverctl mode capture
$ curl --proxy http://localhost:8500 http://echo.jsontest.com/a/b
$ hoverctl export simulation.json
$ hoverctl stop

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

$ hoverctl start webserver
$ hoverctl import simulation.json
$ curl http://localhost:8500/a/b
$ hoverctl stop

Таким образом, Hoverfly позволяет записывать и хранить различные приспособления из макета API и обслуживают их обратно. Hoverfly использует пользовательский формат JSON для хранения его записей. В этом файле JSON вы можете делать такие вещи, как укажите совпадение, если ваши URL-адреса имеют подстановочные знаки.

Hoverfly расширяется через систему промежуточного программного обеспечения, которая связывается через stdin и stdout Отказ Промежуточное программное обеспечение может делать такие вещи, как изменение кода состояния ответа и даже добавить задержку.

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

HMT

Если бы ховерфи и призма имели ребенка, это было бы HMT. HMT позволяет разработчикам построить MOCK Server от записей и спецификаций Openapi. Он обнажает Python API для создания слоя настойчивости за издевательствами. Мы также используем его для соединения моделей ML для имитации реалистичного сервера трафика.

HMT проглатывает записи в http-типы формат. Вы можете создать эти записи HMT, используя промежуточное программное обеспечение или прокси. Например, скажем, что у нас есть Экспресс Сервер и хочу сделать нашу запись от этого. Мы можем использовать HMT Экспресс промежуточное программное обеспечение Сохранить записи.

app.use(
  hmt({
    transport: S3Transport({
      bucket: "my-recording-bucket",
      key: "/ myservice",
      prefix: "recording_",
    }),
  })
)

Также возможно использовать HMT в качестве обратного прокси для записи.

$ hmt record --log_dir ./logs
$ curl http://localhost:8000/http/echo.jsontest.com/a/b

Тогда мы используем HMT Build Чтобы превратить эти записи в спецификацию Openapi. В приведенном ниже примере мы смешиваем записи с предубежденным спецификацией. Результатом является расширенная спецификация Openapi.

$ hmt build --mode replay -i recording.json -a spec.yml -o enhanced_spec

Если вы используете Ген Режим, затем HMT выводят спецификацию от записей вместо того, чтобы служить их Rote.

$ hmt build --mode gen -i recording.json -a spec.yml -o enhanced_spec

Как и Hoverfly и Prism, HMT может быть запущен в режиме сервера.

$ hmt mock -i enhanced_spec/

Вывод: HMT объединяет записи и спецификации Openapi в расширенном спецификации OpenAPI. Мы хотели бы услышать ваши отзывы о наших Проблемы GitHub Страница . Кроме того, пожалуйста, не стесняйтесь оставлять комментарий с обратной связью!

Оригинал: «https://dev.to/meeshkan/comparing-prism-hoverfly-and-meeshkan-part-1-27g6»