Create simulations from learning mode
学習モードは、仮想サービスが実際のサービス間のやりとりを監視して、実際のサービスの動作を学習可能にします。これにより、サービスの実際のリクエストとレスポンスの動作をリアルタイムで把握することができ、それを使用してシミュレーションを構築および改善することができます。これは、仮想化したいサービスに対して、あらかじめ定義された仕様や契約がない場合にも役立ちます。
学習モードを使用するには、学習値を持つフォワードとモード接続プロパティを接続に追加します。シミュレーションが失敗するたびに、メッセージが現実世界のサービスに転送されます。接続は新しい動作を学習し、自動的にそれを新しいシミュレーションファイルとして保存します。シミュレーションファイルはシミュレーションレジストリにあります。
When APIシミュレーション creates the simulation file, it tries to automatically detect possible trigger elements and save them as trigger properties.
車のサービスの例
この例では、以下の詳細を持つtheCarServiceSimLearningsという接続を設定します。
-
接続タイプは、学習モードのフォワードです。
-
ポート54345でリスニングし、/carserviceに送信されたリクエストをキャプチャします。
-
パターンプロパティは、XPathルールを使用して、Envelope > Body > getCar 構造をナビゲートし、SOAP 要求から make 要素を抽出します。抽出された各 make ごとにシミュレーションファイルを更新し、realCarServiceにリクエストを転送します。
-
realCarServiceのエンドポイントはhttp://localhost:51002/carserviceです。
-
The endpoint's listen mode is set to false, meaning the シミュレータAgent doesn't use the endpoint to receive messages but only forwards traffic to it.
schema: SimV1
connections:
- forward:
learning:
patterns:
- type: Path
- xPath: /*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='getCar']/*[local-name()='make']
mode: Learning
to: realCarService
name: theCarServiceSimLearnings
port: 54345
- endpoint: http://localhost:51002/carservice
listen: false
name: realCarService