このセクションでは、データベースのモニタリングを構成する方法について説明します。

このセクションの内容:

Event Monitor と DB Tool の違い

Event Monitor を使用すると、テスト スイート内で各テストを実行した後に、データベースに対して SQL クエリーを実行できます。  

DB Tool も似た目的に使用できますが、Event Monitor のデータベース モードは、アプリケーションのログ メッセージがデータベースに書き込まれた結果としてイベントが発生したときにデータベースからレコードを取得するのにより適しています。 

さまざまな点で、Event Monitor は DB ツールとは異なります。

  • テスト スイートに Event Monitor を 1 つ追加するだけで、各テストの実行後に自動的にデータベース クエリーを実行できます。これによって、各テストの直後に個別に DB ツールを追加する必要がなくなります。
  • Event Monitor は遅延クエリーを実行できます ([オプション] タブの下の [各テスト実行終了後のポーリング遅延時間] オプションを参照してください)。この機能は、ログ記録データベースでは特に重要です。なぜなら、記録されるエントリが即時にはデータベースに到達しない可能性があるからです。
  • Event Monitor は、データベース エントリをテスト スイート内で発生するイベントの単一のフローに統合できます。一方、DB ツールには、ユース ケース シナリオの任意のポイントでさまざまなクエリーを独立して実行できる柔軟性があります。
  • Event Monitor は、テスト実行中にデータベースに追加されたエントリを分離するのに役立ちます。

設定

Event Monitor ツールをダブルクリックしてツール構成パネルを開きます。

イベント ソースの設定

[イベント ソース] タブをクリックし、以下の設定を行います。

プラットフォームプラットフォームのドロップダウン メニューから [Database] を選択します。
データベース接続設定[ローカル] を選択し、クエリーの対象とするデータベースの [ドライバー]、[URL]、[ユーザー名]、および [パスワード] を入力します。フィールドの入力に関する詳細については「データベース接続パラメーター」を参照してください。
制約 SQL クエリー (任意)

テスト実行前にデータベースに記録された最後の値を識別する値を入力します。Event Monitor はクエリーが単一の値を返すと期待します。通常、この値はテーブル キー、エントリ番号、またはタイムスタンプです。

ログ記録データベースにメッセージが集積され、各シナリオ実行後に消去/復元されない場合、制約クエリーを使用すると便利です。テスト スイートが実行される前にこのクエリーを実行することで、Event Monitor は既存のエントリとテスト実行中にデータベースに記録された新しいエントリを区別できます。

制約クエリーでは、よくSQL MAX 関数が使用されます。たとえば、上のクエリーは MESSAGE_LOG テーブルに Timestamp 型の MESSAGE_TIMESTAMP 列があると仮定しています。このクエリーは、その時点でデータベースに存在する最新のメッセージ エントリを表す単一の値を返します。Event Monitor は最初にこのクエリーを実行し、タイムスタンプ値を保存します。

イベント SQL クエリー

データ ベースのログ エントリまたはイベント エントリを取得するための SQL を指定します。たとえば、次のような SQL を指定します。

クエリーの例:

select * from MESSAGE_LOG
where MESSAGE_TIMESTAMP > $[CONSTRAINT]
order by MESSAGE_TIMESTAMP DESC

$[CONSTRAINT] は特別な SOAtest 変数であることに注意してください。この変数を指定すると、Event Monitor は最初の制約クエリー (前のステップを参照) で取得した値を自動的にイベント クエリーに挿入します。イベント クエリーは、テスト スイートの実行が完了した後 (そして Event Monitor の [オプション] タブで指定された遅延時間が経過した後) に実行されます。イベント クエリーは、テスト実行後にデータベースに追加された行を取得します。

イベント クエリーでの $[CONSTRAINT] の使用は必須ではありません。

イベント モニタリング オプションの設定

必要に応じて [オプション] タブの設定を変更します。


イベント モニターを実行する前にイベント ビューアーを消去するEvent Monitor がモニタリングを開始する際に自動的にイベント ビュー (テキスト ビューおよびグラフィカル ビュー) を消去するには、このオプションを有効化します。
連結されたツールへの XML イベント出力にテスト実行イベントを含める[イベント ビューアー] タブおよび XML 出力に、モニターされたメッセージとイベントだけを表示するには、このオプションを有効化します。このオプションは、各テストの開始と終了を表示するかどうかも示します。テスト スイート内に複数のテストがあり、イベントの識別を容易にしてテストの実行と関連付けたい場合、このオプションをオンにすると役に立ちます。
モニターされたメッセージを CDATA でラップして XML イベント出力が整形式になることを保証

モニターされるイベントのメッセージ コンテンツが整形式の XML であることがわかっている場合は、このオプションを無効化するべきです。無効化すると、XPath を使用してイベント内のメッセージにアクセスし、XML Transformer でメッセージのコンテンツを抽出したり、XML Assertor ツールで検証することが可能です。

メッセージのコンテンツが XML ではない場合、このオプションを有効化します。有効化すると、すべてのメッセージ コンテンツをエスケープすることで、Event Monitor ツールの XML 出力 (イベント ビューアーに表示される内容ではなく、Event Monitor に連結されたツールへの XML イベント出力) が整形式であることが保証されます。この場合、メッセージは単に親要素の文字列コンテンツとなり、XPath を使用してアクセスすることはできなくなります。

Diff ツールの XML モードは文字列コンテンツもサポートしていることに注意してください。つまり、このオプションの設定にかかわらず、Diff ツールはメッセージを XML として比較でき、XPath を使用して値を除外することもできます。

モニターが開始するのを待機する最大の時間 (ミリ秒)テスト スイートの他のテストを SOAtest が実行する前に、イベント ソースへの接続の完了を Event Monitor が待機する最大時間を指定します。Event Monitor からイベント ソースへの接続で問題がある場合に、テストのイベントをキャプチャーでき、他のテストの実行を過度にブロックするのを防止できます。イベント ソースへの接続にデフォルト設定よりも時間がかかる場合は、値を増やしてください。デフォルトは 3000です。
モニター実行の最大継続時間 (ミリ秒)テスト スイート内の他のテストがハングしたり、他のテストが実行されていない場合 (たとえばテスト スイートとは別に Event Monitor テストを実行し、カスタム アプリケーションを使用してシステムにメッセージを送信する場合など) にテストがタイムアウトする時間を指定します。
各テスト実行終了後のポーリング遅延時間 (ミリ秒)テストの終了からイベントの取得まで Event Monitor が待機する時間を指定します。

注意

  • [イベントビューアー] タブは、イベント SQL クエリーの実行で取得された各行をイベント シーケンス フロー中のボックスとして表示します。ボックスをダブルクリックすると、詳細を表示するダイアログが開きます。
  • データベースをモニターする Event Monitor に XML ツールを連結できます。データベース行は XML で出力されるため、Diff ツールによる比較や XML Assertor ツールによる検証などが可能です。
  • No labels