ヘッダーをスキップ
Oracle BPEL Process Manager開発者ガイド
10g(10.1.3.1.0)
B31874-03
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

20 BPELプロセスのテスト

この章では、BPELプロセスのテストを自動化するテスト・ケースの作成、デプロイおよび実行方法について説明します。テスト・ケースを使用すると、本番環境にデプロイする前に、BPELプロセスとWebサービス・パートナの相互作用をシミュレートできます。これにより、本番環境へのデプロイ準備が完了するまでに、プロセスとWebサービス・パートナの相互作用が予期したとおりであることを確認できます。

この章の内容は次のとおりです。


関連項目:

BPELテスト・スイートのサンプル・ファイルは、次の場所にあります。
  • SOA_Oracle_Home¥bpel¥samples¥references¥BPELTest

  • SOA_Oracle_Home¥bpel¥samples¥demos¥BPELTest


20.1 BPELテスト・フレームワークの概要

Oracle BPEL Process Managerは、BPELプロセスに対して反復可能なテストを作成して実行するための、自動化されたテスト・スイート・フレームワークを提供します。

テスト・スイート・フレームワークの機能は、次のとおりです。

次の各項では、テスト・スイートの概念の概要を説明します。

20.1.1 テスト・ケースの概要

テスト・フレームワークは、次の2つのタイプのテスト・ケースをサポートしています。

  • ユニット・テスト: テスト・スイートの単一テスト・ケースを表します。たとえば、製品に関するオファーが2つのWebサービス仕入先に発行されるBPELプロセスがあるとします。テスト・スイートにテストを作成して、このようなBPELプロセスとの相互作用における2つのWebサービス・パートナの動作をエミュレートできます。

  • 複合テスト: BPELパートナをエミュレートするかわりに、テスト・ケース情報を使用して起動されるテストで構成されます。たとえば、ヒューマン・ワークフロー・ステップを含んだサブプロセスをコールするBPELプロセスがあるとします。2つのBPELプロセス間の相互作用をテストする必要はありますが、ヒューマン・ワークフローの承認ステップを手動で実行する必要はないとします。この場合は、テスト・ケース名を起動時にサブプロセスに渡すことで、メイン・プロセス用の複合テストを作成できます。このテスト・ケースでは、ヒューマン・ワークフロー・ステップをエミュレートできます。これは、ユーザー操作を必要としないことを意味します。

20.1.2 テスト・スイートの概要

テスト・スイートは、1つ以上のテスト・ケースの論理的な集合で構成されます。各テスト・ケースには、テスト・インスタンスの実行時に実行される一連のコマンドが含まれます。テスト・スイートを実行することをテスト実行と呼びます。各テストは単一のBPELインスタンスに対応します。

20.1.3 エミュレーションの概要

エミュレーションにより、BPELプロセスが実行中に相互作用するWebサービス・パートナの動作をシミュレートできます。パートナ・リンクを起動するかわりに、レスポンスを指定できます。

20.1.4 アサーションの概要

アサーションにより、変数データやプロセス・フローを検証できます。次のタイプのアサーションを実行できます。

  • 単純な値のアサート: 選択した文字列変数または数値変数の値を、予想される値と比較します。比較に失敗すると、定義しておいたエラー・メッセージが表示されます。

  • XMLのアサート: XML文書全体の要素値を予想される要素値と比較します。比較に失敗すると、定義しておいたエラー・メッセージが表示されます。

  • アクティビティ実行アサート: アクティビティを指定した回数だけ実行します。これにより、アクティビティが適切な回数だけ実行されることを確認できます。このアサートは、プロセス・フローの検証に役立ちます。

20.1.5 プロセス・コード・カバレッジの概要

コード・カバレッジは、実行されたテストの完全性を計算するための方法を提供します。完全性は、BPELプロセス内で定義された単純アクティビティの数に対する、1回以上実行された単純アクティビティの割合として計算されます。単純アクティビティは、invoke、receive、replyおよびassignなど、構造化されていないアクティビティです。

20.1.6 JUnitサポートの概要

JUnitは、Javaアプリケーションのリグレッション・テストを作成する際に使用するオープン・ソースのテスト・フレームワークです。また、ユニット・テスト・フレームワークに使用するxUnitアーキテクチャのインスタンスです。

デフォルトでは、テスト・スイート実行中にレポートがJUnit XML書式で作成されます。


注意:

レポートはJUnit XML書式で表示されますが、レポートの作成元となるテストはJUnitテストではなくOracle BPEL Process Managerテストです。

20.2 テスト・スイートのコンポーネント

この項では、テスト・ケースを構成するテスト・コンポーネントについて説明します。例としてPriceFinderデモンストレーションを使用します。これらのテストを作成してプロセスにインポートする方法については後述します。

この項の内容は次のとおりです。


関連項目:

  • SOA_Oracle_Home¥bpel¥samples¥demos¥BPELTest¥PriceFinder

  • SOA_Oracle_Home¥bpel¥samples¥references¥BPELTest


20.2.1 プロセスの開始

最初に、プロセスの操作を定義します。次のセクションでは、PriceFinderプロセスを開始するinitiateの操作が定義されています。また、開始ペイロードも定義されています。

<BPELTest processName="PriceFinderWithTests"
          xmlns="http://xmlns.oracle.com/bpel/instancedriver">
   <initiate operation="initiate">
      <inboundMessage>
         <part name="payload">
            <content>
               <PriceProviderProcessRequest
 xmlns="http://xmlns.oracle.com/PriceProvider">
                  <manufacturer
 xmlns="http://xmlns.oracle.com/PriceProvider">Oracle</manufacturer>
                  <ItemName xmlns="http://xmlns.oracle.com/PriceProvider">BPEL
 PM</ItemName>
                  <customerLocation
 xmlns="http://xmlns.oracle.com/PriceProvider">94065</customerLocation>
               </PriceProviderProcessRequest>
            </content>
         </part>
      </inboundMessage>
   </initiate>
. . .
. . .

20.2.2 エミュレーション

エミュレーションを作成して、BPELプロセスがWebサービス・パートナから受け取るメッセージ・データをシミュレートします。PriceFinderは、次の2つの価格設定サービスを起動します。

  • FlakyPriceProvider

  • FreeShippingPriceProvider

次のテスト・コードは、Oracle BPEL Process Managerに対して、最初にFreeShippingPriceProviderサービスのアウトバウンドの起動をスキップしてから、レスポンスの受信をエミュレートするように指示しています。

<BPELTest processName=LoanFlow" processRevision="1.0"
             xmlns="http://xmlns.oracle.com/bpel/instancedriver"
. . .
. . .
    <!-- *****************************************
         Skip outbound invoke
         ***************************************** -->
    <activityDriver name="FreeShippingInvoke">
      <emulate/>
    </activityDriver>
    <!-- *****************************************
         Emulate the FreeShippingPriceProvider Service
         ***************************************** -->
    <activityDriver name="FreeShippingReceive" firstIteration="1"
                   lastIteration="1">
      <emulate duration="PT">
         <inboundMessage>
            <part name="payload">
               <content>
<PriceProviderProcessResponse xmlns="http://xmlns.oracle.com/PriceProvider">
    <itemPrice>70</itemPrice>
    <shippingCost>0</shippingCost>
    <deliveryTime>P3D</deliveryTime>
</PriceProviderProcessResponse>
               </content>
            </part>
         </inboundMessage>
      </emulate>   </activityDriver>
. . .
. . .

最初のテストでは、emulate要素は空になっています。これは、このアクティビティが一方向のinvokeでありスキップされるためです。第2のテストでは、receiveアクティビティがエミュレートされます。これは、インバウンド・メッセージを指定する必要があることを意味します。

20.2.3 アサーション

アサーションを作成して、BPELプロセス実行中の特定時点で変数またはXML文書全体を検証します。

<BPELTest processName=LoanFlow" processRevision="1.0"
. . .
. . .
 <activityDriver name="choosePrice">
    <assertValue variableName="outputVariable" partName="payload"
                 comparisonMethod="number" fatal="true" patternMatch="false">
      <message>The item price is incorrect!</message>
      <actualPath>/ns2:PriceProviderProcessResponse/ns2:itemPrice</actualPath>
      <expected>65</expected>
    </assertValue>
. . .
. . .

このテストでは、Oracle BPEL Process Managerに対して、choosePriceアクティビティの完了後にoutputVariable変数内の品目価格コンテンツが指定のコンテンツと一致することを確認するように指示しています。


注意:

テスト・ケース・コンテンツは、Oracle BPEL Controlで監査証跡から作成することもできます。

20.2.4 含まれるファイル

通常、テストの大部分は様々なテスト・ケース間で同一です。テスト・ファイルの大きいセクションを複製しなくてもよいように、テストに他のテストを含め、特定のテストを選択的に上書きして様々なテスト・ケースを作成できます。これをベースライン・テストと呼びます。ベースライン・テスト自体は実行されず、他のテストに含めるためにのみ存在します。

ベースライン・テストをテスト・ケースに含めると、ベースライン・テストの内容がすべてテスト・ケースに含まれることになります。ベースライン・ファイル内の特定のアクションが不要な場合は、テスト・ケース内で上書きできます。

たとえば、「プロセスの開始」に示したプロセスの操作およびペイロード情報をbaseline.xmlという別のファイルに定義できます。ベースライン・テストは、Oracle JDeveloperでテスト・スイートのincludesディレクトリに格納する必要があります。

メイン・テスト・ケース・ファイルでは、このファイルを次のようにコールします。

<BPELTest processName="PriceFinderWithTests"
          xmlns="http://xmlns.oracle.com/bpel/instancedriver"
   <include>baseline.xml</include>
. . .
. . .

関連項目:

これらのテスト・コンポーネントの作成方法は、「Oracle JDeveloperでのテスト・スイートの作成」を参照してください。

20.3 Oracle JDeveloperでのテスト・スイートの作成

最初にテスト・スイートを作成してから、テスト・ケースを作成またはインポートします。テスト・スイートにテスト・ケースを追加するには複数の方法があります。

この項の内容は次のとおりです。


注意:

テスト・スイート名またはテスト・ケース名としてマルチバイト文字列を入力しないでください。マルチバイト文字列を入力すると、Oracle BPEL Controlからテストを実行するときにエラーが発生します。

20.3.1 Oracle JDeveloperでのテスト・スイートの作成

この項では、Oracle JDeveloperでBPELプロセスのテスト・スイートを作成する方法について説明します。

  1. アプリケーション・ナビゲータで、テスト・スイートを作成するBPELプロセスを開きます。

    これにより、「インテグレーション・コンテンツ」の下に「テスト・スイート」フォルダが表示されます。

  2. 「テスト・スイート」を右クリックし、「テスト・スイートの作成」を選択します。

    図ts_create.gifの説明が続きます
    図ts_create.gifの説明

  3. テスト・スイート名(logicTestなど)を入力します。

  4. 「OK」をクリックします。

    テスト・スイートがアプリケーション・ナビゲータ「テスト・スイート」フォルダの下に作成されます。

    図ts_dir.gifの説明が続きます
    図ts_dir.gifの説明

    次のオペレーティング・システム・ディレクトリも作成されます。

    JDev_Oracle_Home¥jdev¥mywork¥application_name¥
    process_name¥bpel¥testsuites¥test_suite_name
    
    

    さらにテスト・ファイルを追加できるように、test_suite_name: includesおよびmessagesにも2つのサブディレクトリが作成されます。これらのサブディレクトリは、それぞれ「テスト・スイートの編集」ウィンドウの「含む」タブと「メッセージ・インスタンス・ファイル」タブに表示されます。説明は、「Oracle JDeveloperでのテスト・ケースのインポート」の手順1を参照してください。


    注意:

    他のテスト・スイート内にはテスト・スイートを作成できません。ただし、テスト・スイートをサブディレクトリ単位で編成することはできます。

20.3.2 Oracle JDeveloperでのテスト・ケースのインポート

この項では、Oracle JDeveloperでテスト・ケースをテスト・スイートにインポートする方法について説明します。

  1. 「Oracle JDeveloperでのテスト・スイートの作成」の手順3で入力したテスト・スイート名を右クリックし、「テスト・スイートの編集」を選択します。

    「テスト・スイートの編集」ウィンドウが表示されます。

    図ts_edit.gifの説明が続きます
    図ts_edit.gifの説明

    テスト・ケースのコンテンツは、手動で作成する方法と、Oracle BPEL Controlからの監査証跡の出力を介して作成する方法があります。作成したファイルをOracle JDeveloperにインポートします。アプリケーション・ナビゲータでテスト・ケースを右クリックして「XMLの検証」を選択すると、そのテスト・ケースを検証できます。

    このウィンドウは、テスト・ケースのインポートに使用する次のタブで構成されています。

    タブ 説明
    一般 このタブでは、テスト・スイートにテスト・ケースを追加できます。

    テスト・ファイルを追加するには「追加」をクリックします。これらのファイルは次のディレクトリに追加されます。

    JDev_Oracle_Home¥jdev¥mywork¥application_name¥
    process_name¥bpel¥testsuites¥test_suite_name
    

    このテスト・ファイルをベースライン・テストとして選択することもできます。ベースライン・テストは、他のユーザーがインポートして使用できる汎用テストです。これらのファイルを使用すると、共通するテスト・アクションを除外できるため、複数のファイルで反復する必要がなくなります。

    含む このタブでは、ベースライン(含める)・テスト・ケースを追加できます。

    ベースライン・テスト・ファイルを追加するには「追加」をクリックします。これらのファイルは次のディレクトリに追加されます。

    JDev_Oracle_Home¥jdev¥mywork¥application_name¥
    process_name¥bpel¥testsuites¥test_suite_name¥includes
    

    ベースライン・ファイルは、それ自体は実行されない汎用テストで構成されます。これらのテストは他のユーザーによりインポートされ、コールされます。

    ベースライン・テストをテスト・ケースに含めると、ベースライン・テストの内容がすべてテスト・ケースに含まれることになります。ベースライン内の特定のアクションが不要な場合は、テスト・ケース内で上書きできます。

    メッセージ・インスタンス・ファイル このタブでは、エミュレートされるメッセージ・インスタンスのテスト・ケースを追加できます。

    メッセージ・インスタンス・テスト・ファイルを追加するには「追加」をクリックします。これらのファイルは次のディレクトリに追加されます。

    JDev_Oracle_Home¥jdev¥mywork¥application_name¥
    process_name¥bpel¥testsuites¥test_suite_name¥messages
    

    メッセージ・インスタンス・ファイルを使用すると、Webサービス・パートナから戻されたメッセージ・データをシミュレートできます。受信したメッセージ・データをこのXMLファイルに手動で入力するか、Oracle BPEL Controlの監査証跡出力からコピーできます。

    メッセージ・インスタンス・ファイルをインポートすると、テスト・ファイルのサイズを縮小して信頼性を向上させることができます。


  2. テスト・ケースのXMLソースを表示するには、アプリケーション・ナビゲータでファイルを選択して「ソース」をクリックします。

  3. このファイルを必要に応じて編集します。

20.3.3 Oracle JDeveloperでのテスト・ケースの作成

テスト・スイート内に空のテスト・ケースを作成できます。

  1. 「Oracle JDeveloperでのテスト・スイートの作成」の手順3で入力したテスト・スイート名を右クリックし、「BPELテストの作成」を選択します。

  2. 次の詳細を入力します。

    フィールド
    名前 テスト・ケース名を入力します。
    テスト・スイート このテスト・ファイルを含めるテスト・スイートを選択します。
    ベースライン・テストとして追加 これをベースライン・テスト・ケースにする場合は、このチェック・ボックスを選択します。

  3. 「OK」をクリックします。

  4. このファイルをアプリケーション・ナビゲータで選択して「ソース」をクリックします。

  5. ファイルを編集し、必要なテスト詳細をすべて含めます。

20.3.4 Oracle JDeveloperでのテスト・ケースの編集

テスト・ケースは、エミュレーション、アサーションおよび外部コールで構成されます。これらのアクションをOracle JDeveloperのテスト・モードでテスト・ケースに追加できます。

  1. アプリケーション・ナビゲータ「テスト・スイート」フォルダの下で、テスト・ケースをダブルクリックします。

    図ts_xml.gifの説明が続きます
    図ts_xml.gifの説明

    Oracle JDeveloperで、BPELプロセスがリフレッシュされてテスト・モードで表示されます。このモードでは、テスト情報を定義できます。このノードでは、他の変更(アクティビティのプロパティ・ウィンドウの編集など)は実行できません。

    これらのアクションが定義されているアクティビティの場合は、右上隅に特別なアイコンが表示されます。

    図ts_icon.gifの説明が続きます
    図ts_icon.gifの説明

  2. アクティビティを右クリックして、実行できるテスト・アクションのリストを表示します。

    図ts_designer.gifの説明が続きます
    図ts_designer.gifの説明

  3. 次のメニュー・オプションから1つ選択し、対応する項で詳細を確認してください。

    メニュー・オプション 参照先
    activity_typeメッセージのエミュレート 「Oracle JDeveloperでのエミュレーションの作成」
    アサート 「Oracle JDeveloperでのアサーションの作成」
    外部コール 「Oracle JDeveloperでの外部コールの作成」

20.3.4.1 Oracle JDeveloperでのエミュレーションの作成

エミュレーションを作成して、BPELプロセスがWebサービス・パートナから受け取るメッセージ・データまたはフォルト・データ、あるいは両方のタイプのデータをシミュレートします。このウィンドウに表示されるフィールドは、このウィンドウの上部で選択したアクティビティ・タイプ(invokeまたはreceiveがサポート対象)およびラジオ・ボタンに基づきます。


注意:

  • 一方向のinvokeはスキップできます。これは、このタイプのinvokeではパートナ・リンクからデータを受信しないためです。

  • 「BPELテストの設定 - エミュレート」タブで「含まれるエミュレーションの上書き」をクリックすると、「テスト・スイートの編集 - 一般」タブで追加したトップレベルのテスト・ケースに定義されているエミュレーションを上書きできます。


20.3.4.1.1 インバウンド・メッセージのエミュレート

このチェック・ボックスを選択すると、クライアントからのインバウンド・メッセージを送信し、Webサービス・パートナから戻されるシミュレート用メッセージ・データのタイプを選択できます。この機能は、receiveアクティビティと双方向のinvokeアクティビティに使用可能です。

  1. 「インバウンド・メッセージのエミュレート」を選択します。

  2. 次の詳細を入力します。

    フィールド
    操作 このフィールドには、アクティビティの操作タイプ(invokeアクティビティのプロセス操作など)が自動的に入力されます。
    メッセージ このフィールドには、インバウンド・メッセージへのパスが自動的に入力されます。
    パート インバウンド・メッセージのパート(ペイロードなど)を選択します。
    • 手動で入力

    • ファイルからロード

    Webサービス・パートナから戻されるシミュレート済メッセージを作成します。

    クリックすると、「値の入力」フィールドにメッセージ・データを入力できます。

    懐中電灯アイコンをクリックすると、メッセージ・データをファイルからロードできます。

    期間 Webサービス・パートナからメッセージが配信されるまでの待機期間を入力します。このフィールドは、双方向のinvokeアクティビティの場合に表示されます。

    このウィンドウにすべての情報が入力されている例を次に示します。

    図ts_emul2.gifの説明が続きます
    図ts_emul2.gifの説明

20.3.4.1.2 フォルトのエミュレート

このチェック・ボックスを選択すると、クライアントからのインバウンド・システム・フォルトを送信できます。次に、Webサービス・パートナから戻されるシミュレート用フォルト・メッセージのタイプを選択します。これにより、プロセス内のフォルト処理機能をテストできます。この機能はinvokeアクティビティに使用可能です。

  1. 「フォルトのエミュレート」を選択します。

  2. 次の詳細を入力します。

    フィールド
    ネームスペースURI フォルトには一意の修飾名(QName)が必要です。このアクティビティでは、フォルト名(必須)とフォルトの詳細情報を提供するデータの変数(オプション)を提供します。

    懐中電灯アイコンをクリックして監視対象のフォルトを選択します。「ネームスペースURI」フィールドには、選択したフォルトに基づいてURLパスが自動的に入力されます。

    ローカル・パート 「ネームスペースURI」フィールドで選択したローカル・パートが表示されます。たとえば、フォルトNegativeCreditに関連付けられているWebサービス・パートナを選択すると、このフィールドに名前NegativeCreditが追加されます。
    パート フォルトを含むメッセージ・パート(ペイロードなど)を選択します。
    • 手動で入力

    • ファイルからロード

    Webサービス・パートナから戻されるシミュレート済フォルト・メッセージを作成します。

    クリックすると、「値の入力」フィールドにメッセージ・データを入力できます。

    懐中電灯アイコンをクリックすると、メッセージ・データをファイルからロードできます。


    このウィンドウにすべての情報が入力されている例を次に示します。

    図ts_emul3.gifの説明が続きます
    図ts_emul3.gifの説明


    注意:

    一方向のinvokeの場合、エミュレートできるのはシステム・フォルトのみです。双方向のinvokeの場合は、システム・フォルトとユーザー定義ビジネス・フォルトの両方をエミュレートできます。

20.3.4.1.3 BPELテストまたはパートナ・テストのエミュレート

パートナがBPELプロセスの場合は、このパートナ用にテスト・ケースを渡して実行させることができます。これは、外部パートナではなくBPELプロセス間の相互作用をテストする必要がある場合に役立ちます。たとえば、メインBPELプロセスがサブプロセスをコールし、サブプロセスがメインBPELプロセスのテストからのヒューマン・ワークフローをコールするとします。サブプロセスをエミュレートするかわりに、ヒューマン・ワークフロー・サービスをエミュレートするサブプロセスのテスト・ケースを起動できます。これにより、ヒューマン・ワークフロー・サービスを起動せずにBPELプロセスの相互運用性をテストできます。このラジオ・ボタンの名前は、選択したアクティビティのタイプに基づきます。一方向のinvokeアクティビティの場合、ボタン名は「パートナ・テストのコール」です。双方向のinvokeアクティビティの場合、ボタン名は「BPELテストのコール」です。receiveアクティビティの場合、このラジオ・ボタンは無効です。

  1. 「パートナ・テストのコール」または「BPELテストのコール」を選択します。

  2. 実行するテスト・スイート内のテストの名前と相対位置を入力します。

    このウィンドウにすべての情報が入力されている例を次に示します。

    図ts_emul4.gifの説明が続きます
    図ts_emul4.gifの説明

20.3.4.2 Oracle JDeveloperでのアサーションの作成

アサーションを実行して、変数データやプロセス・フローを検証します。変数データのアサーションでは、プロセスの実行時に変数内のテスト・データを検証できます。この検証では、変数またはXML文書から値が抽出され、予想される値と比較されます。プロセス・フローを検証するには、アクティビティが実行された回数をアサートできます。

  1. 「作成」をクリックしてテストのリストを表示します。

    図ts_asserts.gifの説明が続きます
    図ts_asserts.gifの説明

  2. テストを選択し、対応する項で詳細を確認してください。

    選択 参照先
    値のアサート 「値のアサートの作成」
    アクティビティ実行アサート 「アクティビティ実行アサートの作成」
    XMLのアサート 「XMLのアサートの作成」

20.3.4.2.1 値のアサートの作成

このテストでは、選択した文字列変数または数値変数の値を、予想される値と比較します。単純型(string、numberなど)に解決されるXPath式を指定する必要があります。

  1. 次の詳細を入力します。

    フィールド
    変数 懐中電灯アイコンをクリックして変数のXPath値を選択します。この変数の値がテスト中に抽出され、次に定義する予想される値と比較されます。
    パート 「変数」フィールドで選択したパートが表示されます。
    実際のパス 「変数」フィールドで選択したパスが表示されます。
    比較メソッド 文字列比較または数値比較を実行する変数値の型を選択します。
    予想 変数に含まれると予想する値を入力します。
    パターン一致 「予想」フィールドに入力した値が比較に使用する正規表現パターン([0-9]*など)であるかどうかを選択します。
    エラー・メッセージ アサーションに失敗した場合に表示するメッセージを入力します。
    致命的 アサーションを致命的なものにする場合は、このチェック・ボックスを選択します。この場合、インスタンスは即時に終了します。このチェック・ボックスを選択しなければ、インスタンスは引き続き実行されます。

    警告: このリリースでは、致命的アサーションは実行時にサポートされません。致命的でないアサーションのみを作成してください。 致命的アサーションがあるテスト・インスタンスは停止し、Oracle BPEL Serverのパフォーマンスに影響する可能性があります。


    このウィンドウにすべての情報が入力されている例を次に示します。

    図ts_valueassert.gifの説明が続きます
    図ts_valueassert.gifの説明

20.3.4.2.2 アクティビティ実行アサートの作成

このテストでは、アクティビティが指定した回数だけ実行されます。これにより、アクティビティが適切な回数だけ実行されること(whileアクティビティが適切な回数だけ実行されることなど)を確認できます。

  1. このアクティビティの実行回数を示す値を入力します。

20.3.4.2.3 XMLのアサートの作成

このテストでは、XML文書全体の要素値が予想される要素値と比較されます。

  1. 次の詳細を入力します。

    フィールド
    変数 懐中電灯アイコンをクリックして変数のXPath値を選択します。この変数の要素値がテスト中に抽出され、次に定義する予想される要素値と比較されます。
    パート 「変数」フィールドで選択したパートが表示されます。
    実際のパス (オプション)「変数」フィールドで選択したパスが表示されます。
    比較メソッド 比較の厳密度を指定します。ほとんどの場合は、xml-similarで十分です。正確な比較(要素の順序など)が必要な場合は、xml-identicalを使用できます。
    予想される値 値の比較方法を選択します。
    • 手動で入力
    このチェック・ボックスを選択すると、変数に含まれると予想する要素値を選択して手動で入力できます。
    • ファイルからロード
    このチェック・ボックスを選択すると、懐中電灯アイコンをクリックして、変数に含まれると予想する要素値を含むメッセージ・ファイルを選択できます。
    エラー・メッセージ アサーションに失敗した場合に表示するメッセージを入力します。
    致命的 アサーションを致命的なものにする場合は、このチェック・ボックスを選択します。この場合、インスタンスは即時に終了します。このチェック・ボックスを選択しなければ、インスタンスは引き続き実行されます。

    警告: このリリースでは、致命的アサーションは実行時にサポートされません。致命的でないアサーションのみを作成してください。 致命的アサーションがあるテスト・インスタンスは停止し、Oracle BPEL Serverのパフォーマンスに影響する可能性があります。


    このウィンドウにすべての情報が入力されている例を次に示します。

    図ts_xmlassert.gifの説明が続きます
    図ts_xmlassert.gifの説明

20.3.4.3 Oracle JDeveloperでの外部コールの作成

外部コールは、テスト・ケースの実行中にユーザー・アクションを実行する拡張メソッドを提供します。コマンドにはJavaクラスの完全修飾名を指定します。テスト・ケースが外部コールの設定されているアクティビティに達すると、指定の引数を使用して指定のJavaクラスがコールされます。このクラスでは、com.oracle.services.bpel.test.ITestCallHandlerインタフェースを実装する必要があります。実行時には、このクラスがタスクの実行時にantのクラスパスに存在する必要があります。テストをOracle BPEL Controlから実行する場合、コール・ハンドラはサポートされていません。

  1. 「作成」をクリックします。

    「外部コール」ウィンドウが表示されます。

  2. 「作成」をクリックし、表でデフォルトの引数名と値を作成します。

  3. 「名前」および「値」列でカーソルをデフォルト値に置き、デフォルト値を削除して適切な詳細を入力します。

  4. このコマンドをこのアクティビティの前に実行する場合は、「アクティビティの前に実行」チェック・ボックスを選択します。それ以外の場合、コールはアクティビティの後に実行されます。

    このウィンドウにすべての情報が入力されている例を次に示します。

    図ts_extcalls.gifの説明が続きます
    図ts_extcalls.gifの説明

  5. 「OK」をクリックします。

    コールの実行時に、指定した引数がJavaクラスに渡されます。


関連項目:

  • 『Oracle BPEL Process Manager Client API Reference』

    SOA_Oracle_Home¥bpel¥docs¥apidocs
    

20.3.5 Oracle BPEL Controlでのテスト・ケースの作成

テスト・ケースのコンテンツは、Oracle BPEL Controlからの監査証跡の出力を介して作成できます。この方法には次の2つのメリットがあります。

  • 作業を開始するときにベースライン・テストをすばやく作成できます。

  • 開発中に明らかになったエラーのシナリオをテスト・ケースに切り替えることができます。Bugを示すユースケースを取得し、特定のデータ・アサーションを追加し、テストをテスト・スイートに追加して定期的にリグレッション・テストとして実行します。これにより、将来はBugが再発しないことを確認できます。

  1. 「スタート」「すべてのプログラム」「Oracle - Oracle_Home「Oracle BPEL Process Manager」「BPEL Control」を選択して、Oracle BPEL Controlにログインします。

  2. oc4jadmin/passwordとしてログインします。

    passwordは、インストール時に入力したoc4jadminのパスワードです。

  3. 「インスタンス」をクリックします。

  4. テスト・ファイルのコンテンツの作成元となるインスタンスを選択します。

  5. 「テスト」をクリックします。

    インスタンスが完了していない場合、またはテストをテスト・ケースとして開始した場合は、このインスタンスをテスト・ケースとして保存できません。

  6. 次のいずれかの方法を選択します。

    1. コンテンツをテスト・ファイルに保存する場合は、「ユニット・テストとして保存(.xml)」をクリックします。この場合は、すべてのパートナがエミュレートされます。

    2. 複数のテストのコンテンツを1つのzipファイルに保存する場合は、「複合テストとして保存(.zip)」をクリックします。この場合は、他のパートナ(ヒューマン・ワークフローなど)のエミュレート中に、テスト・ケース情報を使用してBPELパートナがコールされます。テストをOracle JDeveloperにインポートする前に、このファイルを解凍する必要があります。複合テストを使用すると、テストで他のテストをコールできることに注意してください。複合テスト・ファイル名を変更する場合は、このファイルをコールできるテスト・ファイルを編集して、適切な名前を含めてください。

    図ts_consoleunittest.gifの説明が続きます
    図ts_consoleunittest.gifの説明

  7. ファイルをXMLとしてディレクトリに保存します。

  8. Oracle JDeveloperに戻ります。

  9. ファイルを複合テスト・ファイルとして保存した場合は、そのファイルを解凍します。

  10. 「テスト・スイート」フォルダを右クリックして「BPELテストのインポート」を選択します。

  11. テストのインポート先としてBPELプロセス内のテスト・スイートを選択します。

  12. 「インポートしたテストURL」フィールドの懐中電灯アイコンをクリックします。

  13. 手順7で保存したファイルを選択して「開く」をクリックします。

  14. 「OK」をクリックします。

    「アプリケーション・ナビゲータ」で選択したテスト・スイートにテストが追加されます。

  15. テスト・スイートを右クリックして「テスト・スイートの編集」を選択します。

    テストとコンテンツが「テスト・スイートの編集」ウィンドウに表示されます。


    注意:

    Oracle BPEL Controlから生成したテスト・ケースには、アサーションは作成されません。

20.4 テスト・スイートのデプロイ

テスト・ケースのテスト・スイートを作成した後、そのテストをOracle BPEL Serverにデプロイします。次の2つのデプロイ方法があります。

20.4.1 Oracle JDeveloperからのデプロイ

テスト・スイートを最初に作成するときに、Oracle JDeveloperを使用して手動でデプロイできます。

Oracle JDeveloperからテスト・スイートをデプロイする手順は、次のとおりです。

  1. 最初に、テスト・スイートに関連するBPELプロセスをデプロイします。プロセスとテスト・スイートは個別にデプロイする必要があり、まとめてデプロイすることはできません。

  2. 「テスト・スイート」フォルダを右クリックして「BPELテスト・デプロイヤ」を選択します。

    「BPELテスト・デプロイヤ」ウィンドウが表示されます。

  3. デプロイするテスト・スイートのチェック・ボックスを選択します。

  4. test_suite_name - デプロイ」「テスト」を順番に開き、デプロイする特定のテスト・ケースを選択します。

  5. テストのデプロイ先サーバーを選択します。

    図ts_deploy.gifの説明が続きます
    図ts_deploy.gifの説明

  6. 「デプロイ」をクリックし、テスト・スイートのうち選択したテスト・ケースをコンパイルし、検証してデプロイします。

    「ステータス」セクションにデプロイ・ステータス・メッセージが表示されます。

20.4.2 antタスクからのデプロイ

antタスクを使用してテスト・スイートをデプロイできます。このタスクは、自動化されたテスト環境で役立ちます。


注意:

プロセスのテストをデプロイする前に、BPELプロセスをデプロイする必要があります。

antタスクからテスト・スイートをデプロイする手順は、次のとおりです。

  1. build.xmlファイルで、テスト・スイートのデプロイに使用するantタスクのパラメータを表示します。このファイルは、BPELプロセスの「リソース」フォルダにあります。

    <target name="test" depends="deployTestSuites, bpelTest, report" />
    <target name="prepareTests">
        <echo>
    --------------------------------------------------------------
    | Preparing BPEL tests for deployment
    --------------------------------------------------------------
        </echo>
        <delete file="${process.dir}/output/bpeltest.zip" quiet="true"/>
        <zip basedir="${process.dir}/bpel/testsuites" filesonly="true"
            excludes="test_suites.xml, **/excludes/*"
            destfile="${process.dir}/output/bpeltest.zip"/>
    </target>
    <target name="deployTestSuites" depends="prepareTests">
        <echo>
    --------------------------------------------------------------
    | Deploying bpel tests ${process.name} on ${http.hostname}, port ${http.port}
    --------------------------------------------------------------
        </echo>
        <deployTestSuites
            user="${admin.user}"        password="${admin.password}"
            hostname="${http.hostname}" httpport="${http.port}"
            domain="${domain}"          process="${process.name}"
            rev="${rev}"
           testfile="${process.dir}/output/bpeltest.zip"/>
    </target>
    
    
  2. このプロセスのパラメータ値を変更する場合は、build.xmlファイルと同じ「リソース」フォルダにあるbuild.propertiesファイル内で該当するパラメータを編集してコメント解除します。これにより変更されるのは、このプロセスの値のみであることに注意してください。

    #domain=default
    #rev=1.0
    #user=oc4jadmin
    #hostname=localhost
    #http.hostname=localhost
    #http.port=9700
    #j2ee.hostname=localhost
    #rmi.port=23791
    #oc4jinstancename=home
    #asinstancename=
    #opmn.requestport=6003
    #platform=ias_10g
    #platform=oc4j_10g
    bpeltest.callHandler=
    bpel.context.properties=${bpel.home}/samples/tutorials/102.InvokingProcesses/rmi/context.properties
    
    
  3. 「スタート」「すべてのプログラム」「Oracle - Oracle_Home「Oracle BPEL Process Manager」「Developer Prompt」を選択して、開発者プロンプトを開きます。

  4. 適切なディレクトリに移動し、antを実行してテスト・スイートをデプロイします。

    ant test
    
    

    testは、build.xmlファイルに定義されているターゲット名です。

20.5 テスト・スイートの表示とレポート結果の表示

デプロイ後に、BPELプロセス・インスタンスでテスト・スイートのテスト・ケースを実行して、XML文書レポートを表示できます。デフォルトでは、レポート結果はJUnit XMLテスト結果として書式設定されます。次の2つの実行方法があります。


注意:

テスト結果は、バイナリ・ラージ・オブジェクト(BLOB)として保存されます。

20.5.1 Oracle BPEL Controlからの実行

Oracle BPEL Controlを使用すると、テストを手動で実行してレポート結果を生成できます。

Oracle BPEL Controlからテスト・スイートを実行してレポート結果を表示する手順は、次のとおりです。

  1. 「スタート」「すべてのプログラム」「Oracle - Oracle_Home「Oracle BPEL Process Manager」「BPEL Control」を選択して、Oracle BPEL Controlにログインします。

  2. oc4jadmin/passwordとしてログインします。

    passwordは、oc4jadminのパスワードです。

  3. 「BPELプロセス」をクリックします。

  4. テストするインスタンスをクリックします。

  5. 「テスト・スイート」をクリックします。

    このインスタンスでテスト・スイートをデプロイした場合は、次のウィンドウが表示されます。

    図ts_testsuite1.gifの説明が続きます
    図ts_testsuite1.gifの説明

    このインスタンスでテスト・スイートをデプロイしていない場合、このウィンドウは表示されません。最初にテスト・スイートをデプロイする必要があります。

  6. テスト・スイートのチェック・ボックスを選択します(「メイン」など)。

    テスト・スイート内のテストのチェック・ボックスが表示されます。

  7. 実行するXMLテストを選択します。

    図ts_testsuite2.gifの説明が続きます
    図ts_testsuite2.gifの説明

    また、「テストのアンデプロイ」をクリックするとテスト・スイートをアンデプロイできます。

  8. 「テストの実行」をクリックします。

    テストが完了すると、ウィンドウが更新されて次の3つのセクションに結果が表示されます。

    • プロセス名、テスト実行日、実行されたスイートおよびワーカー数などのテスト詳細が表示されます。ワーカーは、1つ以上のテスト・ケースを実行できる同時スレッド数です。ワーカー数により、同時に実行できるテスト・ケースの数が制御されます。

    • サマリー・レポートには、テストの結果とコード・カバレッジが表示されます。

    • すべてのテストと失敗したアサーションの詳細リストが表示されます。「失敗のみ表示」チェック・ボックスに注意してください。このチェック・ボックスを選択すると、成功したテストの詳細情報が非表示になります。 デフォルトでは、このチェック・ボックスが選択されます。

    図ts_report.gifの説明が続きます
    図ts_report.gifの説明

  9. 「プロセス・カバレッジ」の下でパーセント値のリンクをクリックして、実行されたソース・コードの割合を表示します。

  10. Oracle BPEL Controlの右上隅にある次のリンクを1つクリックして、特定のコード・カバレッジの詳細を表示します。

    図ts_coverage.gifの説明が続きます
    図ts_coverage.gifの説明

    実行されたアクティビティは緑の枠で、実行されなかったアクティビティは赤い枠で示されます。

    図ts_coverage2.gifの説明が続きます
    図ts_coverage2.gifの説明

  11. 「インスタンス・フローの表示」をクリックしてさらに詳細を表示するか、BPEL Controlに戻るをクリックします。

20.5.2 antタスクからの実行

antタスクを使用してテスト・スイートを実行し、レポート結果を生成できます。このタスクは、自動化されたテスト環境で役立ちます。デフォルトでは、テスト結果はJUnit XMLテスト結果として書式設定されます。この書式には次のメリットがあります。

  • junitreportタスクを使用してフレームベースのレポートを生成できます。

  • BPELテストの結果を他のJUnitの結果と統合できます(JUnitをJavaコンポーネントのテストに使用する場合)。

  • JUnitレポート書式も使用する他のサード・パーティのテスト・スイート・フレームワークと統合できます。

antタスクからテストを実行してレポートを作成する手順は、次のとおりです。

  1. build.xmlファイルで、テスト・ケースの実行とレポートの生成に使用するantタスクのパラメータを表示します。このファイルは、BPELプロセスの「リソース」フォルダにあります。

    <!-- "bpeltest" target runs deployed testsuites of a BPEL process -->
    <target name="bpelTest">
        <echo>
    --------------------------------------------------------------
    Executing process ${process.name}(v.${rev}):
     minCoverage=${bpeltest.minCoverage}, timeout=${bpeltest.timeout} sec,
     numWorkers=${bpeltest.numWorkers}
    --------------------------------------------------------------
        </echo>
        <delete dir="${bpeltest.results.dir}/xml/${process.name}" quiet="true"/>
        <bpeltest
            user="${admin.user}"          password="${admin.password}"
            hostname="${http.hostname}"   httpport="${http.port}"
            domain="${domain}"            process="${process.name}"
            rev="${rev}"                  name="${process.name}Tests"
            timeout="${bpeltest.timeout}"
            numWorkers="${bpeltest.numWorkers}"
            minCoverage="${bpeltest.minCoverage}"
            callHandler="${bpeltest.callHandler}"
            context="${bpel.context.properties}"
            resultsDir="${bpeltest.results.dir}/xml/${process.name}"
                resultsPropertyFile="${bpeltest.results.dir}/${process.name}.properties"/>
        <property file="${bpeltest.results.dir}/${process.name}.properties"/>
        <echo>
    --------------------------------------------------------------
    Executed ${test.total.count} test(s) for ${process.name} (v.${rev}) with
     ${test.failure.count} failure(s)
    --------------------------------------------------------------
        </echo>
    </target>
    . . .
    . . .
    
    
    <!-- "report" target creates JUnitReport for testsuites run by bpeltest. -->
        <target name="report">
            <echo>
    --------------------------------------------------------------
    Creating BPELTest JUnitReport at
     ${bpeltest.results.dir}${file.separator}html${file.separator}index.html
    --------------------------------------------------------------
            </echo>
            <mkdir dir="${bpeltest.results.dir}/xml"/>
            <junitreport todir="${bpeltest.results.dir}/xml">
                <fileset dir="${bpeltest.results.dir}/xml">
                    <include name="*/TEST-*.xml" />
                    <include name="*/BPEL-*.xml" />
                </fileset>
                <report format="frames" todir="${bpeltest.results.dir}/html" />
            </junitreport>
        </target>
        <!-- If pre-build.xml and post-build.xml exists, call its default target
     -->
        <condition property="exists.pre-build.xml">
            <available file="${process.dir}/pre-build.xml"/>
        </condition>
        <target name="pre-build" if="exists.pre-build.xml">
            <ant antfile="${process.dir}/pre-build.xml" inheritAll="false"/>
        </target>
        <condition property="exists.post-build.xml">
            <available file="${process.dir}/post-build.xml"/>
        </condition>
        <target name="post-build" if="exists.post-build.xml">
            <ant antfile="${process.dir}/post-build.xml" inheritAll="false"/>
        </target>    <!-- Convenience targets -->
        <target name="deploy_test" depends="deploy, test"/>
    
    </project>
    
    
  2. このプロセスのパラメータ値を変更する場合は、詳細を手順2で確認してください。

  3. 「スタート」「すべてのプログラム」「Oracle - Oracle_Home「Oracle BPEL Process Manager」「Developer Prompt」を選択して、開発者プロンプトを開きます。

  4. 適切なディレクトリに移動し、antを起動してテスト・スイートを実行し、レポートを作成します。

    ant bpelTest report
    
    

    bpelTestおよびreportは、build.xmlファイルに定義されているターゲット名です。


    注意:

    BPELプロセスのデプロイ、対応するテスト・ケースのデプロイ、デプロイしたテスト・ケースの実行およびレポートの生成を同時に実行する場合は、次のコマンドを実行します。
    ant deployProcess test
    

    次の例に、antで生成されたレポートを示します。

    図ts_junit1.gifの説明が続きます
    図ts_junit1.gifの説明

    JUnitが使用されているため、レポートには複数のJava構成メンバー(パッケージやクラスなど)が含まれています。Oracle BPEL Process Managerの場合、デフォルト・パッケージはbpel.domain.process-revisionに解決されますが、これはカスタマイズできます。「クラス」はテスト・スイート名にマップされます。コード・カバレッジ・スイートに注意してください。これは、antタスクで最小コード・カバレッジを指定した場合に追加されます。メイン・ペインには、テスト結果のサマリーが表示されます。このレポートに複数のプロセスからの結果をパッケージすると、「パッケージ」表のエントリ数が増えます。

  5. パッケージ名(BPELプロセス)をクリックしてレポート結果を表示します。

    図ts_junit2.gifの説明が続きます
    図ts_junit2.gifの説明

20.6 拡張テスト・スイート設計機能

この項では、拡張テスト・スイート設計機能について説明します。この機能の一部のサンプルは、SOA_Oracle_Home¥bpel¥samples¥referencesサブディレクトリにあります。

20.6.1 動的な値の実行時設定

動的コンテンツを含むメッセージが必要な場合があります。たとえば、次のようになります。

  • 現在の日付と時刻を含むメッセージをエミュレートする場合

  • 一意の識別子が必要な場合

これをサポートするには、エミュレートしたメッセージにメッセージ更新を追加します。メッセージ更新は、次の2つの主要情報で構成されます。

  • 文字列値を生成するXPath関数

  • 更新するメッセージ部分を指定するXPath式

たとえば、次のメッセージをエミュレートする必要があるとします。

<dateTimeMessage xmlns="http://xmlns.oracle.com/SomeProcess">
  <theDateTime>current date time</theDateTime>
</dateTimeMessage>

Oracle JDeveloperで次のコンテンツを指定してエミュレーションを追加します。

<dateTimeMessage xmlns="http://xmlns.oracle.com/SomeProcess">
  <theDateTime/>
</dateTimeMessage>

メッセージ更新に対するGUIサポートはないため、ソース・ビューを切り替えて、次のように生成されたエミュレーションを表示します。

  <activityDriver name="someActivity">
    <emulate>
      <inboundMessage>
        <part name="payload">
          <content>
            <dateTimeMessage xmlns="http://xmlns.oracle.com/SomeProcess">
              <theDateTime/>
            </dateTimeMessage>
          </content>
        </part>
      </inboundMessage>
    </emulate>
  </activityDriver>

メッセージ更新をinboundMessageに追加して実行時に日時を設定します。

  <activityDriver name="Invoke_2">
    <emulate duration="PT">
      <inboundMessage>
        <part name="payload">
          <content>
            <dateTimeMessage xmlns="http://xmlns.oracle.com/SomeProcess">
              <theDateTime/>
            </dateTimeMessage>
          </content>
          <update>
            <location>
              /client:dateTimeMessage/client:theDateTime
            </location>
            <XPathExpression>
              xp20:current-dateTime()
            </XPathExpression>
          </update>
        </part>
      </inboundMessage>
    </emulate>

update要素に空のtheDateTime要素に対するXPathの位置が含まれていることに注意してください。XPath式の要素には、現在の日時を生成するXPath関数が含まれています。テストを実行すると、このXPath関数がコールされ、エミュレートされたメッセージが現在の日時で更新されます。


注意:

XPath関数とXPath問合せで使用されるネームスペース接頭辞は、テスト・ケースのXML文書で正しく定義されている必要があります。


関連項目:

次のメッセージ更新サンプルを参照してください。
SOA_Oracle_Home¥bpel¥samples¥references¥BPELTest¥
Emulations¥bpel¥testsuites¥main¥demoMessageUpdate.xml

20.6.2 非同期イベントのエミュレーション

非同期イベントをエミュレートできます。この種のイベントは、BPELプロセスのonMessageまたはonAlarmブランチで取得されます。現在、イベントのエミュレーションに対する設計時サポートはありません。


関連項目:

これらのテスト・ケースを手動で作成する方法は、次のサンプルを参照してください。
  • SOA_Oracle_Home¥bpel¥samples¥references¥BPELTest¥Alarms¥bpel¥testsuites¥main

  • SOA_Oracle_Home¥bpel¥samples¥references¥BPELTest¥OnMessage¥bpel¥testsuites¥main


20.6.3 外部アクションの検証

BPELの外部へとテスト・ケースを拡張できます。たとえば、外部システムを変更するBPELプロセスがあるとします。BPELプロセスのインスタンスを起動し、外部システムが適切に更新されたことを検証するAPIをコールするように、テスト・ケースを記述できます。BPELテスト・フレームワークでは、これに対するサポートが限定的であるため、データを検証するカスタムXPath関数を記述し、これらの関数をアサーションに使用できます。これに対する設計時サポートはありません。この作業を手動で行うには、アサーションを次のように記述します。

<activityDriver name="Assign_1">
  <assertValue fatal="true">
    <message>exact text comparison</message>
    <actualPath>ns:extractExternalValue()</actualPath>
    <expected>theInput</expected>
  </assertValue>

太字のセクションでは、通常のXPath問合せのかわりにXPath関数が使用されていることに注意してください。この関数を実装して外部システムから値を抽出できます。BPELテスト・フレームワークでは、XPath関数の戻り値がtheInputと比較されます。

20.6.4 カスタム・レポート処理

antタスクでは、デフォルトでJUnitスタイルのXML結果が生成されます。これらの結果をjunitreportタスクに渡して、フレームベースのHTMLレポートを生成できます。結果を別の書式で表示する場合は、bpelTest antタスクのxslパラメータを、作成したXSLTスタイルシートを指すURLまたはファイル・パスに設定します。テストの実行後、xsl属性で指定されているスタイルシートを使用して、結果のXML文書(SOA_Oracle_Home¥bpel¥system¥xmllib¥BPELTestResult.xsdに定義されているXMLスキーマで指定)に対してXSLトランスフォーメーションが実行されます。

次の例に、URLからアクセス可能なXSLスタイルシートを使用するantタスクを示します。

<bpelTest ... xsl="http://mycompany.com/myStyleSheet.xsl".../>

次の例に、ファイル・システムからアクセス可能なXSLスタイルシートを使用するantタスクを示します。

<bpelTest ... xsl="C:¥xslDir¥myStyleSheet.xsd" .../>

20.6.5 データベース・ビュー

次のデータベース・ビューを使用すると、テスト結果とテスト定義の詳細を問合せできます。

20.6.5.1 admin_list_td

このビューには、表20-1のように、前に実行したテスト・ケースの情報が表示されます。

表20-1 admin_list_td

名前 NULL可 タイプ 説明
CIKEY × VARCHAR2(100) BPELプロセス。
CI_DOMAIN_REF × SMALLINT(5) BPELプロセスのドメイン。
TEST_RUN_NAME × VARCHAR2(100) テスト実行名。この名前は、多数のテスト実行間で変わらないことがあります。テスト実行をクライアント・コードから開始しなければ、この値は自動的に生成されます。
TEST_RUN_ID × VARCHAR2(100) テスト実行ID。このIDはテスト実行間で一意であることが必要です。テスト実行をクライアント・コードから開始しなければ、この値は自動的に生成されます。
TEST_SUITE × VARCHAR2(100) このテスト・ケースのテスト・スイート。
TEST_LOCATION × VARCHAR2(100) テスト・スイート内のテスト・ケースの位置。通常はテスト・ケース・ファイル名です。
TEST_STATUS × VARCHAR2(50) このテスト・ケースのステータス。合格、失敗または実行中のいずれかです。
TEST_RESULT × BLOB テスト・ケースのXML結果。この列はDOMパーサーを使用して読み取ることができます。

たとえば、次のようになります。

SQL> select cikey, ci_domain_ref, test_run_name from admin_list_td;

CIKEY | CI_DOMAIN_REF | TEST_RUN_NAME
------+---------------+--------------------------------------------
    4 |             0 | ca8f3d34e7fa93f2:53855ec5:10c02daf400:-7b46


SQL> select test_run_id from admin_list_td;

TEST_RUN_ID
-------------------------------------------
ca8f3d34e7fa93f2:53855ec5:10c02daf400:-7b46


SQL> select test_location, test_suite, test_status, test_result from admin_list_td;

TEST_LOCATION              | TEST_SUITE | TEST_STATUS | TEST_RESULT
---------------------------+------------+-------------+------------
testShippingConsidered.xml | logicSuite | failed      | <?xml vers

20.6.5.2 admin_list_tdef

このビューには、表20-2のように、デプロイ済のテスト・ケースの情報が表示されます。

表20-2 admin_list_tdef

名前 NULL可 タイプ 説明
PROCESS_ID × VARCHAR2(100) BPELプロセス。
REVISION_TAG × VARCHAR2(50) BPELプロセスのリビジョン。
DOMAIN_REF × SMALLINT(5) BPELプロセスのドメイン。
TEST_SUITE × VARCHAR2(100) このテスト・ケースのテスト・スイート。
LOCATION × VARCHAR2(100) テスト・スイート内のテスト・ケースの位置。通常はテスト・ケース・ファイル名です。
TYPE × VARCHAR2(10) このファイルのタイプ。
  • message: メッセージ・ファイル

  • include: ベースライン・テスト・ケース

  • test: テスト・ケース

  • properties: プロパティ・ファイル

CREATION_DATE × DATE このテストのデプロイ日。
DEFINITION × BLOB テスト・ケースのXML定義。この列はDOMパーサーを使用して読み取ることができます。

SQL> select process_id, revision_tag, domain_ref, test_suite from admin_list_tdef;

PROCESS_ID           | REVISION_TAG | DOMAIN_REF | TEST_SUITE

---------------------+--------------+------------+-----------
PriceFinderWithTests | 1.0          |          0 | logicSuite
PriceFinderWithTests | 1.0          |          0 | logicSuite
Emulations           | 1.0          |          0 | main
Emulations           | 1.0          |          0 | main
Emulations           | 1.0          |          0 | main
Emulations           | 1.0          |          0 | main
Emulations           | 1.0          |          0 | main
Emulations           | 1.0          |          0 | main
Emulations           | 1.0          |          0 | main
Emulations           | 1.0          |          0 | main
Emulations           | 1.0          |          0 | main


SQL> select location, type, creation_date, definition from admin_list_tdef;

LOCATION                     | TYPE    | CREATION_DATE              | DEFINITION
-----------------------------+---------+----------------------------+-----------
baseline.xml                 | include | 2006-06-25 10:58:16.260000 | <?xml vers
testShippingConsidered.xml   | test    | 2006-06-25 10:58:16.260000 | <?xml vers
baseline.xml                 | include | 2006-06-27 16:09:08.025000 | <?xml vers
emulated.xml                 | message | 2006-06-27 16:09:08.025000 | <?xml vers
demoAsyncEmulation.xml       | test    | 2006-06-27 16:09:08.025000 | <?xml vers
demoBusinessFault.xml        | test    | 2006-06-27 16:09:08.025000 | <?xml vers
demoEmulationFromMessage.xml | test    | 2006-06-27 16:09:08.025000 | <?xml vers
demoMessageUpdate.xml        | test    | 2006-06-27 16:09:08.025000 | <?xml vers
demoPartnerTest.xml          | test    | 2006-06-27 16:09:08.025000 | <?xml vers
demoSyncEmulation.xml        | test    | 2006-06-27 16:09:08.025000 | <?xml vers
demoSystemFault.xml          | test    | 2006-06-27 16:09:08.025000 | <?xml vers

20.6.6 XMLスキーマ

次のXMLスキーマは、SOA_Oracle_Home¥bpel¥system¥xmllibディレクトリにあります。

  • InstanceDriver.xsd: テスト・ケース・スキーマ

  • BPELTestResult.xsd: テスト結果スキーマ

20.6.7 クライアントAPI

com.oracle.services.bpel.testパッケージに定義されているサービスを使用すると、Locatorクラスを使用して、テスト・サービスの検索とテスト・ケースの開始、デプロイ済テストのリストの取得、実行済テスト・ケースの結果の取得が可能です。このサービスは配信サービスと同様の方法で検索できます。サービス名には、com.oracle.services.bpel.test.ITestService.SERVICE_NAMEを使用できます。


関連項目:

  • 『Oracle BPEL Process Manager Client API Reference』

    SOA_Oracle_Home¥bpel¥docs¥apidocs