このセクションでは、Call Back ツールを構成して適用し、非同期サーバー レスポンスを待機することで、非同期テストをサポートする方法を説明します。

このセクションの内容:

Call Back Tool とは

SOAtest は Parlay、Parlay-X、SCP (SOAP Conversation Protocol)、WS-Addressing、カスタム プロトコル、JMS、TIBCO、WebSphere MQ および SonicMQ などの非同期 HTTP のテストをサポートしています。Call Back ツールを構成すると、SOAtestはコール バック メッセージを処理するためのサーバーをセットアップします。サーバーはツール構成で指定されたキーを使用して受信メッセージを認識します。

Call Back Tool の構成

開始する前に、ローカル SOAtest サーバーが実行されていることを確認してください。サーバーは、[SOAtest サーバー] ビューでサーバー ノードを右クリックし、[サーバーの起動] を選択して起動できます。


ワークスペースに [SOAtest サーバー] ビューが表示されていない場合、[Parasoft] メニューの [ビューの表示] > [SOAtest サーバー] をクリックします。 

  1. SOAP Client ツールから SOAP の呼び出しが行われていることを確認します。
  2. メインのテスト スイート ノードを選択し、[テストまたは出力の追加] ボタンをクリックします。[テストの追加] ウィザードが表示されます。
  3. [テストの追加] ウィザードで [標準テスト] > [Call Back] ツールを選択し、[終了] ボタンをクリックします。テスト スイートに Call Back ツール ノードが表示されます。
  4. [Call Back ツール] テスト ノードをダブルクリックします。Call Back ツールのワークスペースに次のオプションが表示されます。


    • データ ソース: (テスト スイートにデータ ソースが追加されている場合にだけ利用できます) コール バック値として使用するパラメーターが格納されたデータ ソースを選択します。
    • コール バック URL: Call Back ツールのサーバーの場所が表示されます。HTTP プロトコルの場合にだけ表示されます。
    • タイムアウト (秒): SOAtest がリクエストがタイム アウトしたとみなす時間を秒単位で指定します。
    • プロトコル: 使用する非同期プロトコルを指定します。
      • Parlay: Parlay プロトコルの場合に指定します。
      • Parlay X: Parlay X プロトコルの場合に指定します。
      • SCP: SCP プロトコルの場合に指定します。
      • WS-Addressing: WS-Addressing プロトコルの場合に指定します。
      • カスタム: HTTP 上でのカスタム メッセージ応答条件を有効にします。Call Back ツールは、指定された XPath が指す要素のテキスト値と一致するコール バック URL のメッセージを処理します。たとえば、次のようなメッセージがあるとします:
        <root>
        <id>2</id>
        <name>Java</name>
        </root>
        値が 2 の /root/idという XPath を定義できます。XPath は id 要素を選択します。Call Back ツールはテキスト コンテンツが指定された値 2 に一致するかをチェックします。Call Back ツールは、受信メッセージの id 要素のテキスト値が異なる場合、メッセージを処理しません。
      • 応答条件なし:  http://localhost:9080/servlet/NoCorrelationCallBackHandler の最初のメッセージを使用する場合に指定します。この「プロトコル」を選択し、指定された場所にメッセージがない場合、テストはタイムアウト時に失敗します。
      • JMS: JMS プロトコルの場合に指定します。プロトコルとして JMS を選択した場合、他のオプションも表示されます。詳細については「JMS オプションを Call Back Tool のために設定」を参照してください。
      • TIBCO: TIBCO プロトコルの場合に指定します。詳細については「Configuring TIBCO options for the Call Back Tool」を参照してください。
      • WebSphere MQ: WebSphere MQ プロトコルの場合に指定します。
      • SonicMQ: SonicMQ プロトコルの場合に指定します。
    • キー セット: Call Back メッセージで使用されるキーと値を表示します。プロトコルとして JMS を選択した場合、これらのオプションは使用できません。
      • キー: キーは選択されたプロトコルによって異なります。
        • Parlay の場合、個々のコール バック メッセージを識別するキーは、sessionID および requestNumber です。Parlay 仕様/API の詳細については http://www.parlay.org を参照してください。
        • Parlay X の場合、個々のコール バック メッセージを識別するキーは、correlatorです。
        • SCP の場合、個々のコール バック メッセージを識別するキーは、conversationID です。SCP 仕様/API の詳細については http://dev2dev.bea.com/technologies/webservices/SOAPConversation.jsp を参照してください。
        • WS-Addressing の場合、コール バックメッセージを識別するキーは、MessageIDです。WS-Addressing 仕様の詳細については http://www-106.ibm.com/developerworks/library/specification/ws-add/ を参照してください。
      • XPath: (カスタム プロトコルの場合にだけ利用できます) ダブルクリックして XPath を入力します。
      • 値: (プロトコルが JMS の場合は利用できません) ダブルクリックして固定値またはパラメータライズ値 (データ ソースが利用可能な場合) を入力します。
  5. [Call Back ツール] テスト ノードを右クリックして [出力の追加] をクリックします。[出力の追加] ウィザードが表示されます。
  6. [出力の追加] ウィザードで適切なツールを選択し、サーバーからのコール バック メッセージに対する出力を作成します。たとえば、サーバーからのコール バック メッセージに対して回帰コントロールを作成するには、Diff ツールを選択します。 

TIBCO オプションを Call Back Tool のために設定

Call Back ツールのプロトコルとして TIBCO が選択された場合、ツールの構成パネル下部に [TIBCO プロパティ] パネルが表示されます。SOAtest はローカルまたはリモートの TIBCO DAEMON を監視できます。つまり、バス デーモンはローカルマシンで実行されていても、他の場所で実行されていても構いません。次のオプションが利用可能です。

  • タイムアウト: 指定された [返信件名] 値でメッセージが利用可能になるのを SOAtest が待機する時間を表します。
  • デーモン: サーバー名またはサーバーの IP アドレスの後にコロン (:) およびポート番号を指定します (例: 10.10.32.34:7500 または host_name:7500)。
  • ネットワーク: トランスポート オブジェクトがあるネットワークを指定します。  ネットワーク パラメーターは、セミコロン (;) で区切られた network; multicast groups; send address という形式の最大 3 つの部分で構成されます (例: lan0; 224.1.1.1; 244.1.1.6)。   詳細については、TIBCO Rendezvous マニュアルの Network Selection セクションを参照してください。
  • サービス: TIBCO のサービス名を指定します。

いずれかのプログラミング言語を使用して TIBCO メッセージを生成し、アクセスする場合、名前付きのフィールドの下にコンテンツを入れることができます。コンテンツ (SOAP メッセージ、XML、テキストなど) は、TIBCO メッセージ「フィールド」の下に配置する必要があります。メッセージから目的のコンテンツを取得するには、[返信フィールド名] を指定する必要があります。フィールド名は、TIBCO メッセージを生成するアプリケーションによって決定されるため、目的のフィールドが何であるかを確認するには、アプリケーションが使用するフィールド名がわかっていなければなりません (フィールド名が不明な場合、TIBCO メッセージを送信するアプリケーションのソース コードを確認すると、フィールド名が含まれているでしょう)。

[メッセージ送信] フィールドは、Call Back ツールがバス上で探すメッセージのタイプを指定します。これは、メッセージの送信者によって決定される送信タイプに相当します。

フィールド名に関する詳細な情報は、次の TIBCO Rendezvous マニュアルに記載されています: [TIBCO Rendezvous Concepts] > [Fundamentals] > [Messages and Data] > [Fields]

返信件名フィールドおよびその TIBCO における意味に関する詳細については、次の TIBCO Rendezvous マニュアルを参照してください: [TIBCO Rendezvous Concepts] > [Fundamentals] > [Names and Subject-Based Addressing]

JMS オプションを Call Back Tool のために設定

Call Back ツールのプロトコルとして JMS が選択された場合、ツールの構成パネル下部に [JMS プロパティ] パネルが表示されます。以下のオプションを使用できます。次のオプションが利用可能です。

接続設定

[接続設定] は、 [JNDI 初期コンテキスト] の [設定] および [プロパティ] タブを含みます。

[プロパティ] タブはオプションであり、(プロバイダー URL および [設定] タブで指定された初期コンテキスト ファクトリのプロパティに加えて) JNDI javax.naming.InitalContext コンストラクターに渡される追加のプロパティを指定することができます。[追加] をクリックし、 [JMS プロパティの追加] ダイアログを完了することによって追加できるプロパティの値は、固定値、パラメータライズ値、スクリプトを使用した値、または固有値 (2 つのツールの呼び出しが同じ値を使用しないような、自動的に生成されるランダムな一意の値) に設定することができます。

[設定] タブには次の内容が含まれます。

  • JMS 接続の共有プロパティが作成済みの場合、ドロップダウン メニューが表示され、[ローカルの設定を使用] または [共有プロパティを使用] を選択できます。
    • [共有プロパティを使用] を選択した場合、2 つ目のドロップダウン メニューが表示され、SOAP Client ツールが使用するグローバル JMS 設定を選択できます。グローバル JMS 設定の詳細については、「グローバル JMS 接続プロパティ」を参照してください。
    • [ローカルの設定を使用] を選択した場合、または共有プロパティが作成済みではない場合、[接続設定] の残りのオプションを構成します。
  • プロバイダー URL: JNDI javax.naming.InitialContext コンストラクターに渡される javax.naming.Context.PROVIDER_URL プロパティの値を指定します。
  • 初期コンテキスト: javax.naming.Context.INITIAL_CONTEXT_FACTORY プロパティの文字列の値として JNDI javax.naming.InitialContext コンストラクターに渡される完全修飾クラス名の文字列を指定します。
  • 接続ファクトリ: ファクトリの JNDI 名を指定します。これは、javax.jms.QueueConnectionFactory または javax.jms.TopicConnectionFactory インスタンスを生成するために javax.naming.InitialContext の lookup() メソッドに渡されます。

[接続設定] では [設定] タブに加えて以下も含んでいます。

  • キューまたはトピック接続の認証: キュー接続の確立にユーザーがユーザー名とパスワードを提供することを可能にします。[認証の実行] チェックボックスを選択して、要求を認証するためのユーザー名およびパスワードを入力します。不正なユーザー名とパスワードが使用された場合、リクエストは認証されません。ここで提供されたユーザー名とパスワードは javax.jms.QueueConnection のインスタンスを取得するために、javax.jms.QueueConnectionFactory クラスの createQueueConnection() メソッドに渡されます。

キュー/トピック

キュー/トピック設定には以下のオプションがあります:

  • JMS アドレス: メッセージが送信されるキュー名 (ポイント ツー ポイント接続の場合) またはトピック名 (パブリッシュ/サブスクライブ接続の場合) を指定します。

メッセージング モデル

メッセージング モデル オプションは、アプリケーション間でメッセージを送信する方法を指定します。[ポイント ツー ポイント] または [パブリッシュ/サブスクライブ] を選択します。

受信メッセージ応答条件

受信メッセージ応答条件設定には、以下のオプションがあります。

  • レスポンスの JMSCorrelationID とリクエストの JMSCorrelationID を照合: 選択した場合、 条件 JMSCorrelationID = '[correlationId]' がセレクター式に追加されます。 correlationId はメッセージ プロパティ セクションの JMSCorrelationID プロパティから取得されます。オプションは、そのようなプロパティがメッセージ プロパティ セクションに追加される場合にだけ利用できます。このオプションを選択すると、結果として、指定した相関 Id を持つメッセージがキュー (またはトピック) で利用可能になるまで、テストがブロックされた状態になります。また、キュー (またはトピック) 内のどのメッセージでも取得するのではなく、特定のメッセージだけを取得します。テストは、タイムアウト時間が経過しても、セレクター条件に一致するメッセージがない場合はタイムアウトします。
    • 条件は、固定値、パラメータライズ値 (データ ソースからの値)、またはスクリプト値を使用して指定できます。
  • その他のセレクター式の条件: (任意) メッセージ フィルターとして機能する値を入力します。 セレクターの指定に関するヒントは、 「メッセージ セレクター フィルターの使用」を参照してください。
  • No labels