この章の内容は次のとおりです。
Oracle SOA Suiteには、SOAコンポジット・アプリケーションに対して反復可能なテストを作成して実行するための、自動化されたテスト・スイート・フレームワークが用意されています。
テスト・スイート・フレームワークの機能は、次のとおりです。
Webサービス・パートナの相互作用のシミュレート
テスト・データによるプロセス・アクションの検証
テスト結果のレポートの作成
テスト・フレームワークは、SOAコンポジット・アプリケーション・レベルでのテストをサポートしています。このタイプのテストでは、ワイヤ、サービス・バインディング・コンポーネント、サービス・コンポーネント(BPELプロセスやOracle Mediatorのサービス・コンポーネントなど)、および参照バインディング・コンポーネントがテストされます。
詳細は、「コンポジット・テストの作成ウィザードを使用したテスト・スイートとテスト・ケースの作成」を参照してください。
テスト・スイートは、1つ以上のテスト・ケースの論理的な集合で構成されます。各テスト・ケースには、テスト・インスタンスの実行時に実行される一連のコマンドが含まれています。テスト・スイートの実行は、テスト実行と呼ばれます。各テストは、単一のSOAコンポジット・アプリケーション・インスタンスに対応しています。
詳細は、次を参照してください。
エミュレーションにより、SOAコンポジット・アプリケーションが実行中に相互作用する次のコンポーネントの動作をシミュレートできます。
コンポジット内部の内部サービス・コンポーネント
コンポジット外部のバインディング・コンポーネント
別のサービス・コンポーネントまたはバインディング・コンポーネントを起動せずに、コンポーネントまたは参照からのレスポンスを指定できます。
詳細は、次を参照してください。
アサーションにより、変数データやプロセス・フローを検証できます。次のタイプのアサーションを実行できます。
XML文書全体のアサーション
XML文書全体の要素値を予想される要素値と比較します。たとえば、融資申請のXML文書全体の内容を別の文書と正確に比較します。XMLUnit
パッケージ内のXMLTestCase
クラスには、XMLファイル間でアサーションを実行するための一連のメソッドが含まれています。これらのメソッドの詳細は、次のURLを参照してください。
http://xmlunit.sourceforge.net
メッセージのパート・セクションのアサート
メッセージのパート・セクションの値を予想値と比較します。例として、XML文書メッセージ全体のペイロード・パートなどがあります。
非リーフ要素のアサーション
XMLフラグメントの値を予想値と比較します。例として、リーフ要素のSSN、email、customerNameおよびloanAmountが記載された融資申請があります。
リーフ要素のアサーション
選択した文字列要素や数値要素の値、または正規表現パターンを予想値と比較します。例として、融資申請のSSNがあります。
アサートの詳細は、「アサーション」を参照してください。
この項では、テスト・ケースを構成するテスト・コンポーネントについて例をあげて説明します。これらのテストを作成してプロセスにインポートする方法についてはこの章で後述します。
最初に、SOAP Webサービスなどのバインディング・コンポーネント・サービスにおけるプロセスの操作を定義します。次の例では、TestFwk
SOAコンポジット・アプリケーションを開始するinitiate
の操作を定義しています。また、開始ペイロードも定義されています。
<?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@example.com</email> <customerName>Joe Smith</customerName> <loanAmount>20000</loanAmount> <carModel>Camry</carModel> <carYear>2007</carYear> <creditRating>800</creditRating> </loanApplication> </content> </part> </message> </initiate> </compositeTest>
エミュレーションを作成して、SOAコンポジット・アプリケーションがWebサービス・パートナから受け取るメッセージ・データをシミュレートします。
次の例のテスト・コードでは、エラーのある融資申請が開始されます。Webサービス・パートナから返信のフォルト・メッセージを受け取ります。
<?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.xml
とcreditRatingFault.xml
の2つのメッセージ・ファイルが起動します。loanApplication.xml
の融資申請に0
で始まる社会保障番号が記載されている場合、creditRatingFault.xml
ファイルは次の例に示すフォルト・メッセージを返します。
<error xmlns="http://services.otn.com"> Invalid SSN, SSN cannot start with digit '0'. </error>
詳細は、「SOAコンポジット・エディタのテスト・モードによるテスト・ケースのコンテンツの編集」を参照してください。
アサーションを作成し、SOAコンポジット・アプリケーション実行中の特定時点で、XML文書全体、メッセージのパート・セクション、非リーフ要素またはリーフ要素を検証します。次の例は、customerName
変数の内容を指定した内容と一致させるようにOracle SOA Suiteに指示するものです。
<?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@example.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>
詳細は、「SOAコンポジット・エディタのテスト・モードによるテスト・ケースのコンテンツの編集」を参照してください。
メッセージ・インスタンス・ファイルを使用すると、Webサービス・パートナから返されたメッセージ・データをシミュレートできます。受け取ったメッセージ・データをXMLファイルに手動で入力したり、SOAコンポジット・エディタのテスト・モードを使用してファイルをロードすることができます。たとえば、次のメッセージ・ファイルは、パートナから返された信用格付け結果900
をシミュレートします。
<rating xmlns="http://services.otn.com">900</rating>
テスト・モードでのメッセージ・ファイルのロードの詳細は、「SOAコンポジット・エディタのテスト・モードによるテスト・ケースのコンテンツの編集」を参照してください。
この項では、SOAコンポジット・アプリケーション用のテスト・スイートとそのテスト・ケースを作成する方法について説明します。テスト・ケースは、テスト・インスタンスの実行時に実行される一連のコマンドで構成されています。
次に示す2つの方法のどちらかで、テスト・スイートとテスト・ケースを作成できます。
「アプリケーション」ウィンドウで
Oracle JDeveloperメイン・メニューから
どちらのオプションも、「コンポジット・テストの作成」ウィザードを起動します。このウィザードでは、開始操作、コールバック操作、および入出力メッセージを定義できます。
注意:
テスト・スイート名またはテスト・ケース名としてマルチバイト文字列を入力しないでください。マルチバイト文字列を入力すると、Oracle Enterprise Manager Fusion Middleware Controlからテストを実行するときにエラーが発生します。
次のいずれかの手順を実行して、新規テスト・スイートを作成するか、既存のテスト・スイート内に新規コンポジット・テストを作成します。表50-1に詳細を示します。
表50-1 テスト・スイートの作成または選択
場所 | 実行する手順 |
---|---|
Oracle JDeveloperメイン・メニュー |
または
|
「アプリケーション」ウィンドウ |
|
「構造」ウィンドウ |
|
Oracle JDeveloperメイン・メニュー |
または
注意: どちらを選択した場合も、新規テスト・スイートを作成するか、または既存のテスト・スイートを選択して新規コンポジット・テストを組み込むかを選択するオプションがあります。 |
図50-1に示すように、「コンポジット・テストの作成」ウィザードの「テスト名とテスト・スイート」ページが表示されます。
このウィザードを使用すると、「SOAコンポジット・エディタのテスト・モードによるテスト・ケースのコンテンツの編集」で説明するように、SOAコンポジット・エディタをテスト・モードで使用してテストの詳細を手動で作成することなく、単純なテストを作成できます。このエディタをテスト・モードで手動で使用する必要があるのは、エミュレーションなどの追加のテスト・メタデータを追加する場合のみです。
表50-2で説明するように、環境に適した値を指定して、「次へ」をクリックします。
表50-2 「コンポジット・テストの作成」ウィザードの「テスト名とテスト・スイート」ページ
フィールド | 説明 |
---|---|
テスト名 |
テストの名前を入力します。 |
説明 |
テストのオプション説明を入力します。この説明は、Oracle Enterprise Manager Fusion Middleware Controlの「ユニット・テスト」タブの「テスト・ケース」ページにある「説明」列に表示されます。 |
テスト・スイート |
このテストを組み込む既存のテスト・スイートを選択するか、「テスト・スイートの作成」ダイアログで新規テスト・スイートを作成するためのアイコンをクリックします。 |
図50-2に示すように、「コンポジット・テストの作成」ウィザードの「サービスと操作」ページが表示されます。
表50-3で説明するように、環境に適した値を指定して、「次へ」をクリックします。
表50-3 「コンポジット・テストの作成」ウィザードの「サービスと操作」ページ
フィールド | 説明 |
---|---|
サービス |
テストするSOAコンポジット・アプリケーションを選択します。 |
演算子 |
操作を選択します。 |
コールバック操作 |
オプションでコールバック(レスポンス)操作を選択します。 |
図50-3に示すように、「コンポジット・テストの作成」ウィザードの「入力メッセージ」ページが表示されます。このページでは、操作をテストするための入力メッセージを指定できます。
表50-4で説明するように、環境に適した値を指定して、「次へ」をクリックします。
表50-4 「コンポジット・テストの作成」ウィザードの「入力メッセージ」ページ
フィールド | 説明 |
---|---|
パート |
入力を含むメッセージ・パート(例: payload)を選択します。操作入力メッセージが複数のパートからなる場合は、パート名を1つずつ変更してそれぞれのメッセージ・パートを指定します。 メッセージ・パートごとに、XMLドキュメントのコンテンツを手動で入力することも、XMLファイルからドキュメントをロードすることもできます。 |
値 |
次の方法で、Webサービス・パートナに送信するシミュレート済入力メッセージを作成します。 |
|
クリックすると、「値の入力」フィールドにメッセージ・データを手動で入力できます。「サンプルの生成」ボタンをクリックすると、テスト用のメッセージ・パート・スキーマからサンプル・ファイルが自動的に生成されます。同じテスト、または同じテスト・スイート内の他のテストに後で使用するためにサンプル・ファイルを保存するには、「別名保存」をクリックします。 |
|
「参照」アイコンをクリックすると、メッセージ・データをファイルからロードできます。このファイルは、「アプリケーション」ウィンドウの「メッセージ」フォルダに追加されます。 |
図50-4に示すように、「コンポジット・テストの作成」ウィザードの「出力メッセージ」ページが表示されます。このページは、操作またはコールバック操作から発行されることが予期される出力メッセージを指定します。
表50-5の説明に従って環境に適した値を指定して、「終了」をクリックします。
表50-5 「コンポジット・テストの作成」ウィザードの「出力メッセージ」ページ
フィールド | 説明 |
---|---|
送信元 |
メッセージを受信する元の外部Webサービスを選択します。 |
パート |
出力を含むメッセージ・パート(例: payload)を選択します。操作入力メッセージが複数のパートからなる場合は、パート名を1つずつ変更してそれぞれのメッセージ・パートを指定します。 メッセージ・パートごとに、XMLドキュメントのコンテンツを手動で入力することも、XMLファイルからドキュメントをロードすることもできます。 |
値 |
次の方法で、Webサービス・パートナから返されるシミュレート済出力メッセージを作成します。 |
|
クリックすると、「値の入力」フィールドにメッセージ・データを手動で入力できます。「サンプルの生成」ボタンをクリックすると、テスト用のサンプル・ファイルが自動的に生成されます。「別名保存」をクリックして、サンプル・ファイルを保存します。 |
|
「参照」アイコンをクリックすると、メッセージ・データをファイルからロードできます。このファイルは、「アプリケーション」ウィンドウの「メッセージ」フォルダに追加されます。 |
テスト・スイートが作成され、SOAコンポジット・エディタのテスト・モードでテストが表示されます。図50-5に詳細を示します。必要な場合は、エミュレーションなどのテスト・メタデータを追加できます。現在のテストが完了した場合は、ツールバーのテスト・イメージ・ボタンをクリックして、別のテストの作成に進むことができます。テストを実行する場合は、緑色の矢印ボタンを押すことができます。
次のサブフォルダとともに、テストが「アプリケーション」ウィンドウに作成されます。
componenttests
includes
messages
テスト・モード・ユーザー・インタフェースを使用してこのディレクトリにロードしたメッセージ・テスト・ファイルが格納されます。
tests
テスト・スイート用のXMLファイルを含んでいます。
テスト・スイートに基づく名前が付けられたフォルダも「構造」ウィンドウに表示されます。これは、のテスト・モードであることを示しています。テストの開始、アサーションおよびエミュレーションをテスト・モードで作成できます。テスト・モードでは、他の変更(サービス・コンポーネントのプロパティ・ダイアログの編集、サービス・コンポーネントのエディタへのドロップなど)は実行できません。
次のオペレーティング・システム・テスト・スイート・ディレクトリも作成されます。
C:\JDeveloper\mywork\application_name\project_name\testsuites\test_suite_name
テスト・モードを終了しての設計モードに戻るには、デザイナ上部の最後にあるアイコンをクリックします。図50-6に詳細を示します。
プロンプトが表示されたら変更内容を保存します。
「アプリケーション」ウィンドウの「テスト・スイート」フォルダにあるXMLファイル名をダブルクリックして、テスト・モードに戻ります。図50-7に詳細を示します。
注意:
testsuitesフォルダのサブフォルダの下に表示されるfilelist.xmlファイルは編集しないでください。これらのファイルは設計時に自動的に作成され、実行時にテスト・ケースの数を計算するために使用されます。
テスト・スイート内に別のテスト・スイートを作成することはできません。ただし、テスト・スイートをサブディレクトリに編成することは可能です。
「コンポジット・テストの作成」ウィザードを使用してテスト・スイートとテスト・ケースの基本的なコンテンツを作成した後、SOAコンポジット・エディタのテスト・モードでさらに更新を行うことができます。
テスト・ケースは、プロセスの開始、エミュレーションおよびアサーションで構成されます。プロセスの開始を作成して、SOAコンポジット・アプリケーションへのクライアント・インバウンド・メッセージを開始します。エミュレーションを作成して、SOAコンポジット・アプリケーションがWebサービス・パートナから受け取る入出力メッセージ・データ、フォルト・データ、コールバック・データあるいはこれらすべてのタイプをシミュレートします。アサーションを作成して、プロセスの実行時に、XML文書全体、メッセージのパート・セクション、非リーフ要素およびリーフ要素を検証します。
注意:
プロパティ・インスペクタでテスト・ケースのコンテンツを編集することもできます。編集するコンポーネントまたはワイヤをシングルクリックすると、ページの下部でプロパティ・インスペクタが編集のために起動します。
インバウンド・メッセージを開始する手順は、次のとおりです。
最初に、SOAコンポジット・アプリケーションへのインバウンド・クライアント・メッセージの送信を開始する必要があります。
アウトバウンド・メッセージをエミュレートする手順は、次のとおりです。
注意:
テスト・ケースのインスタンス内での複数エミュレーションの作成がサポートされるのは、一方のエミュレーションが出力メッセージ用で、他方のエミュレーションがコールバック・メッセージ用の場合のみです。
同期のWebサービス・パートナから返されるメッセージをシミュレートできます。
コールバック・メッセージをエミュレートする手順は、次のとおりです。
注意:
テスト・ケースのインスタンス内での複数エミュレーションの作成がサポートされるのは、一方のエミュレーションが出力メッセージ用で、他方のエミュレーションがコールバック・メッセージ用の場合のみです。
非同期のWebサービス・パートナから返されるコールバック・メッセージをシミュレートできます。
フォルト・メッセージをエミュレートする手順は、次のとおりです。
Webサービス・パートナから返されるフォルト・メッセージをシミュレートできます。このシミュレーションによって、プロセス内のフォルト処理機能をテストできます。
アサーションを作成する手順は、次のとおりです。
アサーションを実行して、変数データやプロセス・フローを検証します。アサーションを使用すると、プロセスの実行時に、XML文書全体のテスト・データ、メッセージのパート・セクション、非リーフ要素またはリーフ要素を検証できます。この検証は、値を抽出し、その値を予想値と比較して行います。
パート・セクション、非リーフ要素またはXML文書全体に対してアサーションを作成する手順は、次のとおりです。
このテストでは、各値が予想値と比較されます。
注意:
メッセージに複数のパート(たとえば、payload1、payload2およびpayload3)がある場合は、各パートに対して個別のアサーションを作成する必要があります。
「コンポジット・テストの作成」ウィザードを使用してテスト・スイートとテスト・ケースの基本的なコンテンツを作成した後、新規または既存のSOAコンポジット・アプリケーションのテスト・スイートに含まれている、個別のBPELプロセス・サービス・コンポーネントのテストを自動化できます。本番環境にデプロイする前に、これらのテスト・ケースを使用して、BPELプロセスとそのWebサービス・パートナの間の相互作用をシミュレートできます。これにより、本番環境へのデプロイメント準備が完了するまでに、BPELプロセスとWebサービス・パートナの相互作用が期待どおりであるかを確認できます。
次に、LoanBroker
BPELプロセス・サービス・コンポーネントに対するコンポーネント・テストを含む、SOAコンポジット・アプリケーションのテスト・スイートの例を示します。
<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@example.com</email>
<customerName>Joe Smith</customerName>
<loanAmount>20000</loanAmount>
<carModel>Camry</carModel>
<carYear>2007</carYear>
<creditRating>800</creditRating>
</loanApplication>
</content>
</part>
</message>
</initiate>
<componentTest componentName="LoanBroker" filePath="assert.xml"/>
</compositeTest>
前の例では、assert.xml
テストによって、変数およびフォルトに対してアサーションが指定されています。
注意:
ビジネス・ルール、ヒューマン・タスク、Oracle MediatorまたはSpringサービス・コンポーネントのテストは自動化できません。
BPELプロセスのアクティビティに対して、変数アサーションおよびフォルト・アサーションを作成できます。次の例では、BPELプロセスでtextVar
およびcrOutput
のコンテンツが指定されたコンテンツと必ず一致するように指示しています。
<bpelTest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/sca/2006/test" componentName="LoanBroker"> <activityActions activityName="elementAssign"> <assert comparisonMethod="number"> <description>Some other assertion.</description> <expected> <location key="textVar" xmlns:loan="http://www.autoloan.com/ns/autoloan"/> <simple>111222333</simple> </expected> </assert> </activityActions> <activityActions activityName="invokeCR"> <assert comparisonMethod="number"> <description>Make sure we got the output.</description> <expected> <location key="crOutput" partName="payload" xpath="/tns:rating" xmlns:tns="http://services.otn.com"/> <simple>560</simple> </expected> </assert> </activityActions> </bpelTest>
BPELプロセスのアクティビティに対するアサーションの作成の詳細は、「アサーションの作成方法」を参照してください。
waitアクティビティを使用すると、プロセスは指定された期間または時間制限に達するまで待機できます。BPELプロセス・サービス・コンポーネントをテストするときには、waitアクティビティをバイパスしてテストを続行することが必要となる場合があります。早送りアクションを使用すると、waitアクティビティをバイパスして、テスト・シナリオを進める時間を指定できます。次の例では、BPELプロセスにwaitアクティビティを1
秒間バイパスするように指示しています。
<bpelTest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/sca/2006/test
TestFwk.xsd"
xmlns="http://xmlns.oracle.com/sca/2006/test"
componentName="LoanBroker">
<activityActions activityName="wait1">
<fastForward duration="PT1S"/>
</activityActions>
</bpelTest>
waitアクティビティの早送りアクションの作成の詳細は、「waitアクティビティのバイパス方法」を参照してください。
BPELプロセスでアクティビティが実行される回数を指定して検証できます。次の例では、invoke
、elementAssign
、invokeCR
およびreplyOutput
の各アクティビティをそれぞれ1回実行するよう、BPELプロセスに対して指示しています。
<bpelTest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/sca/2006/test" componentName="LoanBroker"> <assertActivityExecuted activityName="invoke" executionCount="1"/> <assertActivityExecuted activityName="elementAssign" executionCount="1"/> <assertActivityExecuted activityName="invokeCR" executionCount="1"/> <assertActivityExecuted activityName="replyOutput" executionCount="1"/> </bpelTest>
assertアクティビティ実行の作成の詳細は、「アクティビティの実行回数の指定方法」を参照してください。
BPELプロセスのアクティビティで、変数およびフォルトに対してアサーションを作成できます。
アサーションを作成する手順は、次のとおりです。
次の方法のいずれかを使用してアサーションを作成するアクティビティを選択します。
「構造」ウィンドウで、「アサート」フォルダを右クリックして「作成」を選択するか、または「アサート」フォルダを選択して「追加」ボタンをクリックします。
「Assert」ダイアログが表示されます。
「アクティビティ名」フィールドで、「参照」アイコンをクリックしてアクティビティを選択します。
または
デザイナで特定のBPELアクティビティを右クリックし、「アクティビティ・テスト・データの編集」を選択します。
「アサート」タブをクリックします。
「追加」アイコンをクリックします。
選択したアクティビティが「アクティビティ名」フィールドに表示されます。
表50-14に示すように、残りのフィールドに詳細を入力します。
図50-14 BPELアクティビティに対するアサーション
フィールド | 値 |
---|---|
変数のアサート |
変数をアサートする場合に選択します。 |
フォルトのアサート |
フォルトをアサートする場合に選択します。 |
ターゲット |
次のようにアサートするターゲットを選択します。
|
比較方法 |
XMLドキュメントを比較する場合は、比較の厳密度を指定します。
変数を比較する場合は、次のようにタイプを指定します。
|
パート |
XML文書を含むメッセージ・パート(例: payload)を選択します。 |
値 |
次の方法で、コンテンツをアサート・ターゲットのコンテンツと比較するXML文書を作成します。 |
|
クリックすると、「値の入力」フィールドにメッセージ・データを手動で入力できます。「インスタンス・サンプルの生成」アイコンをクリックすると、テスト用のサンプル・ファイルが自動的に生成されます。「別名保存」アイコンをクリックして、サンプル・ファイルを保存します。 |
|
「参照」アイコンをクリックすると、メッセージ・データをファイルからロードできます。このファイルは、「アプリケーション」ウィンドウの「メッセージ」フォルダに追加されます。 |
説明 |
説明を入力します(オプション)。 |
「OK」をクリックします。
「構造」ウィンドウで「アサート」フォルダを展開し、アサートを作成したアクティビティを表示します。図50-25に詳細を示します。
waitアクティビティをバイパスして、テスト・シナリオを進める時間を指定できます。時間制限が時間切れになると、waitアクティビティは処理されます。
waitアクティビティをバイパスする手順は、次のとおりです。
次の方法のいずれかを使用して、バイパスするwaitアクティビティを選択します。
「構造」ウィンドウで、「早送り」フォルダを右クリックして「作成」を選択するか、または「早送り」フォルダを選択して「追加」ボタンをクリックします。
「早送り」ダイアログが表示されます。
「アクティビティ名」フィールドで、「参照」アイコンをクリックしてwaitアクティビティを選択します。
または
デザイナで特定のwaitアクティビティを右クリックし、「アクティビティ・テスト・データの編集」を選択します。
「早送り」タブをクリックします。このタブは、BPELプロセスにwaitアクティビティが存在する場合にのみ表示されます。
「追加」アイコンをクリックします。
選択したwaitアクティビティが「アクティビティ名」フィールドに表示されます。
「期間」リストで、waitアクティビティをバイパスする期間(1
秒など)を指定します。
「OK」をクリックします。
「構造」ウィンドウで「早送り」フォルダを展開して、waitアクティビティをバイパスして、テスト・シナリオを進める時間を表示します。図50-26に詳細を示します。
waitアクティビティの詳細は、「waitアクティビティによる有効期限の設定」を参照してください。
アクティビティを指定した回数実行するよう指定できます。これにより、アクティビティがプロセス・フローで適切な回数だけ実行されることを確認できます(Whileアクティビティが適切な回数だけ実行されることを確認するなど)。
アクティビティの実行回数を指定する手順は、次のとおりです。
次の方法のいずれかを使用して、実行するアクティビティを選択します。
「構造」ウィンドウで、「アサート実行数」フォルダを右クリックして「作成」を選択するか、または「アサート実行数」フォルダを選択して「追加」ボタンをクリックします。
「アサート実行数」ダイアログが表示されます。
「アクティビティ名」フィールドで、「参照」アイコンをクリックして実行するアクティビティを選択します。
または
デザイナで特定のBPELアクティビティを右クリックし、「アクティビティ・テスト・データの編集」を選択します。
「アサート実行数」タブをクリックします。
「追加」アイコンをクリックします。
選択したアクティビティが「アクティビティ名」フィールドに表示されます。
「カウント」リストで値を選択します。
「OK」をクリックします。
「アクティビティ・テスト・データ」ダイアログは、図50-27のようになります。
「構造」ウィンドウで「アサート実行数」フォルダを展開し、アクティビティに割り当てた実行数を表示します。図50-28に詳細を示します。
テスト・ケースのテスト・スイートを作成した後は、そのスイートをSOAコンポジット・アプリケーションの一部としてデプロイします。その後、Oracle JDeveloper、Oracle Enterprise Manager Fusion Middleware Control、Oracle WebLogic Scripting Tool (WLST)スクリプト、またはant
コマンドからテスト・スイートを実行できます。
Oracle JDeveloperからテスト・スイートを実行できます。テスト・スイートを作成した後、実行する複数のテスト・スイート、実行する個々のテスト・スイートまたは実行するテスト・スイート内の個々のテストを選択できます。
Oracle JDeveloperからテスト・スイートをデプロイして実行する手順は、次のとおりです。
表50-15に示す、該当するタスクを実行します。
表50-15 テスト・スイートの実行オプション
用途 | 「アプリケーション」ウィンドウで |
---|---|
SOAコンポジット・エディタ内で現在テスト・モードで開いているテスト・スイートを実行する。 |
|
すべてのテスト・スイートを実行する。 |
|
個々のテスト・スイートを実行する。 |
|
テスト・スイート内の個々のテストを実行する。 |
|
使用するテスト・サーバーを構成していない場合は、「テスト・サーバーの指定」ダイアログが表示されます。
テスト・サーバー・ホスト名を入力し、必要に応じて「今後は確認せず、「ツール」->「プリファレンス」->「SOA」で保存します」チェック・ボックスを選択します。これを選択すると、「ツール」→「プリファレンス」→「SOA」に進んで構成を変更するまで、このダイアログが再び表示されなくなります。
「OK」をクリックします。
「テスト実行」ダイアログが表示されます。
次の手順を実行します。
テスト実行名を指定します。
実行するテストを選択または選択解除します。
テスト・サーバー上でテストを実行する際のタイムアウト値を秒数で指定します。
「OK」をクリックします。
図50-29に詳細を示します。
SOAコンポジット・アプリケーション(テストを含む)がテスト・サーバーにデプロイされているかどうかのチェックが行われます。テスト・サーバー上でテストを実行する前に、コンポジットをまずデプロイする必要があります。
SOAコンポジット・アプリケーションのデプロイメント状況に応じて、表50-16に示す手順を実行します。
表50-16 SOAコンポジット・アプリケーションがデプロイ済かどうか判別するためのチェック
SOAコンポジット・アプリケーションの状況 | 結果 |
---|---|
デプロイされている。 |
ステップ6に進みます。 |
|
「コンポジットのデプロイの確認」ダイアログが表示されます。
|
デプロイメントが完了したら、テストがテスト・サーバー上で実行されます。
テスト結果を表示します。図50-30に詳細を示します。「テスト結果」ダイアログは、テスト・サーバーおよびコンポジットDNごとに表示されます。テスト・サーバーURL (SOAサーバーのホスト名とポート番号)およびコンポジットDNが右上隅に表示されて、コンテキストを示します。テストは必要な回数だけ実行でき、同じテスト・サーバーまたは異なるテスト・サーバー上で、異なるテストの組合せを選択して実行できます。
テスト結果は、3つの折りたたみ可能なテーブル(マスターから詳細まで)に表示されます。表50-17に詳細を示します。
表50-17 「テスト結果」テーブル
テスト実行 | テスト・ケース | アサート結果 |
---|---|---|
テスト実行の発行直後の場合、現在のテスト実行とそのステータスのサマリーが表示されます。テスト実行についてテスト・サーバーに問い合せた直後の場合、問合せ基準に一致するすべてのテスト実行がテーブルに表示されます。
|
「テスト実行」テーブルから選択したテスト実行のすべてのテスト・ケース、およびステータスを表示します。「リフレッシュ」ボタンをクリックすると、テスト・ケースのステータスがリフレッシュされます。
|
「テスト・ケース」テーブルから選択したテスト・ケースのアサーション結果がすべて表示されます。
|
図50-30の「テスト実行」テーブルで、次の追加作業を実行します。
「テスト実行」テーブルの上にある「検索」アイコンをクリックし、検索基準を指定することによって、テスト・サーバーにテスト実行について問い合せます。
「テスト実行」テーブルの上にある「リフレッシュ」アイコンをクリックして、テスト実行のステータスをリフレッシュします。
図50-30の「テスト・ケース」テーブルで、次の追加作業を実行します。
「テスト・ケース」テーブルの上にある「リフレッシュ」アイコンをクリックして、テスト・ケースのステータスをリフレッシュします。
図50-30の「アサート結果」テーブルで、次の追加作業を実行します。
「アサート結果」表の上にある「失敗のみを表示」チェック・ボックスを選択して、失敗したアサートのみを表示します。
SOAコンポジット・アプリケーションのデプロイ、およびOracle Enterprise Manager Fusion Middleware Controlからのテスト・スイートの実行の詳細は、『Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理』を参照してください。
sca_test
WLSTコマンドを使用したテスト・スイートの実行の詳細は、SOA Suite用WLSTコマンド・リファレンスのsca_testに関する項を参照してください。
ant-sca-test.xml
のantスクリプトを使用したテスト・スイートの実行の詳細は、「SOAコンポジット・アプリケーションのテストを自動化するためのantの使用方法」を参照してください。