ヘッダーをスキップ
Oracle® Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1 (11.1.1.4.0)
B56238-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

42 SOAコンポジット・アプリケーションのテストの自動化

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

項目は次のとおりです。

42.1 コンポジット・テスト・フレームワークの概要

Oracle SOA Suiteには、SOAコンポジット・アプリケーションに対して反復可能なテストを作成して実行するための、自動化されたテスト・スイート・フレームワークが用意されています。

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

42.1.1 テスト・ケースの概要

テスト・フレームワークは、SOAコンポジット・アプリケーション・レベルでのテストをサポートしています。このタイプのテストでは、ワイヤ、サービス・バインディング・コンポーネント、サービス・コンポーネント(BPELプロセスやOracle Mediatorのサービス・コンポーネントなど)、および参照バインディング・コンポーネントがテストされます。

詳細は、第42.3項「テスト・スイートとテスト・ケースの作成」を参照してください。

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

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

詳細は、次を参照してください。

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

エミュレーションにより、SOAコンポジット・アプリケーションが実行中に相互作用する次のコンポーネントの動作をシミュレートできます。

  • コンポジット内部の内部サービス・コンポーネント

  • コンポジット外部のバインディング・コンポーネント

別のサービス・コンポーネントまたはバインディング・コンポーネントを起動せずに、コンポーネントまたは参照からのレスポンスを指定できます。

詳細は、次を参照してください。

42.1.4 アサーションの概要

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

  • XML文書全体のアサーション

    XML文書全体の要素値を予想される要素値と比較します。 たとえば、融資申請のXML文書全体の内容を別の文書と正確に比較します。XMLUnitパッケージ内のXMLTestCaseクラスには、XMLファイル間でアサーションを実行するための一連のメソッドが含まれています。これらのメソッドの詳細は、次のURLを参照してください。

    http://xmlunit.sourceforge.net
    
  • メッセージのパート・セクションのアサート

    メッセージのパート・セクションの値を予想値と比較します。例として、XML文書メッセージ全体のペイロード・パートなどがあります。

  • 非リーフ要素のアサーション

    XMLフラグメントの値を予想値と比較します。例として、リーフ要素のSSN、email、customerNameおよびloanAmountが記載された融資申請があります。

  • リーフ要素のアサーション

    選択した文字列要素や数値要素の値、または正規表現パターンを予想値と比較します。例として、融資申請のSSNがあります。

アサートの詳細は、第42.2.3項「アサーション」を参照してください。

42.2 テスト・スイートのコンポーネントの概要

この項では、テスト・ケースを構成するテスト・コンポーネントについて例を挙げて説明します。これらのテストを作成してプロセスにインポートする方法についてはこの章で後述します。

42.2.1 プロセスの開始

最初に、SOAP Webサービスなどのバインディング・コンポーネント・サービスにおけるプロセスの操作を定義します。例42-1では、TestFwk SOAコンポジット・アプリケーションを開始するinitiateの操作を定義しています。また、開始ペイロードも定義されています。

例42-1 プロセスの開始

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Generated by Oracle SCA Test Modeler version 1.0 at [6/13/07 10:50 AM]. -->
<compositeTest compositeDN="TestFwk"
 xmlns="http://xmlns.oracle.com/sca/2006/test">
  <about></about>
  <initiate serviceName="client" operation="initiate" isAsync="true">
    <message>
      <part partName="payload">
        <content>
          <loanApplication xmlns="http://www.autoloan.com/ns/autoloan">
            <SSN>111222333</SSN>
            <email>joe.smith@oracle.com</email>
            <customerName>Joe Smith</customerName>
            <loanAmount>20000</loanAmount>
            <carModel>Camry</carModel>
            <carYear>2007</carYear>
            <creditRating>800</creditRating>
          </loanApplication>
        </content>
      </part>
    </message>
  </initiate>
</compositeTest>

42.2.2 エミュレーション

エミュレーションを作成して、SOAコンポジット・アプリケーションがWebサービス・パートナから受け取るメッセージ・データをシミュレートします。

例42-2のテスト・コードでは、エラーのある融資申請が開始されます。Webサービス・パートナから返信のフォルト・メッセージを受け取ります。

例42-2 エミュレーション

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Generated by Oracle SCA Test Modeler version 1.0 at [7/3/07 3:29 PM]. -->
<compositeTest compositeDN="CompositeTest"
 xmlns="http://xmlns.oracle.com/sca/2006/test">
  <about></about>
  <initiate serviceName="client" operation="initiate" isAsync="true">
    <message>
      <part partName="payload">
        <filePath>loanApplication.xml</filePath>
      </part>
    </message>
  </initiate>
  <wireActions wireSource="LoanBroker/CreditRatingService" operation="process">
    <emulate duration="PT0S">
      <fault faultName="ser:NegativeCredit" xmlns:ser="http://services.otn.com">
        <message>
          <part partName="payload">
            <filePath>creditRatingFault.xml</filePath>
          </part>
        </message>
      </fault>
    </emulate>
  </wireActions>
</compositeTest>

このエミュレーションでは、loanApplication.xmlcreditRatingFault.xmlの2つのメッセージ・ファイルが起動します。loanApplication.xmlの融資申請に0で始まる社会保障番号が記載されている場合、creditRatingFault.xmlファイルは例42-3に示すフォルト・メッセージを返します。

例42-3 フォルト・メッセージ

<error xmlns="http://services.otn.com">
  Invalid SSN, SSN cannot start with digit '0'.
</error>

詳細は、第42.4項「テスト・ケースのコンテンツの作成」を参照してください。

42.2.3 アサーション

アサーションを作成し、SOAコンポジット・アプリケーション実行中の特定時点で、XML文書全体、メッセージのパート・セクション、非リーフ要素またはリーフ要素を検証します。例42-4では、customername変数のコンテンツと指定のコンテンツを必ず一致させる必要があることを、Oracle SOA Suiteに対して指示しています。

例42-4 アサーション

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Generated by Oracle SCA Test Modeler version 1.0 at [6/13/07 10:51 AM]. -->
<compositeTest compositeDN="TestFwk"
 xmlns="http://xmlns.oracle.com/sca/2006/test">
  <about></about>
  <initiate serviceName="client" operation="initiate" isAsync="true">
    <message>
      <part partName="payload">
        <content>
          <loanApplication xmlns="http://www.autoloan.com/ns/autoloan">
            <SSN>111222333</SSN>
            <email>joe.smith@oracle.com</email>
            <customerName>Joe Smith</customerName>
            <loanAmount>20000</loanAmount>
            <carModel>Camry</carModel>
            <carYear>2007</carYear>
            <creditRating>800</creditRating>
          </loanApplication>
        </content>
      </part>
    </message>
  </initiate>
  <wireActions wireSource="client" operation="initiate">
    <assert comparisonMethod="string">
      <expected>
        <location key="input" partName="payload"
 xpath="/s1:loanApplication/s1:customerName"
 xmlns:s1="http://www.autoloan.com/ns/autoloan"/>
        <simple>Joe Smith</simple>
      </expected>
    </assert>
  </wireActions>
</compositeTest>

詳細は、第42.4項「テスト・ケースのコンテンツの作成」を参照してください。

42.2.4 メッセージ・ファイル

メッセージ・インスタンス・ファイルを使用すると、Webサービス・パートナから返されたメッセージ・データをシミュレートできます。受け取ったメッセージ・データをXMLファイルに手動で入力したり、SOAコンポジット・エディタのテスト・モードを使用してファイルをロードすることができます。たとえば、次のメッセージ・ファイルは、パートナから返された信用格付け結果900をシミュレートします。

<rating xmlns="http://services.otn.com">900</rating>

メッセージ・ファイルをテスト・モードにロードする方法の詳細は、第42.4項「テスト・ケースのコンテンツの作成」を参照してください。

42.3 テスト・スイートとテスト・ケースの作成

この項では、SOAコンポジット・アプリケーション用のテスト・スイートとそのテスト・ケースを作成する方法について説明します。テスト・ケースは、テスト・インスタンスの実行時に実行される一連のコマンドで構成されています。


注意:

テスト・スイート名またはテスト・ケース名としてマルチバイト文字列を入力しないでください。このようにすると、Oracle Enterprise Manager Fusion Middleware Controlコンソールからテストを実行したときにエラーが発生する場合があります。

42.3.1 テスト・スイートとテスト・ケースの作成方法

テスト・スイートとテスト・ケースを作成する手順は、次のとおりです。

  1. SOAコンポジット・エディタを開きます。

  2. テスト・スイートを作成するSOAコンポジット・アプリケーションを開きます。

  3. 「アプリケーション・ナビゲータ」または「構造」ウィンドウに移動します。図42-1に示す「構造」ウィンドウが表示されない場合は、「表示」メイン・メニューから「構造」を選択します。

    図42-1 「構造」ウィンドウ

    図42-1の説明が続きます
    「図42-1 「構造」ウィンドウ」の説明

  4. 次の2つのいずれかの方法でテスト・スイートを作成します。

    1. 「アプリケーション・ナビゲータ」で「testsuites」を右クリックし、「テスト・スイートの作成」を選択します。図42-2に詳細を示します。

      図42-2 「テスト・スイートの作成」の選択

      図42-2の説明が続きます
      「図42-2 「テスト・スイートの作成」の選択」の説明

    2. 「構造」ウィンドウで「テスト・スイート」を右クリックし、「テスト・スイートの作成」を選択します。図42-3に詳細を示します。

      図42-3 「テスト・スイートの作成」の選択

      図42-3の説明が続きます
      「図42-3 「テスト・スイートの作成」の選択」の説明

  5. テスト・スイート名(たとえば、Fusion Order DemoのOrderBookingMainTestsuite)を入力します。

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

    「コンポジット・テストの作成」ダイアログが表示されます。

  7. テスト名(この例では、Fusion Order DemoのNoErrorSanityTestを入力)と説明(オプション)を入力します。この説明は、Oracle Enterprise Manager Fusion Middleware Controlコンソールの「ユニット・テスト」タブの「テスト・ケース」ページにある「説明」列に表示されます。

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

    これにより、「アプリケーション・ナビゲータ」にNoErrorSanityTest.xmlという名前のテストが作成され、次のサブフォルダも作成されます。

    • componenttests

      このフォルダはリリース11g リリース1では使用されません。

    • includes

      このフォルダはリリース11g リリース1では使用されません。

    • messages

      テスト・モード・ユーザー・インタフェースを使用してこのディレクトリにロードしたメッセージ・テスト・ファイルが格納されます。

    • tests

      NoErrorSanityTest.xmlが格納されます。

    NoErrorSanityTest.xmlフォルダは「構造」ウィンドウにも表示されます。図42-4に詳細を示します。これは、SOAコンポジット・エディタのテスト・モードであることを示しています。テストの開始、アサーションおよびエミュレーションをテスト・モードで作成できます。テスト・モードでは、他の変更(サービス・コンポーネントのプロパティ・ダイアログの編集、サービス・コンポーネントのエディタへのドロップなど)は実行できません。

    図42-4 NoErrorSanityTest.xmlフォルダ

    図42-4の説明が続きます
    「図42-4 NoErrorSanityTest.xmlフォルダ」の説明

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

    C:\JDeveloper\mywork\application_name\project_name\testsuites\OrderBookingMainTestsuite
    

    テスト・ファイルを追加できるように、componenttestsincludesmessagesおよびtestsの各サブディレクトリがOrderBookingMainTestsuiteの下に作成されます。

  9. テスト・モードを終了してSOAコンポジット・エディタの設計モードに戻るには、デザイナ上部のNoErrorSanityTest.xmlの下にある最後のアイコンをクリックします。図42-5に詳細を示します。

    図42-5 テスト・モードの終了

    図42-5の説明が続きます
    「図42-5 テスト・モードの終了」の説明

  10. プロンプトが表示されたら変更内容を保存します。

  11. 「アプリケーション・ナビゲータ」のtestsuitesフォルダの下にあるNoErrorSanityTest.xmlをダブルクリックしてテスト・モードに戻ります。図42-6に詳細を示します。

    図42-6 テスト・モードへのアクセス

    図42-6の説明が続きます
    「図42-6 テスト・モードへのアクセス」の説明


    注意:

    • testsuitesフォルダのサブフォルダの下に表示されるfilelist.xmlファイルは編集しないでください。これらのファイルは設計時に自動的に作成され、実行時にテスト・ケースの数の計算に使用されます。

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


    Fusion Order Demoでは、テスト・スイートの使用例を示します。Fusion Order Demoの詳細は、第3章「SOAサンプル・アプリケーションの概要」を参照してください。

42.4 テスト・ケースのコンテンツの作成

テスト・ケースは、プロセスの開始、エミュレーションおよびアサーションで構成されます。SOAコンポジット・エディタのテスト・モードで、これらのアクションをテスト・ケースに追加します。プロセスの開始を作成して、SOAコンポジット・アプリケーションへのクライアント・インバウンド・メッセージを開始します。エミュレーションを作成して、SOAコンポジット・アプリケーションがWebサービス・パートナから受け取る入出力メッセージ・データ、フォルト・データ、コールバック・データあるいはこれらすべてのタイプをシミュレートします。アサーションを作成して、プロセスの実行時に、XML文書全体、メッセージのパート・セクション、非リーフ要素およびリーフ要素を検証します。

42.4.1 インバウンド・メッセージの開始方法

インバウンド・メッセージを開始する手順は、次のとおりです。

最初に、SOAコンポジット・アプリケーションへのインバウンド・クライアント・メッセージの送信を開始する必要があります。

  1. テスト・モードでSOAコンポジット・アプリケーションに移動します。

  2. 図42-7に示すように、サービス・バインディング・コンポーネント(例: initiate)をダブルクリックします。

    図42-7 バインディング・コンポーネント・サービスへのアクセス

    図42-7の説明が続きます
    「図42-7 バインディング・コンポーネント・サービスへのアクセス」の説明

    「起動の編集」ダイアログが表示されます。

  3. 表42-1に記載されている詳細を入力します。

    表42-1 「起動の編集」ダイアログのフィールドと値

    フィールド

    サービス

    バインディング・コンポーネント・サービスの名前(client)が表示されます。

    操作

    サービス・バインディング・コンポーネントの操作タイプ(initiate)が表示されます。

    パート

    送信するインバウンド・メッセージのタイプ(例: payload)を選択します。

    次の方法で、クライアントから送信されるシミュレート済メッセージを作成します。

    • 手動で入力

    クリックすると、「値の入力」フィールドにメッセージ・データを手動で入力できます。「サンプルの生成」ボタンをクリックすると、テスト用のサンプル・ファイルが自動的に生成されます。「別名保存」をクリックして、サンプル・ファイルを保存します。

    • ファイルからロード

    「参照」アイコンをクリックすると、メッセージ・データをファイルからロードできます。ファイルは「アプリケーション・ナビゲータ」のmessagesフォルダに追加されます。


    図42-8に、このダイアログを示します。

    図42-8 「起動の編集」ダイアログ

    図42-8の説明が続きます
    「図42-8 「起動の編集」ダイアログ」の説明

    例42-5に、クライアントからのインバウンド・プロセス開始メッセージを示します。

    例42-5 インバウンド・プロセス開始メッセージ

    <?xml version="1.0" encoding="UTF-8" ?>
    <!-- Generated by Oracle SCA Test Modeler version 1.0 at [7/12/07 8:36 AM]. -->
    <compositeTest compositeDN="CompositeTest"
     xmlns="http://xmlns.oracle.com/sca/2006/test">
      <about/>
      <initiate serviceName="client" operation="initiate" isAsync="true">
        <message>
          <part partName="payload">
            <filePath>loanApplication.xml</filePath>
          </part>
        </message>
      </initiate>
    . . .
    . . .
    

    プロセス開始ファイルで参照されるloanApplication.xmlには、融資申請ペイロードが含まれます。例42-6に詳細を示します。

    例42-6 融資申請ペイロード

    <loanApplication xmlns="http://www.autoloan.com/ns/autoloan">
      <SSN>111222333</SSN>
      <email>joe.smith@oracle.com</email>
      <customerName>Joe Smith</customerName>
      <loanAmount>20000</loanAmount>
      <carModel>Camry</carModel>
      <carYear>2007</carYear>
      <creditRating>800</creditRating>
    </loanApplication>
    
  4. 「OK」をクリックします。

42.4.2 アウトバウンド・メッセージのエミュレート方法

アウトバウンド・メッセージをエミュレートする手順は、次のとおりです。


注意:

テスト・ケースのインスタンス内での複数エミュレーションの作成がサポートされるのは、一方のエミュレーションが出力メッセージ用で、他方のエミュレーションがコールバック・メッセージ用の場合のみです。

同期のWebサービス・パートナから返されるメッセージをシミュレートできます。

  1. テスト・モードでSOAコンポジット・アプリケーションに移動します。

  2. 「アプリケーション・ナビゲータ」のtestsuitesフォルダにあるテスト・ケースをダブルクリックします。図42-9に詳細を示します。

    図42-9 テスト・ケースへのアクセス

    図42-9の説明が続きます
    「図42-9 テスト・ケースへのアクセス」の説明

    SOAコンポジット・エディタ内のSOAコンポジット・アプリケーションがリフレッシュされて、テスト・モードで表示されます。このモードでは、テスト情報を定義できます。

  3. テストするSOAコンポジット・アプリケーション領域のワイヤをダブルクリックします。図42-10に示す例では、LoanBrokerプロセスと同期のCreditRating Webサービスの間のワイヤが選択されています。

    図42-10 ワイヤへのアクセス

    図42-10の説明が続きます
    「図42-10 ワイヤへのアクセス」の説明

    これにより、図42-11に示す「ワイヤ・アクション」ダイアログが表示されます。このダイアログでは、SOAコンポジット・アプリケーションの選択したパートに対するエミュレーションとアサーションを設計できます。

    図42-11 「ワイヤ・アクション」ダイアログ

    図42-11の説明が続きます
    「図42-11 「ワイヤ・アクション」ダイアログ」の説明

  4. 「エミュレート」タブをクリックします。

  5. 「追加」アイコンをクリックします。

  6. 「出力のエミュレート」をクリックします。

  7. 表42-2に記載されている詳細を入力します。

    表42-2 出力メッセージのエミュレート・ダイアログのフィールドと値

    フィールド

    パート

    出力を含むメッセージ・パート(例: payload)を選択します。

    次の方法で、Webサービス・パートナから返されるシミュレート済出力メッセージを作成します。

    • 手動で入力

    クリックすると、「値の入力」フィールドにメッセージ・データを手動で入力できます。「サンプルの生成」ボタンをクリックすると、テスト用のサンプル・ファイルが自動的に生成されます。「別名保存」をクリックして、サンプル・ファイルを保存します。

    • ファイルからロード

    「参照」アイコンをクリックすると、メッセージ・データをファイルからロードできます。ファイルは「アプリケーション・ナビゲータ」のmessagesフォルダに追加されます。

    期間

    Webサービス・パートナからメッセージが配信されるまでの最大待機時間を入力します。


    図42-12に、このダイアログを示します。

    図42-12 「出力のエミュレート」が選択された状態の「エミュレート」ダイアログ

    図42-12の説明が続きます
    「図42-12 「出力のエミュレート」が選択された状態の「エミュレート」ダイアログ」の説明

    例42-7に、手動入力またはファイルからロードして作成する、同期のWebサービス・パートナからのシミュレート済出力メッセージを示します。

    例42-7 シミュレート済出力メッセージの例

    <?xml version="1.0" encoding="UTF-8" ?>
    <!-- Generated by Oracle SCA Test Modeler version 1.0 at [7/3/07 3:26 PM]. -->
    <compositeTest compositeDN="CompositeTest"
     xmlns="http://xmlns.oracle.com/sca/2006/test">
      <about></about>
      <initiate serviceName="client" operation="initiate" isAsync="true">
        <message>
          <part partName="payload">
            <filePath>loanApplication.xml</filePath>
          </part>
        </message>
      </initiate>
      <wireActions wireSource="LoanBroker/CreditRatingService" operation="process">
        <emulate duration="PT0S">
          <message>
            <part partName="payload">
              <filePath>creditRatingResult.xml</filePath>
            </part>
          </message>
        </emulate>
      </wireActions>
    </compositeTest>
    

    出力メッセージで参照されるcreditRatingResult.xmlメッセージ・ファイルは、信用格付け結果の詳細を提供します。

    <rating xmlns="http://services.otn.com">900</rating>
    
  8. 「OK」をクリックします。

42.4.3 コールバック・メッセージのエミュレート方法

コールバック・メッセージをエミュレートする手順は、次のとおりです。


注意:

テスト・ケースのインスタンス内での複数エミュレーションの作成がサポートされるのは、一方のエミュレーションが出力メッセージ用で、他方のエミュレーションがコールバック・メッセージ用の場合のみです。

非同期のWebサービス・パートナから返されるコールバック・メッセージをシミュレートできます。

  1. 第42.4.2項「アウトバウンド・メッセージのエミュレート方法」のステップ1からステップ3を実行して、ワイヤ・アクション・ダイアログにアクセスします。

  2. 「エミュレート」タブをクリックします。

  3. 「追加」アイコンをクリックします。

  4. 「コールバックのエミュレート」をクリックします。このフィールドは非同期プロセスの場合のみ有効になります。

  5. 表42-3に記載されている詳細を入力します。

    表42-3 コールバック・メッセージのエミュレートのフィールド

    フィールド

    コールバック操作

    コールバック操作(例: onResult)を選択します。

    コールバック・メッセージ

    非同期プロセスのコールバック・メッセージ名が表示されます。

    パート

    コールバックを含むメッセージ・パート(例: payload)を選択します。

    次の方法で、非同期のWebサービス・パートナから返されるシミュレート済コールバック・メッセージを作成します。

    • 手動で入力

    クリックすると、「値の入力」フィールドにメッセージ・データを手動で入力できます。「サンプルの生成」ボタンをクリックすると、テスト用のサンプル・ファイルが自動的に生成されます。「別名保存」をクリックして、サンプル・ファイルを保存します。

    • ファイルからロード

    「参照」アイコンをクリックすると、メッセージ・データをファイルからロードできます。ファイルは「アプリケーション・ナビゲータ」のmessagesフォルダに追加されます。

    期間

    Webサービス・パートナからコールバック・メッセージが配信されるまでの最大待機時間を入力します。


    図42-13に、このダイアログを示します。

    図42-13 「コールバックのエミュレート」が選択された状態の「エミュレート」ダイアログ

    図42-13の説明が続きます
    「図42-13 「コールバックのエミュレート」が選択された状態の「エミュレート」ダイアログ」の説明

    例42-8に、Webサービス・パートナからのシミュレート済コールバック・メッセージを示します。このメッセージは手動で入力するか、ファイルからロードします。

    例42-8 シミュレート済コールバック・メッセージの例

    <?xml version="1.0" encoding="UTF-8" ?>
    <!-- Generated by Oracle SCA Test Modeler version 1.0 at [7/3/07 3:27 PM]. -->
    <compositeTest compositeDN="CompositeTest"
     xmlns="http://xmlns.oracle.com/sca/2006/test">
      <about></about>
      <initiate serviceName="client" operation="initiate" isAsync="true">
        <message>
          <part partName="payload">
            <filePath>loanApplication.xml</filePath>
          </part>
        </message>
      </initiate>
      <wireActions wireSource="LoanBroker/LoanService" operation="initiate">
        <emulate callbackOperation="onResult" duration="PT0S">
          <message>
            <part partName="payload">
              <filePath>loanOffer.xml</filePath>
            </part>
          </message>
        </emulate>
      </wireActions>
    </compositeTest>
    

    コールバック・メッセージで参照されるloanOffer.xmlメッセージ・ファイルは、信用格付け承認の詳細を提供します。例42-9に詳細を示します。

    例42-9 信用格付け承認の詳細

    <loanOffer xmlns="http://www.autoloan.com/ns/autoloan">
      <providerName>Bank Of America</providerName>
      <selected>false</selected>
      <approved>true</approved>
      <APR>1.9</APR>
    </loanOffer>
    
  6. 「OK」をクリックします。

42.4.4 フォルト・メッセージのエミュレート方法

フォルト・メッセージをエミュレートする手順は、次のとおりです。

Webサービス・パートナから返されるフォルト・メッセージをシミュレートできます。このシミュレーションによって、プロセス内のフォルト処理機能をテストできます。

  1. 第42.4.2項「アウトバウンド・メッセージのエミュレート方法」のステップ1からステップ3を実行して、ワイヤ・アクション・ダイアログにアクセスします。

  2. 「エミュレート」タブをクリックします。

  3. 「追加」アイコンをクリックします。

  4. 「フォルトのエミュレート」をクリックします。

  5. 表42-4に記載されている詳細を入力します。

    表42-4 フォルト・メッセージのエミュレートのフィールド

    フィールド

    フォルト

    パートナから返されるフォルトのタイプ(例: NegativeCredit)を選択します。

    フォルト・メッセージ

    メッセージ名が表示されます。

    パート

    フォルトを含むメッセージ・パート(例: payload)を選択します。

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

    • 手動で入力

    クリックすると、「値の入力」フィールドにメッセージ・データを手動で入力できます。「サンプルの生成」ボタンをクリックすると、テスト用のサンプル・ファイルが自動的に生成されます。「別名保存」をクリックして、サンプル・ファイルを保存します。

    • ファイルからロード

    「参照」アイコンをクリックすると、メッセージ・データをファイルからロードできます。ファイルは「アプリケーション・ナビゲータ」のmessagesフォルダに追加されます。

    期間

    Webサービス・パートナからフォルト・メッセージが配信されるまでの最大待機時間を入力します。


    図42-14に、このダイアログを示します。

    図42-14 「フォルトのエミュレート」が選択された状態の「エミュレート」ダイアログ

    図42-14の説明が続きます
    「図42-14 「フォルトのエミュレート」が選択された状態の「エミュレート」ダイアログ」の説明

    手動入力またはファイルからロードして作成する、Webサービス・パートナからのシミュレート済フォルト・メッセージの例は、第42.2.2項「エミュレーション」を参照してください。

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

42.4.5 アサーションの作成方法

アサーションを作成する手順は、次のとおりです。

アサーションを実行して、変数データやプロセス・フローを検証します。アサーションを使用すると、プロセスの実行時に、XML文書全体のテスト・データ、メッセージのパート・セクション、非リーフ要素またはリーフ要素を検証できます。この検証は、値を抽出し、その値を予想値と比較して行います。

  1. 第42.4.2項「アウトバウンド・メッセージのエミュレート方法」のステップ1からステップ3を実行して、ワイヤ・アクション・ダイアログにアクセスします。

  2. 「アサート」タブをクリックします。

    図42-15に、このダイアログを示します。

    図42-15 「アサート」タブが選択された状態の「ワイヤ・アクション」ダイアログ

    図42-15の説明が続きます
    「図42-15 「アサート」タブが選択された状態の「ワイヤ・アクション」ダイアログ」の説明

  3. 「追加」アイコンをクリックします。

    「アサートの作成」ダイアログが表示されます。

  4. 表42-5に示すように、ダイアログの上部で、実行するアサーションのタイプを選択します。この操作で入力メッセージのみがサポートされる場合は、「入力のアサート」ボタンが有効になります。この操作で入力メッセージと出力メッセージの両方がサポートされる場合は、「入力のアサート」「出力のアサート」ボタンの両方が有効になります。

    表42-5 アサーションのタイプ

    タイプ 説明

    入力のアサート

    インバウンド方向のアサーションを作成する場合に選択します。

    出力のアサート

    アウトバウンド方向のアサーションを作成する場合に選択します。

    コールバックのアサート

    コールバックのアサーションを作成する場合に選択します。

    フォルトのアサート

    フォルトをアプリケーション・フローにアサートする場合に選択します。


  5. 実行するアサーションのタイプに応じて、表42-6に示す各項を参照してください。

    表42-6 アサーションのタイプ

    アサーションの対象 参照先
    • 文書のパート・セクション

    • 非リーフ要素

    • XML文書全体

    第42.4.5.1項「パート・セクション、非リーフ要素またはXML文書全体に対するアサーションの作成」


    リーフ要素

    第42.4.5.2項「リーフ要素に対するアサーションの作成」



42.4.5.1 パート・セクション、非リーフ要素またはXML文書全体に対するアサーションの作成

パート・セクション、非リーフ要素またはXML文書全体に対してアサーションを作成する手順は、次のとおりです。

このテストでは、各値が予想値と比較されます。


注意:

メッセージに複数のパート(たとえば、payload1payload2およびpayload3)がある場合は、各パートに対して個別のアサーションを作成する必要があります。

  1. 「参照」をクリックして、アサートの対象となるターゲットのパート・セクション、非リーフ要素またはXML文書全体を選択します。

    「アサート・ターゲットの選択」ダイアログが表示されます。

  2. 値を選択して、「OK」をクリックします。たとえば、payloadなどの変数を選択してパート・セクション・アサーションを実行します。

    図42-16に、このダイアログを示します。この例は、パート・セクション・アサーションの実行方法を示していますが、XML文書全体アサーションの例では、LoanBrokerRequestMessageが選択され、非リーフ・アサーションの例では、loanApplicationが選択されます。

    図42-16 メッセージのパート・セクションの選択

    図42-16の説明が続きます
    「図42-16 メッセージのパート・セクションの選択」の説明

    「アサートの作成」ダイアログは、選択した変数に基づいてリフレッシュされます。

  3. 残りのフィールドに、表42-7に記載されている詳細を入力します。

    表42-7 「アサートの作成」ダイアログのフィールドと値

    フィールド

    フォルト

    アサートするフォルトのタイプ(例: NegativeCredit)を選択します。このフィールドは、第42.4.5項「アサーションの作成方法」のステップ4「フォルトのアサート」を選択した場合にのみ表示されます。

    アサート・ターゲット

    ステップ2で選択したアサート・ターゲットが表示されます。

    比較方法

    比較の厳密度を指定します。

    • xml-identical: XML文書の要素と属性間で正確な一致が必要な場合に使用します。2つのXML文書の間に差異がある場合、比較は失敗します。たとえば、一方の文書で要素名のpurchaseOrderが使用され、他方の文書で要素名のinvoiceが使用されている場合、比較は失敗します。また、この比較は、2つの要素の子属性は同じだが、各要素内の属性の順序が異なる場合も失敗します。

    • xml-similar: コンテンツの類似性を比較するが、正確な一致は必要ない場合に使用します。たとえば、双方で同じネームスペースURIが使用されているが、それぞれのネームスペース接頭辞が異なる場合は、比較に成功します。この比較は、双方に同じ子属性を持つ同じ要素はあるが、各要素内の属性の順序が異なる場合も成功します。

      前述の2つ例の差異は、リカバリ可能とみなされるため、同一と判断されます。

    XMLファイルのコンテンツ比較の詳細は、XMLUnitに関する次のWebサイトを参照してください。

    http://xmlunit.sourceforge.net/userguide/html/ar01s03.html#The%20Difference%20Engine
    

    パート

    XML文書を含むメッセージ・パート(例: payload)を選択します。

    次の方法で、コンテンツをアサート・ターゲットのコンテンツと比較するXML文書を作成します。

    • 手動で入力

    クリックすると、「値の入力」フィールドにメッセージ・データを手動で入力できます。「サンプルの生成」ボタンをクリックすると、テスト用のサンプル・ファイルが自動的に生成されます。「別名保存」をクリックして、サンプル・ファイルを保存します。

    • ファイルからロード

    「参照」アイコンをクリックすると、メッセージ・データをファイルからロードできます。ファイルは「アプリケーション・ナビゲータ」のmessagesフォルダに追加されます。

    説明

    説明を入力します(オプション)。


    図42-17に、「入力のアサート」が選択された状態のダイアログを示します。

    図42-17 「入力のアサート」が選択された状態の「アサートの作成」ダイアログ

    図42-17の説明が続きます
    「図42-17 「入力のアサート」が選択された状態の「アサートの作成」ダイアログ」の説明

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

    図42-18に示すように、「ワイヤ・アクション」ダイアログに、選択した内容が表示されます。

    図42-18 「アサート」タブが選択された状態の「ワイヤ・アクション」ダイアログ

    図42-18の説明が続きます
    「図42-18 「アサート」タブが選択された状態の「ワイヤ・アクション」ダイアログ」の説明

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

42.4.5.2 リーフ要素に対するアサーションの作成

リーフ要素に対してアサーションを作成する手順は、次のとおりです。

このテストでは、値が予想値と比較されます。

  1. 「参照」をクリックして、アサートするリーフ要素を選択します。

    「アサート・ターゲットの選択」ダイアログが表示されます。

  2. リーフ要素を選択して、「OK」をクリックします。たとえば、loanAmountを選択してアサーションを実行します。図42-19に詳細を示します。

    図42-19 リーフ要素の選択

    図42-19の説明が続きます
    「図42-19 リーフ要素の選択」の説明

    「アサートの作成」ダイアログは、選択したXML文書全体に基づいてリフレッシュされます。

  3. 残りのフィールドに、表42-8に記載されている詳細を入力します。

    表42-8 「アサートの作成」ダイアログのフィールドと値

    フィールド

    フォルト

    アサートするフォルトのタイプ(例: NegativeCredit)を選択します。このフィールドは、第42.4.5項「アサーションの作成方法」のステップ4「フォルトのアサート」を選択した場合にのみ表示されます。

    コールバック操作

    アサートするコールバックのタイプ(例: onResult)を選択します。このフィールドは、第42.4.5項「アサーションの作成方法」のステップ4「コールバックのアサート」を選択した場合にのみ表示されます。

    アサート・ターゲット

    ステップ2で選択した変数アサート・ターゲットが表示されます。

    比較方法

    次の比較タイプを選択します。

    • string: 文字列値を比較します。

    • number: 数値を比較します。

    • pattern-match: 正規表現パターン(例: [0-9]*)を比較します。Java Development Kit(JDK)の正規表現(regexp)コンストラクトがサポートされています。たとえば、パターンab[0-9]*cdの入力は、ab123cdまたはab456cdの値が適正であることを意味します。アスタリスク(*)は、任意の発生数を示します。

    アサートの値

    予想値を入力します。この値はアサート・ターゲットの値と比較されます。

    説明

    説明を入力します(オプション)。


    図42-20に、「入力のアサート」が選択された状態のダイアログを示します。

    図42-20 「アサートの作成」ダイアログ

    図42-20の説明が続きます
    「図42-20 「アサートの作成」ダイアログ」の説明

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

    図42-21に示すように、「ワイヤ・アクション」ダイアログに、選択した内容が表示されます。

    図42-21 「アサート」タブが選択された状態の「ワイヤ・アクション」ダイアログ

    図42-21の説明が続きます
    「図42-21 「アサート」タブが選択された状態の「ワイヤ・アクション」ダイアログ」の説明

42.4.6 アサーションに関する注意事項

テストが実行されて、返されたレスポンス・タイプが想定されているタイプと異なる場合、アサーションはスキップされます。たとえば、特定のメッセージに対してフォルト(RemoteFault)が返されることを想定していたが、かわりにレスポンス(BpelResponseMessage)が返される場合です。

常に想定されている動作をアサートおよびエミュレーションすることをお薦めします。

42.5 テスト・スイートのデプロイおよび実行

テスト・ケースのテスト・スイートを作成した後は、そのスイートをSOAコンポジット・アプリケーションの一部としてデプロイします。次に、そのテスト・スイートをOracle Enterprise Manager Fusion Middleware Controlコンソールから実行します。