工作プロセスでは、マイクロサービスの基本機能が正常かどうかを検証する必要がありますが、SE の設計があまり良くないため、マイクロサービスの結合が非常に重く、個別のテストシナリオを構築することができません。そのため、インターフェースレベルのモックが必要です。以前は自分でマイクロサービスを作成し、エンドポイントのマイクロサービスの返答を模擬していましたが、これは非常に面倒です。そのため、以下のツールを考案しました。
iptables を使用して NAT を行い、その後、mitmproxy を使用してストリームをインターセプトおよび改ざんし、モックサービスの目的を達成します。現在、RESTful インターフェースのモックをサポートしています。
# アーキテクチャ#
naughtymonkey がない場合:
サービス A(1.1.1.1)→サービス B(2.2.2.2:8888)リクエストを受け取る
サービス A(1.1.1.1)←サービス B(2.2.2.2:8888)レスポンスを返す
naughtymonkey を使用する場合:
サービス A(1.1.1.1)→サービス B のネットワークカード(iptables)→naughtymonkey(3.3.3.3:8080)→サービス B(2.2.2.2:8888)
サービス A(1.1.1.1)←サービス B のネットワークカード(iptables)←naughtymonkey(3.3.3.3:8080)ここでレスポンスを改ざんできます←サービス B(2.2.2.2:8888)レスポンスを返す
1 サービス B で monkeyagent.sh を実行し、iptables ルールを設定し、サービス A のリクエストストリームをすべて naughtymonkey に透過します
2 naughtymonkey のインターフェースでインターセプトする URL アドレスを設定し、URL に一致する場合にのみインターセプト操作を実行します
3 naughtymonkey のインターフェースでインターセプトおよび改ざんタスクを設定し、条件に一致するリクエストが来た場合は、タスク内のストリームに従って返答します
# 依存関係#
1 naughtymonkey は mongodb に依存しているため、mongodb をデプロイする必要があります
2 python3 が必要であり、多くのパッケージに依存しています。自分で追加してください
GitHub アドレス:https://github.com/flyfire100/naughtymonkey