BPEL デザイナー開発者ガイド: BPEL プロセスのテストとデバッグ
最終更新日:2006 年 10 月 23 日
目次
BPEL デザイナー開発者ガイド
BPEL プロセスのテスト
配備したビジネスプロセスのテストは、BPEL サービスエンジンランタイムへ SOAP メッセージを送信するリモートパートナーサービスとして機能するテストケースの使用を含みます。
BPEL サービスエンジン実行環境は、SOAP メッセージを受信し、BPEL プロセスのインスタンスを作成して、そのインスタンスの実行を開始します。BPEL プロセスは、多数の稼働中のインスタンスを持つことができます。BPEL サービスエンジン実行環境は、メッセージを受信し、相互関係を使用して受信メッセージを適切なプロセスインスタンスへルーティングします。まだインスタンスが存在していない場合は、新しいインスタンスが作成されます。
配備したビジネスプロセスアプリケーションをテスト実行するためには、BPEL サービスエンジン実行環境へ SOAP メッセージを送信するリモートパートナーサービスとして機能するようにテストケースを構成します。
テストケースの作成と実行
テスト結果を得るためには、次のことを行う必要があります。
-
テストケースを追加して、BPEL 操作に結合します。
-
テストプロパティーを設定します。
-
テスト入力をカスタマイズします。
-
テストケースを実行します。
ここで説明する手順はすべて、次のことが行われていることが前提です。
-
テストする操作をコード化する .wsdl ファイルを含む、BPEL モジュールプロジェクトが作成されている。
-
BPEL モジュールプロジェクトが正常に構築されている。
-
BPEL モジュールプロジェクトが複合アプリケーションプロジェクトに JBI モジュールとして追加されている。
テストケースの追加/結合
テストケースを追加して、BPEL 操作に結合するには、次の手順に従います。
-
IDE プロジェクトタブで、複合アプリケーションプロジェクトを開き、そのプロジェクトの「テスト」フォルダを表示します。
-
「テスト」を右クリックし、ポップアップメニューから「新規テストケース」を選択します。
「新規テストケース」ウィザードが起動します。
-
「テストケース名を入力」ステップで、テストケースの名前を入力して「次へ」をクリックします。
-
「WSDL ドキュメントの選択」ステップで、BPEL モジュールプロジェクトを開き、テストする操作を含む .wsdl ファイルを選択して、「次へ」をクリックします。
-
次のステップで、テストする操作を選択し、「完了」をクリックします。
プロジェクトツリーの「テスト」の下に、Input.xml および Output.xml の 2 つのファイルを含む、大文字の「T」という新しいフォルダが作成されます。
「ファイル」タブ内のテストケースを見ると、Concurrent.properties が 3 番目のファイルとして表示されています。
テストプロパティーの設定
テストプロパティーを設定するには、次の手順に従います。
-
テストケースを右クリックして、ポップアップメニュー項目の「プロパティー」を選択します。
-
テストケースの次のプロパティーを設定します。
-
説明: 文字列
-
ユーザー入力の項目。テスト内容について入力します。
-
宛先: URL (.wsdl ファイルの <soap:address location="THIS"> タグから)
-
テストする Web サービスの場所を指定します。
-
SoapAction (デフォルト:空白)
-
-
入力ファイル (読み取り専用。システムによって生成)
-
入力ファイルの名前です。
-
出力ファイル (読み取り専用。システムによって生成)
-
出力ファイルの名前です。
-
並行スレッド: 整数。デフォルト = 1
-
各スレッドは、複数回テストケースを起動できます (次のプロパティーを参照)。したがって、conc=2 および inv=3 の場合、テストケースは 6 回実行されます (2 スレッド、それぞれ 3 回実行)。
-
スレッド当たり呼び出し: 整数。デフォルト = 1
-
スレッドごとのテストケースの実行回数です。
-
テストのタイムアウト (秒): 整数。デフォルト = 30
-
各スレッドが終了しなければならない時間です。指定した時間で終了しない場合は、例外がスローされます。
-
スループット計算: boolean
-
チェックボックスが選択されている場合は、スループット統計が計算されます。例:テストをスレッド 2 つおよびスレッドごとの実行を 3 回に指定し、その 6 回の実行にかかる時間を 15 秒とすると、統計ではそれぞれ平均 2.5 秒かかると記録されます。
-
比較の種類: プルダウンリスト:
-
-
identical: 出力および実際の出力を文字のストリームとして扱います。
-
binary: 出力および実際の出力をバイトのストリームとして扱います。
-
equals: 出力および実際の出力を XML ドキュメントとして扱います。
-
機能の状態: プルダウンリスト:
-
-
progress: 実際の結果に関わらず、完了したテストを「success」として記録します。
-
done: テストの実際の結果を記録します。
テスト入力のカスタマイズ
テスト入力をカスタマイズするには、次の手順に従います。
-
プロジェクトツリーで、Input.xml を右クリックし、「編集」をクリックします。
-
任意で、その内容を変更します。たとえば、<value>?string?</value> という部分で ?string? 内をクリックし、任意の長さの文字列に置き換えます。ただし、この文字列には、XML セマンティクスを使用しないかぎり、< (小なり記号) または & (アンパサンド) を含めないでください。
-
終了したら、「保存」をクリックします。
-
Output.xml を右クリックし、「編集」をクリックして、ファイルの次の内容を確認します。
-
ファイル内が空白である。これは、テストが実行されたときに特別な処理をトリガする、特別な状態です。
-
テストを実行すると、現在の出力は常に Output.xml の内容と比較され、検出された相違はテストケースフォルダの下にある Actual_Actual_yymmddhhmmss.xml ファイルに格納されます。ただし、Output.xml が空で始まる特殊なケースでは、出力は Output.xml に記述されます。
-
2 回目以降の実行では、Output.xml は空ではないので、内容が保持されます。つまり、前回の出力内容が、新しい結果で上書きされることはありません。
テスターの実行
単一のテストケースを実行するには、次の手順に従います。
-
プロジェクトツリーで、テストケースフォルダを右クリックし、「実行」を選択します。
プロジェクトのすべてのテストケースを実行するには、次の手順に従います。
-
プロジェクトを選択し、Alt-F6 を押します。または、プロジェクトを右クリックし、ポップアップメニューから「プロジェクトをテスト」を選択してもかまいません。
テストケースの結果の確認
-
1 度目の実行では、失敗したと正しく記録されます。作成された出力内容が (空の) Output.xml ファイルと一致せず、ファイルの空の内容が最初の実行の結果出力に置き換えられます。
-
入力を変更せずにテストを再度実行すると、2 度目以降の実行では成功が記録されます。これは、出力内容が Output.xml の内容と一致するからです。
-
Input.xml の値を変更し、テストを再実行すると、設定したプロパティーに応じて次のような結果になります。
-
「機能の状態」プロパティーを「progress」に設定した場合は、不一致が発生しても、テストが成功したとみなされます。
-
「機能の状態」プロパティーを「done」に設定した場合は、テストは失敗したとみなされます。
-
「myTestcase1」を右クリックして、ポップアップメニューから「相違」をクリックすると、最新の出力内容と Output.xml の内容との相違点がウィンドウに表示されます。過去のテスト結果を参照するには、Actual_yymmddhhmmss.xml ファイルのドロップダウンリストから選択し、「再表示」ボタンをクリックします。
先頭へ
BPEL プロセスのデバッグ
BPEL プロセスのデバッグは、主に Java アプリケーションのデバッグの場合と同じ一般的な原則に従います。BPEL プロセスのデバッグは、ソースコード内または図上でブレークポイントを設定し、デバッグセッション内でプロセスを 1 ステップずつ実行することによって行います。
BPEL プロセスのデバッグ手順
BPEL プロセスのデバッグの主な手順は、次のとおりです。
-
Sun Java Application Server が動作していることを確認します。
-
BPEL エンジンの DebugEnabled プロパティーが「true」に設定されていることを確認します。
-
BPEL プロセスをソースビューまたはデザインビューで開きます。
-
コード内または図上でブレークポイントを設定します。任意に、XPath 式のウォッチポイントをプロセスに追加します。
-
デバッグセッションを開始します。デバッグセッションの開始を確認するために、「BPEL デバッガコンソール」ウィンドウを監視します。
-
デバッグセッションでは、「BPEL プロセスのインスタンス」ウィンドウで BPEL プロセスの実行中のインスタンスを参照し、「BPEL 変数」ウィンドウで変数の値を調べ、「ウォッチポイント」ウィンドウで XPath 式の値を監視します。
-
インスタンスがブレークポイントで停止したら、コードまたは図を 1 ステップずつ実行して状態を調べます。
-
デバッグセッションを終了します。
BPEL デバッグセッションの開始と終了
デバッグセッションは、BPEL デバッガをBPEL サービスエンジンに接続すると開始されます。BPEL サービスエンジン上で実行できるデバッグセッションは 1 つだけです。
デバッグセッションが開始されたあと、プロセスインスタンスを 1 ステップずつ実行して、プロセスインスタンスの変数と XPath 式の値のどちらかまたは両方を調べることができます。
デバッグ環境を準備するには、次の手順に従います。
-
「実行時」ウィンドウで、Sun Java System Application Server が動作していることを確認します。Application Server にサブノードがあり、緑色の三角が付いていれば、Application Server は動作しています。
-
BPEL ソースにブレークポイントを設定します。
-
ソースビューでブレークポイントを設定するには、ブレークポイントを設定する行の横をクリックします。
-
図でブレークポイントを設定するには、デザインビューに切り替えて、要素を右クリックし、ポップアップメニューから「ブレークポイントを切り替え」を選択します。
ブレークポイントを持つ要素の上には、赤い四角が表示されます。
-
「ブレークポイントを切り替え」ホップアップメニューコマンドは、ナビゲータの BPEL 論理ビュー内の要素についても使用できます。ブレークポイントを持つ要素の場合、ナビゲータでは、次のスクリーンショットの「ReceiveItinerary」に示したような赤い小さな四角が表示されます。
-
任意で、XPath 式を監視するウォッチポイントを追加できます。ウォッチポイントを追加するには、監視する XPath 式をコピーし、メインメニューから「実行」>「ウォッチポイントを追加」を選択して、「ウォッチポイント式」フィールドに式をペーストします。「了解」をクリックします。
注: コードには存在しないがデバッグの観点から意味を持つ XPath 式を追加することもできます。
-
初めてデバッグする場合は、BPEL エンジンの「DebugEnabled」プロパティーを「true」に設定します。
-
「実行時」ウィンドウで、「サーバー」>「Sun Java System Application Server」>「サービスエンジン」を展開します。
-
「com.sun.bpelse-1.0-2」ノードを右クリックし、「プロパティー」を選択します。
-
「DebugEnabled」を「true」に設定します。
BPEL エンジン上でデバッグセッションを開始するには、次の手順に従います。
-
「実行」>「デバッガを接続」を選択します。
-
「接続」ダイアログボックスで、「BPEL デバッガ」をデバッガの種類として選択します。
-
ホスト名が「localhost」、ポートが「3343」であることを確認します。
-
「了解」をクリックします。
この時点で、IDE は BPEL エンジン上にデバッグセッションを確立します。確認のために、「BPEL デバッガコンソール」ウィンドウを監視してください。接続が完了するまでに、多少時間がかかる場合があります。正常に完了すると、「セッション」ウィンドウに新しいセッションが表示され、「BPEL デバッガコンソール」に次のメッセージが表示されます。
22:17:55 Connecting to localhost:3343
22:17:55 Debug session started
Java デバッグセッションを同時に実行している場合など、複数のデバッグセッションがあるときに現在のセッションを変更するには、「セッション」ウィンドウでそのセッションの名前をダブルクリックします。または、現在のセッションにするセッションを右クリックし、「現在に設定」を選択します。
そのセッションが現在のセッションになり、「BPEL プロセスのインスタンス」ウィンドウ、「ウォッチポイント」ウィンドウ、および「BPEL 変数」ウィンドウが更新され、新しい現在のセッションに関連したデータが表示されます。
デバッグセッションを終了するには、「セッション」ウィンドウで、停止するセッションのポップアップメニューを開いて「完了」を選択するか、ツールバーで「デバッガセッションを終了」を選択します。デバッグセッションが終了したことを示すメッセージが「BPEL デバッガコンソール」に表示されます。
すべてのデバッグセッションを終了するには、「セッション」ウィンドウで、任意のセッションを右クリックして「すべてを完了」を選択します。
BPEL デバッガウィンドウ
デバッグセッションが開始されると、IDE 編集領域の下にデバッガウィンドウが表示されます。「セッション」、「BPEL プロセスのインスタンス」、「BPEL 変数」の各ウィンドウには、現在のデバッグセッションで実行されている BPEL プロセスに関連した情報が入っています。
注: デバッガウィンドウが表示されない場合は、「ウィンドウ」>「デバッグ」>「BPEL」>「ウィンドウ名」を選択します (たとえば、「ウィンドウ」>「デバッグ」>「BPEL」>「BPEL 変数」)。
「呼び出しスタック」、「ブレークポイント」、「ウォッチポイント」は、標準的な IDE デバッガウィンドウです。「呼び出しスタック」ウィンドウは BPEL プロセスのデバッグには使用されないので、無視してかまいません。「ブレークポイント」ウィンドウには、BPEL プロセス内のブレークポイントを含めて、IDE で現在設定されているすべてのブレークポイントが反映されます。「ウォッチポイント」ウィンドウには、デバッグ中に監視することを指定したすべての式が一覧表示されます。
デバッガウィンドウ間を切り替えるには、ウィンドウ名のあるタブをクリックします。
「セッション」ウィンドウ
「セッション」ウィンドウには、Java と BPEL のデバッグセッションも含めて、現在 IDE で実行されているすべてのデバッグセッションが一覧表示されます。BPEL エンジン用に開始できるセッションは 1 つだけであり、現在のセッションにできるのも 1 つのセッションだけです (現在のセッションは太字で表示されます)。「BPEL プロセスインスタンス」、「ウォッチポイント」、「BPEL 変数」などのほかのデバッガウィンドウには、現在のデバッグセッションのみに関連するプロセスのインスタンス、式、および変数が表示されます。
各セッションについて提供される情報は、次のとおりです。
-
名前。セッションの名前。
-
状態。 セッションは、開始中か実行中のどちらかです。
-
言語。このセッションでデバッグされるアプリケーションの言語。
ポップアップメニューで選択可能なセッションに、次のアクションを実行できます。
-
現在に設定。選択したセッションを現在のセッションにします。
-
完了。選択したセッションを終了します。
-
すべてを完了。すべてのデバッグセッションを終了します。
「BPEL プロセスのインスタンス」ウィンドウ
「BPEL プロセスのインスタンス」ウィンドウには、現在のデバッグセッション内の BPEL エンジン上で実行されているすべての BPEL プロセスインスタンスが一覧表示されます。現在のセッションが BPEL デバッガセッションでない場合、このウィンドウは空です。「BPEL プロセスのインスタンス」ウィンドウには、BPEL エンジン上でデバッグセッションが開始されるか BPEL デバッガセッションが現在のセッションになったときに、情報が表示されます。
各プロセスインスタンスの表示される情報には、インスタンス名とインスタンスの状態があります。プロセスインスタンスの状態は、次のいずれかです。
-
完了。 インスタンスは、BPEL エンジン上で完了しました。
-
実行中。 インスタンスは、BPEL エンジン上で現在実行されています。
-
中断。 インスタンスは、たとえばプロセスインスタンスがブレークポイントに到達したなど、何らかの理由で中断されました。
-
不明。 このインスタンスの状態は不明です。
「BPEL 変数」ウィンドウ
「BPEL 変数」ウィンドウには、現在のプロセスインスタンスと現在の位置に関する BPEL 変数とその値が一覧表示されます。現在の位置は、現在のプロセスインスタンスが中断された場所です。現在のプロセスインスタンスを変更すると、「BPEL 変数」ウィンドウ内のレコードが更新され、新しいプロセスインスタンスと新しい現在位置の変数が反映されます。
各変数について表示される情報は、変数名と値です。
「ウォッチポイント」ウィンドウ
「ウォッチポイント」ウィンドウには、監視する XPath 式の一覧が表示されます。デバッグセッションの前か実行中に、ウォッチポイントを明示的に追加します。「ウォッチポイント」ウィンドウには、式とその値が表示されます。式の値は、プロセスのロジックに応じて、プロセスが進むにつれて変更される場合があります。
ブレークポイントを使用した BPEL プロセスのデバッグ
ブレークポイントは、ソースコードのその位置でプロセスの実行を中断するようデバッガに指示するのに使用します。BPEL プロセスがブレークポイントに達すると、BPEL プロセスが中断され、変数の値の検査やコードのステップ実行などのデバッグ操作を実行できます。
現在 IDE 内で設定されているすべてのブレークポイントを表示および編成するには、「ウィンドウ」>「デバッグ」>「BPEL」>「ブレークポイント」(Alt-Shift-5) を選択して「ブレークポイント」ウィンドウを開きます。各ブレークポイントについて、そのブレークポイントが置かれているソースファイル名と行を表示できます。
BPEL プロセスにブレークポイントを設定して、デバッグセッションを開始したあとは、ブレークポイントに達したプロセスは中断されます。プロセスインスタンスの状態は、「BPEL プロセスのインスタンス」ウィンドウで確認できます。
ブレークポイントに到達したプロセスインスタンスをデバッグするには、次の手順に従います。
プロセスインスタンスの実行が中断されたあと、「実行」メニューまたはツールバーで次のコマンドを選択します。
-
継続 (Ctrl-F5)。 プロセスインスタンスが次のブレークポイントに到達するまで、または完了するまで、現在のプロセスインスタンスを実行します。インスタンスの状態は、「実行中」に変化します。
-
ステップイン (F7)。 次の BPEL アクティビティーまでステップ実行します。ステップ実行は、BPEL 言語のアクティビティーの細分度でのみサポートされ、それより細かい細分度ではサポートされません。ステップ実行すると、現在の行インジケータまたは図上の位置が前進し、「BPEL 変数」ウィンドウと「ウォッチポイント」ウィンドウの内容が適宜変更されます。
-
デバッグセッションを完了 (Shift-F5)。 現在のデバッグセッションを終了します。
BPEL ソースコードからブレークポイントを削除するには、ブレークポイントがある行にカーソルを置いて「実行」>「ブレークポイントを切り替え」を選択するか、ブレークポイントがある行の左余白をクリックします。または、図で、ブレークポイントを持つ要素を右クリックして、ポップアップメニューから「ブレークポイントを切り替え」を選択します。
先頭へ