本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

WebSphere Integration Developer が提供するテスト・ケースのサポートを利用した Web サービスのテスト

Flannan Lo, Staff Software Developer, IBM
Flannan Lo は IBM Canada Lab のソフトウェア開発者です。彼は主に、WebSphere Integration Developer の統合テスト・クライアントおよびテスト・ケースのサポートの開発に取り組んでいます。

概要: この記事では、WebSphere Integration Developer が提供するテスト・ケースのサポートを利用して Web サービス・モジュールをテストする方法を説明します。また、Web サービス・モジュールのテスト・ケースで、Java 式を使って別のテスト変数に含まれるフィールドを参照する方法についても説明します。

日付:  2010年 9月 27日
レベル:  中級 この記事の原文:  英語
アクティビティー: 3837 ビュー
お気軽にご意見・ご感想をお寄せください: 


概要

この記事で紹介するのは、WebSphere Integration Developer が提供するテスト・ケースのサポートを利用して Web サービス・モジュールをテストする方法です。WebSphere Integration Developer ユーザーのほとんどは、テスト・ケースで Java 式を使ってテスト変数を設定する理由と方法をご存知ないようなので、この記事では Java 式を使用して別の変数に含まれるフィールドを参照する方法についても説明します。さらに重要な点として、SOAP メッセージの変数に含まれる特定のフィールドを参照するために使用できる、いくつかの組み込み Java ユーティリティーを紹介します。

はじめに

WebSphere Integration Developer V7.0 のテスト・ケースのサポートで強化された機能の 1 つは、SOAP (Simple Object Access Protocol) 添付ファイルを使用する Web サービス・モジュールをテストする機能です。本番環境で Web ページ上のボタンをクリックすると、一連のさまざまな Web サービス・モジュールが呼び出されます。Web サービスの開発が完了した後は、これらの Web サービス・モジュールが実際の本番環境で呼び出されるかどうかをテストしたいはずです。WebSphere Integration Developer が提供するテスト・ケースのサポートによって、Web サービス・モジュールが思った通りに機能することを検証するためのテスト・シナリオを作成することができます。

この記事では、WebSphere Integration Developer でのテスト・ケースのサポートを使用して、SOAP 添付ファイルを使用する Web サービスを対象としたシナリオ・ベースのテスト・ケースを作成する方法を説明します。シナリオ・ベースのテスト・ケースでは、Web サービスから返された SOAP レスポンス・メッセージを使って別の Web サービスを呼び出さなければならない場合がよくありますが、テスト・ケースのサポートに組み込まれた Java 式の機能を使用して、このような処理を行う方法についても詳しく説明します。

この記事では WebSphere Process Server V7.0.0.3 を使用しているので、読者の皆さんには WebSphere Integration Developer および WebSphere Process Server を V7.0.0.3 に更新することを是非ともお薦めします。記事で言及する API の一部は、V7.0.0.3 より前のバージョンでは使用することができません。


Web サービス・モジュールを作成する

シナリオ・ベースのテスト・ケースを作成する前に、WebSphere Integration Developer V7.0 で Web サービス・モジュールを作成する方法を簡単に説明しておきます。この記事のために、これから 2 つの Web サービス・エクスポートを作成して、シナリオ・ベースのテスト・ケースでのテストに使用できるように準備します。注: 以下の例は、WS-I 準拠の SOAP 添付ファイルをサポートする WebSphere Integration Developer V7.0.0.3 に基づいて作成されています。

以下の手順に従って、2 つの Web サービスを作成してください。

  1. WebService_InitialPI.zip」プロジェクト交換ファイルをインポートします。
  2. WebServiceModule」のアセンブリー・ダイアグラムを開きます。

図 1. 「WebServiceModule」のアセンブリー・ダイアグラム
Assembly Diagram of WebServiceModule

アセンブリー・ダイアグラムには、2 つのメディエーション・コンポーネントがあります。そのなかの 1 つの「UserMediation」は、指定されたユーザー ID に対応するユーザー・レコードを検索するサービスです。このサービスはユーザーの ID と写真の添付をパラメーターとして取り、対応するユーザー・レコードを返します。もう 1 つの「AttachmentMediation」という名前のコンポーネントは、登録されたユーザーの PDF ファイルを送信するサービスで、「UserMediation」によって返されたユーザー・レコードと PDF 添付ファイルをパラメーターとして取ります。このサービスが返すのは、送信ステータスと送信した PDF 添付ファイルです。

  1. 「UserMediation」コンポーネントを選択し、コンテキスト・メニューから「Generate Export (エクスポートの生成)」 > 「Web Service Binding (Web サービス・バインディング)」の順に選択します。
  2. 「SOAP1.1/HTTP」を選択し、「Finish (終了)」をクリックします。

図 2. 「UserInterfaceExport1」のトランスポート・プロトコルを選択する

  1. アセンブリー・ダイアグラムで、今度は「AttachmentMediation」コンポーネントを選択し、コンテキスト・メニューから同じく「Generate Export (エクスポートの生成)」 > 「Web Service Binding (Web サービス・バインディング)」の順に選択します。
  2. 「SOAP1.1/HTTP」を選択し、「Next (次へ)」をクリックします。
  3. 表示された次のページで「Next (次へ)」をクリックして最後のページに進みます。
  4. 「Use WS-I compliant SOAP message (WS-I 準拠の SOAP メッセージを使用する)」を選択して、「Finish (終了)」をクリックします。

図 3. 「AttachmentInterfaceExport1」に WS-I 準拠の指定をする

  1. アセンブリー・ダイアグラムを保存します。
  2. 「UserInterfaceExport1」を選択して「Properties (プロパティー)」ビューを開きます。
  3. 「Name (名前)」フィールドを選択して Alt+Shift+R を押し、エクスポート名を「UserWebService」に変更します。
  4. 「AttachmentInterfaceExport1」を選択して「Properties (プロパティー)」ビューを開きます。
  5. 「Name (名前)」フィールドを選択して Alt+Shift+R を押し、エクスポート名を「AttachmentWebService」に変更します。

図 4. アセンブリー・ダイアグラムに作成された Web サービス

上記の手順で、テスト対象の 2 つの Web サービスが作成されました。次のセクションでは、WebSphere Integration Developer に用意されているテスト・ケースのサポートを利用して、これらの Web サービスをテストする方法を説明します。


シナリオ・ベースのテスト・ケースを作成する

WebSphere Integration Developer が提供するテスト・ケースのサポートを使用すれば、複数のモジュール呼び出しを関連させたシナリオ・ベースのテスト・ケースを作成することができます。このセクションでは前のセクションで作成した Web サービスを例に、シナリオ・ベースのテスト・ケースを作成する方法を説明します。

以下の手順に従って、Web サービスをテストするためのテスト・ケースを作成します。

  1. 「Business Integration (ビジネス・インテグレーション)」ビューで「WebServiceTestProject」を選択します。
  2. コンテキスト・メニューから「New (新規)」 > 「Component Test Suite (コンポーネント・テスト・スイート)」の順に選択します。
  3. 新規に作成するテスト・スイートの名前を指定して、「Next (次へ)」をクリックします。
  4. 「Scenario-based testing (シナリオ・ベース・テスト)」を選択し、「Next (次へ)」をクリックします。

図 5. テスト・パターンを選択する

  1. 「Define a Test Scenario (テスト・シナリオの定義)」ページで作成するテスト・ケースの対象は、前のセクションで作成した 2 つの Web サービスです。これらのサービスをテストするには、まず、UserWebServicegetUser メソッドを呼び出してユーザー ID に対応するユーザー・レコードを検索し、次に AttachmentWebService の submitDocument メソッドを呼び出して、そのユーザーの PDF ファイルを送信しなければなりません。この内容のテスト・ケースを作成するには、以下の手順に従ってください。
    • テスト・ケースの名前を指定します。
    • 「Available components and interfaces (使用可能なコンポーネントおよびインターフェース)」セクションで、「WebServiceModule」 > 「UserWebService」 > 「UserInterface」の順に展開します。
    • 「Testable operations (テスト可能な操作)」セクションに表示された「getUser」をダブルクリックすることによって、この操作を「Test Scenario (テスト・シナリオ)」セクションに追加します。
    • 今度は「Available components and interfaces (使用可能なコンポーネントおよびインターフェース)」セクションで、「WebServiceModule」 > 「AttachmentWebService」 > 「AttachmentInterface」の順に展開します。
    • 「Testable operations (テスト可能な操作)」セクションに表示された「submitDocument」をダブルクリックして、この操作を「Test Scenario (テスト・シナリオ)」セクションに追加します。

図 6. シナリオ・ベースのテスト・ケースを定義する

  1. 「Finish (終了)」をクリックしてテスト・シナリオを作成します。

新規のテスト・スイートが自動的にテスト・スイート・エディターに開きます。次は、呼び出しのパラメーター値と期待される結果を設定します。

テスト・ケースに値を設定する

テスト・スイートを作成した後は、テスト・スイート・エディターでテスト・ケースの詳細を指定します。「Test Data Table (テスト・データ・テーブル)」ビューを開くと、いくつかの変数が定義されていることがわかります。これらの変数は、テスト・ケースでの呼び出しタスクで使用されます。

テスト・ケースの変数の値を設定するには、以下の手順に従います。

  1. テスト・スイート・エディターで「Test Cases (テスト・ケース)」ページに切り替えます。
  2. 「1. Invoke UserWebService:getUser (1. UserWebService:getUser の呼び出し)」タスクを選択します。
  3. 「Detailed Properties (詳細プロパティー)」セクションの一番下までスクロール・ダウンして「Request (リクエスト)」タブを見つけます。「Request (リクエスト)」タブには、2 つの変数が定義されています。
  4. 「request」リンクをクリックします。すると、リクエストに関連付けられた変数が「Test Data Table (テスト・データ・テーブル)」ビューに表示されます。
  5. 「request」変数の SOAP 本体を展開します。
  6. 「userId」フィールドに任意の ID を入力します (例: 12345)。
  7. 「picture」フィールドを選択し、「Type (タイプ)」列のセルをクリックします。
  8. ドロップダウン・メニューから「image/gif」を選択します。

図 7. swaRef 添付ファイルのコンテンツ・タイプを選択する

  1. セルを右クリックし、コンテキスト・メニューから「Browse for File (ファイルを参照)」を選択します。注: テスト・ケースを実行する時点では、ここで選択するファイルのアプリケーションも同じくサーバーにデプロイされている必要があります。したがって、添付ファイルはテスト・ケースを作成するテスト・プロジェクトに保管することを強くお薦めします。
  2. 「Browse for File (ファイルの参照)」ダイアログで、「WebServiceTestProject」を展開します。
  3. 「picture.gif」を選択し、「Finish (終了)」をクリックします。
  4. テスト・スイート・エディターの「Test Cases (テスト・ケース)」ページに戻ります。
  5. 「Response (レスポンス)」タブに切り替えます。
  6. 「response」リンクをクリックして、レスポンスに関連付けられた変数を「Test Data Table (テスト・データ・テーブル)」ビューに表示します。
  7. 「response」変数の任意の列のセルを右クリックし、コンテキスト・メニューから「Set To (設定)」 > 「Equals Default (デフォルト値と等しい)」の順に選択します。
  8. SOAP 本体を展開し、以下の値を指定します。
    • 「userId」フィールドに、ステップ 6 で指定した ID (12345) を入力します。
    • 「firstname」フィールドに「Joe」と入力します。
    • 「lastname」フィールドに「Smith」と入力します。
    • 「picture」フィールドに「/WebServiceTestProject/picture.gif」と入力します。

図 8. Web サービスから返されると想定される SOAP メッセージ

  1. テスト・スイートを保存します。

これで、最初の Web サービス呼び出しのテストに使用する値が設定できました。これらの値のうち、SOAP レスポンス・メッセージに設定した値のいくつかは、2 番目のサービス呼び出しで参照しなければなりません。次のセクションでは、Java 式を使用して値を参照する方法を説明します。

Java 式を使用する

WebSphere Integration Developer でのテスト・ケースのサポートによって、Java 式を使用して別の変数のフィールドを参照することができます。「Test Data Table (テスト・データ・テーブル)」ビューでは、各変数について Java 式を指定できるようにコンテンツ・アシストが提供されます。このサンプルでは、Java 式を使用して SOAP メッセージ内のフィールドにアクセスする方法に焦点を絞ります。SOAP メッセージ型の変数に対しては、XPath 式を使って SOAP メッセージ内のフィールドを取得する独自の Java コードを作成することができます。あるいは別の方法として、テスト・ケースのサポートが提供する組み込みユーティリティーを使用して特定の SOAP メッセージ・フィールドを取得することも可能です。テスト・ケースのサポートではこれらの組み込みユーティリティーを主に使用して、Web サービスから返された SOAP メッセージを検証します。

以下の手順で、組み込みユーティリティーを使用して別の SOAP メッセージ変数のフィールドを参照する方法を説明します。

  1. Java メソッドを呼び出すには、そのメソッドを「Test Data Table (テスト・データ・テーブル)」ビューに定義する Java クラスをインポートしておく必要があります。その方法は、以下のとおりです。
    • 「Test Data Table (テスト・データ・テーブル)」ビューの「Imports (インポート)」ページに進みます。
    • 「Add (追加)」をクリックして「Select Type to Import (インポートする型の選択)」ダイアログを開きます。
    • com.ibm.wbit.comptest.ctnative.runtime.utils.DOMHelper」を選択し、「OK」をクリックします。このユーティリティー・クラスが提供する API を使用すれば、XPath 式を指定して SOAP メッセージの特定のフィールドを取得することができます。このユーティリティー・クラスの詳細については、「API リファレンス」セクションを参照してください。

図 9. Java クラスをテスト・データ・テーブルにインポートする

  1. 「Default (デフォルト)」ページに戻ります。
  2. テスト・スイート・エディターの「Test Cases (テスト・ケース)」ページに進みます。
  3. 「2. Invoke AttachmentWebService:submitDocument (2. AttachmentWebService:submitDocument の呼び出し)」を選択します。
  4. 「Detailed Properties (詳細プロパティー)」セクションの一番下までスクロール・ダウンして「Request (リクエスト)」タブをクリックします。
  5. 「request」変数をクリックして、リクエストに関連付けられた変数を「Test Data Table (テスト・データ・テーブル)」ビューに表示します。
  6. 変数の SOAP 本体を展開します。
  7. 以下の変数のフィールドのそれぞれで、コンテキスト・メニューから「Set Format (フォーマットの設定)」 > 「Java Expression (Java 式)」の順に選択して変数値のフォーマットを Java 式に設定します。
    • userId
    • firstname
    • lastname
    • picture
  8. テスト・ケースのサポートでは、com.ibm.wbit.comptest.ct.soap.SoapWrapper 型の SOAP 変数を定義しています。この Java 型の詳細は、「API リファレンス」セクションに記載されています。以下の表に記載する Java 式を、対応するそれぞれのフィールドに入力してください。

表 1. SOAP メッセージ変数に設定する Java 式
SOAP メッセージ・フィールドJava 式
userId(String) DOMHelper.getSelectedNode(response.getMessage(), "/soapenv:Envelope/soapenv:Body/in:getUserResponse/user/userId/text()", null)
firstname(String) DOMHelper.getSelectedNode(response.getMessage(), "/soapenv:Envelope/soapenv:Body/in:getUserResponse/user/firstname/text()", null)
lastname(String) DOMHelper.getSelectedNode(response.getMessage(), "/soapenv:Envelope/soapenv:Body/in:getUserResponse/user/lastname/text()", null)
pictureresponse.getAttachment((String) DOMHelper.getSelectedNode(response.getMessage(), "/soapenv:Envelope/soapenv:Body/in:getUserResponse/user/picture/text()", null))

最初の 3 つのフィールド (userId、firstname、lastname) が要求するのは String 型の値です。これらのフィールドを SOAP メッセージ (すなわち、response.getMessage()) から取得するには、フィールドに XPath 式を指定して、DOMHelper を呼び出します。XPath 式で使用する名前空間接頭辞は、実際の SOAP メッセージに定義された名前空間接頭辞と完全に一致していなければならないことに注意してください。実際の SOAP メッセージで使用される名前空間接頭辞は、テスト・スイートを作成する時点では既知でない場合がありますが、その場合には、XPath 式で使用した名前空間と接頭辞が含まれるマップを DOMHelper.getSelectedNode() に提供し、実行時に名前空間が正しく解決されるようにするという手段を用いすることができます。その具体的な方法については、「独自の Java クラスを作成する」のセクションで説明します。

「picture」フィールドは SOAP 添付ファイル・フィールドです。この場合、レスポンス SOAP メッセージからコンテンツ ID を取得し、その ID を使って response.getAttachment(contentId) を呼び出すことで、SOAP メッセージに含まれる添付ファイルのバイナリー・コンテンツを取得することができます。

  1. 「pdf」フィールドを選択し、コンテキスト・メニューの「Browse for File (ファイルを参照)」アクションにより、「/WebServiceTestProject/test.pdf」に設定します。
  2. テスト・スイート・エディターの「Test Cases (テスト・ケース)」ページに戻ります。
  3. 「Response (レスポンス)」タブに切り替えます。
  4. 「response」リンクをクリックして、レスポンスに関連付けられた変数を「Test Data Table (テスト・データ・テーブル)」ビューに表示します。
  5. この変数の任意の列のセルを右クリックし、コンテキスト・メニューから「Set To (設定)」 > 「Equals Default (デフォルト値と等しい)」の順に選択します。
  6. 変数の SOAP 本体を展開し、「submitDocumentResult0」フィールドに「OK」と入力します。
  7. レスポンス SOAP メッセージ変数の「pdf」フィールドを右クリックし、コンテキスト・メニューから「Set Format (フォーマットの設定)」 > 「Java Expression (Java 式)」の順に選択します。
  8. 「Expected (想定値)」列のセルに、「request_2.getAttachmentByPartName("pdf")」と入力します。この Java 式が、リクエスト SOAP メッセージに含まれる pdf 添付ファイルのバイナリー・コンテンツを取得します。

図 10. Java 式をテスト・データ変数で使用する

  1. テスト・スイートを保存します。

これで、Web サービスのシナリオ・ベースのテスト・ケースの作成は完了しました。次は、このシナリオ・ベースのテスト・ケースを統合テスト・クライアントで実行します。


シナリオ・ベースのテスト・ケースを実行する

シナリオ・ベースのテスト・ケースを実行するには、「Business Integration (ビジネス・インテグレーション)」ビューでテスト・スイートを右クリックし、コンテキスト・メニューから「Run Test (テストの実行)」を選択します。この操作によってテスト・クライアント・エディターが開きます。テスト・クライアント・エディターで「Continue (続行)」をクリックすると、テストが実行されます。テストが完了したら、テストの実行によって生成されたテスト・トレースを調べます。


図 11. 統合テスト・クライアントでテスト・スイートを実行する

「Binding (バインディング)」イベントを選択すると、Web サービスに送信または返された SOAP メッセージと添付ファイルを確認することができます。


図 12. 統合テスト・クライアントに表示された Web サービス・レスポンスのバインディング・イベント


独自の Java クラスを作成する

場合によっては、独自の Java ユーティリティーを作成して「Test Data Table (テスト・データ・テーブル)」ビューで使用しなければならないこともあります。そのような場合には、コンポーネント・テスト・プロジェクト、または共有ライブラリーで Java ユーティリティーを作成してから、テスト・データ・テーブルにインポートしてください。インポートの方法は、「Java 式を使用する」のセクションで説明した方法と同様です。このセクションでは、DOMHelper.getSelectedNode() API に提供するカスタム名前空間マップを作成する方法を説明します。

  1. 「Java」パースペクティブに切り替えます。
  2. 「WebServiceTestProject」を選択し、ワークベンチ・メニューから「File (ファイル)」 > 「New (新規)」 > 「Class (クラス)」の順に選択します。
  3. 表示されるダイアログで、以下に示すスクリーンショットのようにパッケージ名およびクラス名を指定します。「Finish (終了)」をクリックして次の作業に移ります。

図 13. 新規 Java クラスを作成する

  1. custom.NameSpaceMapManager が Java エディターに開きます。
  2. この Java クラスに、以下に示す getNamespaceInfo という名前の静的メソッドを作成します。

リスト 1. getNamespaceInfo() メソッドのソース・コード

public class NameSpaceMapManager {

   public static NamespaceInfo getNamespaceInfo() {
      NamespaceInfo nsInfo = new NamespaceInfo();
      nsInfo.addNamespace("ns0", "http://schemas.xmlsoap.org/soap/envelope/");
      nsInfo.addNamespace("ns1", "http://WebServiceLibrary/UserInterface");
      return nsInfo;
   }
}

  1. テスト・スイート・エディターで WebServiceTest を開きます。
  2. custom.NameSpaceMapManager をテスト・データ・テーブルにインポートします。

図 14. 独自の Java クラスをテスト・データ・テーブルにインポートする

  1. 「Test Data Table (テスト・データ・テーブル)」ビューの「Default (デフォルト)」ページに戻り、request_2 変数の userId、firstname、lastname、picture の各フィールドで、Java 式を以下のように変更します。

表 2. SOAP メッセージ変数の Java 式の変更
SOAP メッセージ・フィールドJava 式
userId(String) DOMHelper.getSelectedNode(response.getMessage(), "/ns0:Envelope/ns0:Body/ns1:getUserResponse/user/userId/text()", NameSpaceMapManager.getNamespaceInfo())
firstname(String) DOMHelper.getSelectedNode(response.getMessage(), "/ns0:Envelope/ns0:Body/ns1:getUserResponse/user/firstname/text()",NameSpaceMapManager.getNamespaceInfo())
lastname(String) DOMHelper.getSelectedNode(response.getMessage(), "/ns0:Envelope/ns0:Body/ns1:getUserResponse/user/lastname/text()",NameSpaceMapManager.getNamespaceInfo())
pictureresponse.getAttachment((String) DOMHelper.getSelectedNode(response.getMessage(), "/ns0:Envelope/ns0:Body/ns1:getUserResponse/user/picture/text()",NameSpaceMapManager.getNamespaceInfo()))

上記の表から、新しい XPath 式が NameSpaceMapManager クラスに定義した名前空間接頭辞を使用していること、そして NameSpaceMapManager に作成した名前空間マップが DOMHelper.getSelectedNode() API に渡されていることがわかります。

  1. テスト・スイートを保存します。
  2. これで、テスト・ケースをもう一度「シナリオ・ベースのテスト・ケースを実行する」のセクションで概説した手順に従って実行することができます。

共有ライブラリーを作成する

独自の Java ユーティリティーを他のコンポーネント・テスト・プロジェクトでも再利用したい場合には、共有ライブラリーに Java ユーティリティーを作成してください。共有ライブラリーを作成する手順は以下のとおりです。

  1. ワークベンチ・メニューから「File (ファイル)」 > 「New (新規)」 > 「Library (ライブラリー)」の順に選択します。

図 15. 新規ライブラリーを作成する

  1. 新規ライブラリーに任意の名前を入力し、「Finish (終了)」をクリックします。
  2. 新しく作成したライブラリーを使用するには、テスト・ケースが含まれるコンポーネント・テスト・プロジェクトの依存関係としてライブラリーを追加しなければなりません。それには「Business Integration (ビジネス・インテグレーション)」ビューで「WebServiceTestProject」を展開し、「Dependencies (依存関係)」をダブルクリックします。
  3. 依存関係エディターが開きます。「Add (追加)」ボタンをクリックして、ライブラリーをコンポーネント・テスト・プロジェクトに追加します。

図 16. コンポーネント・テスト・プロジェクトで共有ライブラリーを参照する

  1. 「Save (保存)」をクリックして依存関係エディターを保存します。
  2. 以上の手順でコンポーネント・テスト・プロジェクトは新しいライブラリーを参照するようになったので、後は「独自の Java クラスを作成する」のセクションで説明した手順に従えば、このライブラリーに Java ユーティリティーを作成することができます。

API リファレンス

このセクションでは、テスト・ケースのサポートが提供する組み込みユーティリティーの javadoc を記載します。このユーティリティーは、テスト・スイートで SOAP メッセージ変数にアクセスする際に役立つものです。以下に記載する javadoc は、WebSphere Process Server V7.0.0.3 で生成されていることに注意してください。一部のメソッドは、V7.0.0.3 より前のバージョンでは使用することができません。


リスト 2. com.ibm.wbit.comptest.ct.soap.SoapWrapper の javadoc

/**
 * @return the SOAP envelope in this wrapper.
 */
public Document getMessage();

/**
 * 
 * @param index
 *        the position of the attachment in this wrapper
 * @return the content of the attachment in raw bytes at the given position.
 */
public byte[] getAttachment(int index);

/**
 * 
 * @param contentID
 *       the corresponding content ID of the attachment in this wrapper
 * @return the content of the attachment in raw bytes.
 */
public byte[] getAttachment(String contentID);

/**
 * 
 * @param partName
 *      the corresponding part name of the attachment in this wrapper
 * @return the content of the attachment in raw bytes.
 */
public byte[] getAttachmentByPartName(String partName);

/**
 * @return the number of attachments found in this wrapper.
 */
public int getAttachmentCount();


リスト 3. com.ibm.wbit.comptest.ctnative.runtime.utils.DOMHelper の javadoc

/**
 * Look up the object from the specified DOM document using the XPath
 * expression.
 * 
 * @param target
 *            the DOM Document node
 * @param xpathExpr
 *            the XPath expression for the lookup
 * @param nsInfo
 *            contains the prefix-namespace pair. Since the namespace
 *            prefixes used in the DOM document can be anything, it allows
 *            the specified XPath expression to use its own namespace
 *            prefixes and this API will try to use this object to map them
 *            to the namespace prefixes used in the actual DOM document. If
 *            this is <code
type="inline">null</code>, the XPath expression must use the
 *            same namespace prefixes as appeared in the DOM document.
 * @return the value or DOM node identified by the given XPath expression.
 * @throws Exception
 */
public static Object getSelectedNode(Object target, String xpathExpr,
        NamespaceInfo nsInfo) throws Exception;


リスト 4. com.ibm.wbit.comptest.ctnative.runtime.utils.NamespaceInfo の javadoc

/**
 * Add a namespace pair to this map.
 * 
 * @param prefix
 *            the namespace prefix
 * @param namespace
 *            the namespace defined by the specified prefix
 */
public void addNamespace(String prefix, String namespace);

/**
 * Finds the namespace defined by the given prefix in this map.
 * 
 * @param prefix
 *            a namespace prefix cached in this map
 * @return the namespace paired with the given prefix or null if the prefix
 *         cannot be found in this map.
 */
public String getNamespace(String prefix);

/**
 * Finds the namespace prefix associated to the given namespace cached in
 * this map.
 * 
 * @param namespace
 *            the namespace cached in this map
 * @return the associated namespace prefix or null if the namespace is not
 *         found in this map.
 */
public String getPrefix(String namespace);


まとめ

WebSphere Integration Developer が提供するテスト・ケースのサポートにより、Web サービス・モジュールの包括的なテスト・ケースを作成することが可能になります。この記事では、複数の呼び出しを伴った Web サービス・モジュールのシナリオ・ベースのテスト・ケースを作成する方法、そして Java 式を使用して別の変数に含まれるフィールドを参照する方法を説明しました。この知識を生かして、皆さんそれぞれの Web サービス・アプリケーションに応じた独自のテスト・ケースを作成して、アプリケーションが確実に機能することを検証してください。



ダウンロード

内容ファイル名サイズダウンロード形式
WebService_CompletePIWebService_CompletePI.zip10KBHTTP
WebService_InitialPIWebService_InitialPI.zip10KBHTTP
WebService_OwnJavaClass_CompletePIWebService_OwnJavaClass_CompletePI.zip10KBHTTP

ダウンロード形式について


参考文献

学ぶために

製品や技術を入手するために

  • ご自分に最適な方法で IBM 製品を評価してください。評価の方法としては、製品の試用版をダウンロードすることも、オンラインで製品を試してみることも、クラウド環境で製品を使用することもできます。また、SOA Sandbox では、数時間でサービス指向アーキテクチャーの実装方法を効率的に学ぶことができます。

議論するために

  • My developerWorks コミュニティーに加わってください。ここでは他の developerWorks ユーザーとのつながりを持てる他、開発者が主導するブログ、フォーラム、グループ、ウィキを調べることができます。

著者について

Flannan Lo は IBM Canada Lab のソフトウェア開発者です。彼は主に、WebSphere Integration Developer の統合テスト・クライアントおよびテスト・ケースのサポートの開発に取り組んでいます。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=SOA and web services, WebSphere
ArticleID=559931
ArticleTitle=WebSphere Integration Developer が提供するテスト・ケースのサポートを利用した Web サービスのテスト
publish-date=09272010
author1-email=flannanl@ca.ibm.com
author1-email-cc=

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。