Это первая статья серии из двух частей, сравнивая призму, 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»