このセクションでは、 Virtualize サーバー上で発生するイベント (受信したリクエスト メッセージ、送信したレスポンス メッセージ、エラー、など) および、 Virtualize サーバー上にデプロイされたメッセージ プロキシを理解するために、 [Parasoft イベント詳細] パースペクティブを使用する方法について説明します。この機能は、ローカルおよびリモート両方の Virtualize サーバーで利用可能です。
どの Virtualize サーバーのイベントをモニターするか指定し、要求に応じて詳細のレポートを開始/終了できます。
セクションの内容:
イベント モニターの有効化
デフォルトで、 Parasoft Virtualize は Virtualize サーバーに関連するイベントのログを記録してレポートするように設定されています。イベント モニター設定の確認および変更をするには、次の操作を行います。
- GUI モードで Virtualize サーバーを起動します。
- GUI で、可視性を求めるサーバーのコンフィギュレーション パネルを開きます ([Virtualize サーバー] ビューで対象ノードをダブルクリックします)。
- [サーバー構成] タブで、利用可能なオプションを確認および変更します。
- イベント レポート サービスの有効化: 対象サーバーのイベント モニターを有効化/無効化します。デフォルトではイベント モニターは有効になっています。
- イベントレポートプロバイダー: イベント モニター サービスが使用するプロバイダーを指定します。デフォルトでは、 ActiveMQ ベースのビルトイン プロバイダーが使用されます。別のプロバイダーを使用するには、一覧から利用可能なオプションを選択し、設定を入力します。
- ポート: デフォルトのサービスのポート番号は 9617 ですが、このポートがすでに使用中の場合、システムのポートの利用状況に基づいて別のポート番号が自動的に割り当てられます。起動時に JVM 引き数で次のプロパティを指定して手動でポートを設定することもできます。
parasoft.event.monitoring.broker.port=<port>
- イベント レポート サービスの有効化: 対象サーバーのイベント モニターを有効化/無効化します。デフォルトではイベント モニターは有効になっています。
イベント モニターの開始/停止
開始
Virtualize に仮想アセットおよびメッセージ プロキシに関連するイベントのレポートを開始させるには、次のいずれかの操作を行います。
- [Virtualize サーバー] ビューでアセットまたはプロキシを右クリックし、[モニターの開始] を選択します。
- プロキシ/アセットのコンフィギュレーション パネルで、 [モニターの開始] をクリックします。
関連するアイコンは、モニタリング中であることを示す表示に変わります。
停止
Virtualize に仮想アセットおよびメッセージ プロキシに関連するイベントのレポートを停止させるには、次のいずれかの操作を行います。
- [Virtualize サーバー] ビューでアセットまたはプロキシを右クリックし、[モニターの停止] を選択します。
- プロキシ/アセットのコンフィギュレーション パネルで、 [モニターの停止] をクリックします。
ヒント
- イベントのモニターは、仮想アセット レベルまたはメッセージ プロキシ レベルで開始/停止できます。
- 複数の仮想アセットを選択し、そのすべてに対して右クリック コマンド 1 つでモニターの開始/停止ができます。
動画チュートリアルメッセージ プロキシからのトラフィックのモニターおよび記録
この動画では、メッセージ プロキシからのトラフィックをモニターおよび記録する方法を説明します。
イベントの参照および検索
[Parasoft イベント詳細] パースペクティブは Virtualize サーバー上で発生するイベント (受信したリクエスト メッセージ、送信したレスポンス メッセージ、エラーなど) の参照や検索に役立つ設計になっています。
このパースペクティブは次の方法で開くことができます。
- ワークベンチの右上のショートカット バーの [Parasoft イベント詳細] をクリックする。
- ショートカット バーで [パースペクティブを開く] ボタンをクリックし、[その他] を選択します。パースペクティブの選択ダイアログが開くので、 [Parasoft イベント詳細] を選択します。
- [ウィンドウ] メニュー > [パースペクティブを開く] > [その他] を選択します。パースペクティブの選択ダイアログが開くので、 [Parasoft イベント詳細] を選択します。
モニターしたイベントは [イベントログ ] ビューに発生した順番に表示されます。次のようなイベントが表示されます。
- 受信したリクエスト メッセージ
- 送信したレスポンス メッセージ
- データ ソースの使用状況 (どのデータ ソース行がレスポンス メッセージで使用されたか、など)
- エラー イベント (リクエストがメッセージに対応しなかった、不正なメッセージが送信された、など)
- セットアップ アクション スイートの実行イベント (アクション スイートについての詳細は、「セットアップ アクションの定義」を参照してください)
次の方法でイベントを検索できます。
目的 | 方法 |
---|---|
イベントの詳細を確認する | [イベント ログ ] ビューで関連するイベントを選択する |
現在の情報をクリアし、新しいセッションを開始する | [新規ログの開始] ボタンをクリックする |
最新の 5 つのログのうち 1 つを参照する | [イベントログ ] の [履歴] ドロップダウン メニューから任意のログを選択する |
メッセージ プロキシ イベントの参照
デプロイされたメッセージ プロキシをメッセージが通過するときに生成されたイベントを参照することは、テスト対象アプリケーションがどんなトラフィックをメッセージ プロキシを通して送信しているかを理解するのに役立ちます。一般的に、メッセージ プロキシを通過するリクエスト/レスポンス メッセージのペアは、次のようなイベントを生成します。
- 受信リクエスト: メッセージ プロキシによってメッセージが受信されたことを示します。メッセージを受信した HTTP パスまたはキュー名、 Virtualize サーバーのホスト名、およびメッセージの詳細を提供します。
- プロキシ送信リクエスト: プロキシが意図したターゲット サービスの宛先にメッセージを転送したことを示します。詳細には宛先とメッセージ コンテンツが含まれます。
- プロキシ受信レスポンス: プロキシがターゲット サービスからレスポンスを受信したことを示します。
- 送信レスポンス: プロキシがサービスから受信したレスポンスを呼び出し元 (テスト対象アプリケーション) へ転送したことを示します。
プロキシが仮想アセットのエンドポイントにメッセージを転送するように構成されている場合は、同じイベントが生成され、メッセージの宛先の詳細はそれを示すために URL または宛先の詳細が含まれることに注意してください。 しかし、プロキシ メッセージを受信する仮想アセットもモニターされている場合、それ自身のイベントが生成されます (一般的には、「受信リクエスト イベント」および「送信レスポンス イベント」の 2 つの成功したトランザクションです)。
イベントに対するフィルターの実行
[フィルター] ビューを使用して、フォーカスしたいイベントを絞り込むことができます。次のようにイベント ログにフィルターを実行できます。
目的 | 方法 |
---|---|
イベント ログに表示、および保存されるイベント数を制限する。 | [最大イベント数] の値を変更する。 |
「詳細」に指定のテキスト (大文字と小文字を区別する) を含むイベントにフォーカスする。 | [次を含むイベントのみ] に文字列を入力する。 |
仮想アセットやプロキシの応答条件に一致しないメッセージを隠す。 | [一致しないメッセージ] を無効にする。詳細については「About Unmatched Messages」を参照してください。 |
エラー イベントのみ表示する (メッセージの不一致または検証の失敗が原因のエラー)。 | [エラーのみ] を有効にする。 |
指定のサーバー、仮想アセット、またはレスポンダーからのイベントを表示/非表示にする。 | [チェック済みソースの イベント] を有効化/無効化する。 |
一致しないメッセージについて
「一致しないメッセージ」とは、仮想アセットやプロキシの応答条件に一致しないメッセージです。イベント ログが一致しないメッセージを表示するように設定されている場合、そして少なくとも 1 つの仮想アセットかプロキシがモニターされるように設定されている場合、レポートされるイベントには次のようなケースが含まれます。
- 仮想アセットまたはプロキシはメッセージを処理できなかった。
- 1 つ以上の仮想アセットがメッセージを処理したが、一致するレスポンダーを見つけることができなかった。
Virtualize サーバーによって受信されたメッセージが、 a) 仮想アセットやプロキシ パス条件に一致しない場合、または b) 仮想アセットの応答条件に一致するが、 .pva 内のレスポンダー応答条件がこのメッセージに一致しない場合、 2 つのイベントが記録されます。
- 着信メッセージ「受信リクエスト」イベントおよびメッセージ コンテンツ (認識不能なメッセージ」とラベル付されている)
- エラー「ログイベント: error」イベントおよび詳細
CTP でのイベント詳細の参照
[イベント詳細] パースペクティブは、特定の時間に発生した着信メッセージ、送信メッセージ、およびエラーの即時スナップショットを提供するよう設計されています。
長時間実行トランザクションおよびサーバー イベントの履歴解析の詳細には、 CTP のイベント参照機能を使用することを推奨します。
カスタム イベントのレポート
Extension Tool ( 詳細は「Extension Tool (カスタム スクリプト)」に記載) は、com.parasoft.api.ScriptingContext オブジェクトの report(IEvent) メソッドを呼ぶことによって、イベントログにカスタムイベントをレポートするのに使用できます。
次は Jython の例です。
from com.parasoft.api import Event def test(input, context): context.report(Event("Here I am!"))
より詳しい情報については、 Extensibility API Javadocs の com.parasoft.api.ScriptingContext および com.parasoft.api.IEvent を参照してください。この Javadocs を参照するには、[Parasoft] メニュー > [ヘルプ] > [拡張 API] をクリックします。
サードパーティ製モニタリング システムと Virtualize イベント モニタリングの統合
Virtualize サーバーのイベント モニタリングは JMS ブローカーを利用しています。サーバーとイベント購読者間でのイベントの伝達を容易にするために、 JMS 準拠のブローカーで設定できます。Parasoft ビルトイン プロバイダーが使用されている場合 (デフォルト設定)、サードパーティ製アプリケーションで JMS 上で Virtualize サーバー イベントを購読するために、次の設定を使用できます。
JNDI Connection URL: tcp://VirtualizeHostName:9617 JNDI Initial Context class: org.apache.activemq.jndi.ActiveMQInitialContextFactory JMS Connection Factory: ConnectionFactory Destination Name: PARASOFT_SERVER_EVENTS Destination type: Topic
Virtualize ホストのポートは、利用状況に基づいてサーバー起動時に動的に割り当てられるので注意してください。実際のポート番号をチェックするには、 [Virtualize サーバー] ビューからサーバーのコンフィギュレーション パネルを開くか、サーバーの設定ページ ([Parasoft] > [設定] を選択し、[Parasoft] > [サーバー] を選択) を開きます。
Virtualize サーバーのイベント モニタリング サービスによって出版される JMS メッセージは XML 形式です。一定のイベント タイプだけに興味がある場合、条件に合うイベントだけを受信するように JMS セレクター式を使用できます。
プロパティ名 | 値 | メッセージ タイプ |
---|---|---|
Request | true | false | 仮想アセットによって受信されたリクエスト |
proxy_request | true | false | プロキシによって受信されたリクエスト |
response | true | false | 仮想アセットによって送信されたレスポンス |
proxy_response | true | false | プロキシによって送信されたレスポンス |
Failures | true | false | レスポンダーの失敗イベント (検証の失敗など) またはプロキシ接続エラー イベント |
Error | true | false | エラー イベント (仮想アセットやプロキシに固有でないエラー) |
たとえば、仮想アセットへのリクエストやレスポンス、失敗、およびエラーを購読したいが、プロキシ メッセージのイベントは購読したくない場合、次の式を使用します。
- request=true or response=true or failures=true or error=true
コンシューマーを作成するときに JMS セレクター式を JMS セッション オブジェクトに渡すことができます。
- javax.jms.Session.createConsumer(destinationName, selectorExpression, true);
[Parasoft イベント詳細] パースペクティブ - GUI リファレンス
[Parasoft イベント詳細] パースペクティブの GUI は、デフォルトで次のビューを開きます。
[イベント ログ ] ビュー
このエリアには、送信したメッセージ、受信したメッセージ、およびエラーなどの仮想化関連のイベントを表示します。ここに表示されたアイテムを選択すると、さらに詳しい情報が [詳細] ビューに表示されます。直近 5 つのログが保存され、参照可能です。
たとえば、次のログは Virtualize サーバーのイベントを表示しています。
次のログは Virtualize サーバー イベントおよび SOAtest テスト イベント (イベント ログを有効にした状態で SOAtest によって実行されたテストのイベント) の両方を表示しています。
[詳細] ビュー
このビューは [イベント ログ ] ビューで選択されたイベントのより詳しい情報を提供します。
[フィルター ] ビュー
このビューは、イベントにフィルターを実行できます。詳細については、「イベントに対するフィルターの実行」を参照してください。