Пролог https://dev.to/mikotian/to-birth-a-mockingbird-ep8
Я начал исследовать насмешливые инструменты и нашел тот, который казался достаточно быстрым для моих потребностей.
Mockoon [ https://mockoon.com/ ] был приятным маленьким инструментом на основе графического интерфейса, о котором я слышал до и, не задумываясь, я начал внедрять своего маленького пересмешника.
Хорошая часть о Mockoon:
*С этого довольно просто начать с. Любой, кто использовал почтальона, сочтет это интуитивно понятным и простым для понимания. *Вы можете иметь несколько API, работающих параллельно на выбранных вами портах. Возможность определения нескольких ответов на основе того, что является входящей полезной нагрузкой *HTTPS. Поля) *Моделирование задержки (это было требование номер 1, которое у меня было), которое у меня было) *Моделирование задержки также на основе конечной точки (это кумулятивно по задержке базового пути)
Dealbreaker (ы):
*Это приложение только для локального хоста (так что нет интрасети, по крайней мере, я не смог заставить это работать) *Нет командного или необработанного вызова, поэтому не будет работать в условиях без дисктопов без серьезного возиться (возможно, одним из способов может быть перенастроение x11)
Некоторые скриншоты из моего эксперимента
Я мог бы имитировать каждую конечную точку API, которую я хотел издеваться, и это сработало безупречно для меня, за исключением интрасетной части. Может быть интересно для разработчиков, которые хотят издеваться над сложным поведением API.
Так что мне пришлось думать о чем -то другом.
Проработав на Python на некоторое время и всегда хотел написать API, используя его. Я немного исследовал флез обратно в тот день, но так и не смог использовать его. Это был мой шанс.
И это оказалось довольно легко.
Я использовал стандартную установку Python на установке AWS, чтобы запустить следующий код:
Это довольно парный материал, за исключением нескольких вещей:
*Чтобы ввести некоторую задержку в ответах, я использовал Time.sleep (), прежде чем отправлять ответ *Использовал встроенную поддержку JSON для манипулирования объектами JSON. *Использует UUID, чтобы генерировать пару различных типов ГПД (узнаваемые тоже о библиотеке!)
Экземпляр, который я использовал для этого, был экземпляр AWS T2.micro с 1 VCPU и 1 ГБ оперативной памяти.
Он был выставлен на стандартном порту 5000, который использует Фласка, и я решил не использовать HTTPS, поскольку это увеличило бы время настройки во многих случаях производственного микросервиса.
Чтобы познакомить его с внутренней сетью, я использовал 0,0.0.0 в качестве адреса, что означает, что программа будет прослушать все выборочные IPS для машины.
Существует хорошая поддержка отладки и в колбе, и это требует, чтобы мы установили флаг отладки при запуске службы/приложения.
Команда, которую я использовал для запуска приложения, была довольно простой:
Python Mockingbird.py
Приложение сработало чудесно для наших целей. Он давал правильные ответы с желаемой задержкой, и выглядело так, как будто он также поглощал всю нагрузку. Пара нагрузочных испытаний прошла хорошо с параметрами, показывающими, чтобы быть на ожидаемых линиях.
Но, как это происходит в мире разработки программного обеспечения (и особенно в мире тестирования программного обеспечения), первая версия никогда не является готовым проектом.
В следующем посте я расскажу/объясню, как я убил пересмешника (и что я сделал, чтобы исправить)
Оригинал: “https://dev.to/mikotian/to-make-a-mockingbird-1f8j”