
ラボ 3: Functional Monitoring
概要
API Functional Monitoringソリューションを使用すると、開発者と運用者は、非運用環境と運用環境の両方で API のライフサイクル全体を通じ、APIの挙動とパフォーマンスの一貫した継続的なテストを実行することができます。
API Functional Monitoringは、公開されているAPIが開発、テスト、本番環境に配信される際の品質と信頼性を向上させます。このモニタは、Anypoint Platformで開発するAPIに特化しているだけでなく、公開されているあらゆるAPIの品質と信頼性のテストを実行するために使用することもできます。
このラボでは、定期的な間隔でAPIを呼び出し、公開されているAPIの信頼性と品質を確保するためのテストを実行するAPI Functional Monitoringテストを作成します。
ステップ 1: APIコンソールでエンドポイントをテスト
-
前回のラボでは、Visualizerと利用可能な機能を確認しました。Visualizerに戻り、前回のラボでデプロイしたノードを選択してください。
-
アプリケーションのホスト名をコピーして貼り付け、URLの最後に
/console
を追加してブラウザに貼り付けてください。これでデプロイしたAPIのコンソールが開きます。 -
機能モニターで使用するエンドポイントを選択します。エンドポイント /product/{product_id} GET を選択してみましょう。
APIをテストするには、右上の
Try It
をクリックします。 -
リソースを取得するためにエンドポイントに
id
を与える必要があります。idには1
を使用します。コンソールの product_id フィールドに1
を入力し、SEND
をクリックします。ELMOのおもちゃの製品情報が出力されます。
-
これでエンドポイントが動作していることが分かるので、リクエストURL フィールドからURLをコピーして、Functional Monitoringで使用するためにメモしておきましょう。
ステップ 2: Functional Monitorの作成
-
Anypoint Platformに戻り、左上のメインメニューから Monitoring に移動し、Functional Monitoring をクリックすると、以下のようなページが表示されます:
-
モニターを作成したいので、Create をクリックします。 最初のステップは、モニターに名前を付けることです。イニシャルと次の -omnichannel-monitor を使用します。 例えば、Max Mule の場合は、次のようになります
mm-omnichannel-monitor
その他の値はデフォルトのままにして下さい。
-
nextをクリックすると、プロセスのステップ2に移ります:
ここでは、APIを監視するために使用するエンドポイントとHTTPメソッドを指定する方法が表示されます。その他にコードエディタでエンドポイントを作成する事もできます。
-
omni-channel-apiのAPIコンソールでブラウザタブに戻り、実行されたクエリのリクエストURLをコピーします。
その後、functional monitorに戻り、リクエストURLを貼り付けます。
-
次はアサーションを追加して、API に期待している機能的な動作を確実に取得できるようにします。
追加するアサーションは次の2つです:
-
ステータスコード(Status code)は 200 でなければなりません。
-
応答本文(Response body)の id は 1 でなければなりません。
Next をクリックして続行します。
-
-
ステップ3では、サードパーティの通知ツールをフィードするレポーターを追加することができます。このステップとしては、メールレポーターを追加します。
最初のボックスでドロップダウンリストを開き、Emailを選択します。
Emailを選択したら、次のボックスに移動し、電子メールアドレスを追加し、キーボードの Enterキー を押します。必要に応じて複数のメールアドレスを入力することができます。
メールアドレスを入力した欄に登録するには、Enterキー を押す必要があります。 -
これでモニターの設定は完了です。最後にページ下部のcreateボタンをクリックします。
モニターが作成され、デプロイされるまでしばらく待ちます。テストが実行され、実行結果のフィードバックが始まります。
ステップ 3: Functional Monitor の出力をレビュー
-
タイマーマークをクリックすると、実行履歴を見ることができます。
-
テストの履歴は各実行をの概要を表示します。
テスト出力を確認するには、Detail をクリックして別のビューを開きます。
右側の下向き矢印をクリックして、入力 HTTP と出力 HTTP ヘッダとペイロードを含む実行の詳細を確認します。機能テストでエラーが発生した場合は、呼び出しの入力と出力のすべての詳細情報をファイルとしてダウンロード可能です。
-
左側のメニューの項目をクリックして、 functional monitoringメニューに戻ります。
-
作成したfunctional monitorを選びます。
functional monitorsでは、かなり高度なことが行えます。functional monitorsアクティビティをさらに活用するために、DataWeaveで記述することができるようになっています。
-
3点リーダー(︙)から
Download monitor
を選択して、テストファイルをダウンロードします。zipファイルがダウンロードされます。アーカイブを開き、中の
main.dwl
ファイルを開きます。以下のようなDataWeaveコードがいくつか表示されます。
import * from bat::BDD
import * from bat::Assertions
---
suite("mm-omnichannel-monitor1") in [
GET `http://mm-mon-omni-channel-api.us-e2.cloudhub.io/api/products/product/1` with {
"headers": {}
} assert [
$.response.status mustEqual 200,
$.response.body.id mustEqual 1
]
]
追加演習として、これらのスクリプトを自由に編集して、より高度な機能的なモニターを作成するためのプラットフォームにアップロードすることができます。 参考資料はここにあります。
まとめ
このラボでは、次の手順を完了しました:
-
APIコンソールを使用してエンドポイントをテスト
-
functional monitorを作成して実行
-
functional monitorの実行結果を確認し、DataWeaveコードで Functional Monitor がどのように構築されるかを確認
さらに学ぶには:
-
Functional Monitor についての詳細は、ドキュメント確認してください。
おめでとうございます! モジュール6の全てのラボが完了しました。
モジュール 7に進んで下さい。