Message Stub は SOAP Client を補足するツールであり、サービスをエミュレートするために使用します。このツールは、単一のメッセージを返すことでサービスをスタブ化します。スタブ ライセンスが有効な場合、Message Stub ツールは複数のメッセージに応答でき、またサービス定義内に定義された操作に対して自動生成できます。
このセクションの内容:
Message Stub ツールとは
Message Stub ツールは、エンドツーエンド シナリオの一部として呼び出すことができます。SOAtest のローカル サーバーは、テスト シーケンスの一部として Message Stub テスト ステップが呼び出されると、メッセージの監視を開始します。Message Stub はメッセージを受信し、Message Stub ツールの構成で設定された方法で応答します。この処理が終了すると、テスト シナリオの次のテストが実行されます。
Message Stub ツールをエンドツーエンド テスト シナリオに統合し、テスト スイート実行フローの任意の時点で呼び出したり、他のテスト アクションをトリガーできます。
たとえば、ローン承認サービスの検証を例にとります。このサービスが、マネージャー承認サービスや外部の信用格付けサービスの呼び出しなどを含む複数のステップからなるビジネス プロセス ワークフローを実行する場合、次のテストで構成されるシナリオを構築できます。
- テスト 1: ローン承認サービスにリクエストを送信してプロセスを開始します。
- テスト 2: スタブとして HTTP 上で信用格付けサービスの受信メッセージを待機し、シナリオにおいて適切な格付け情報を返します (信用格付けサービスのレスポンスをエミュレート)。
- テスト 3: スタブとして JMS キューのマネージャー承認メッセージを処理し、承認、却下などのレスポンスを返します。
- テスト 4: ローン プロセスからローンの最終結果を含む非同期メッセージを取得し、検証します。
- テスト 5: リレーショナル データベースに対してクエリーを発行し、ローン申請がデータベース内で適切に監査されたかをチェックします。
- テスト 6: テスト シナリオを繰り返し実行できるよう、データベースから申請データを削除して元の状態に戻します。
これらのスタブは、データ ソースの値でパラメータライズできます。
アプリケーションが実際のリソースではなくスタブと通信するようにしたい場合、スタブにアクセスするようアプリケーションを構成します。スタブは http://<localhost>:9080/servlet/MessageHandler にデプロイされます。この方法で作成およびデプロイされたすべてのスタブは、同じ URL を持つことに注意してください。これが可能であるのは、Message Stub は、テスト スイートのロジックに従って、1 回に 1 つずつ呼び出されるからです。
Message Stub ツールに Traffic Viewer ツールを連結すると、Message Stub ツールの振る舞いを可視化することができます。
サービス定義オプション
[定義] タブのオプションを指定すると、レスポンス メッセージの指定を容易にするアイテムが [レスポンス] タブに自動的に表示されます。期待されるリクエストおよび送信レスポンスを定義するサービス定義またはスキーマに関する以下のオプションを指定できます。
- サービス定義: レスポンダーに関連付けられたサービス定義 (RAML、OpenAPI/Swagger、WSDL またはスキーマ) が存在するかどうかを指定します。プレーンな XML の場合、[なし] を選択します。サービス定義が指定され、ツールが WSDL またはスキーマの制約を受ける場合、該当するフォーム ビューに自動的に適切なフィールド値およびコントロールが設定されます (たとえば、ブーリアン値に対してはラジオ ボタン、数値または整数に対しては適切なコントロール、列挙型に対してはドロップダウンなど)。また、サービス定義を指定すると、無効なメッセージが入力されるのを防ぐことができます (たとえば、メッセージに必須の値がない、値の型が誤っている、スキーマに指定されていないメソッド/リソース/レスポンス コードなど)。メッセージが関連付けられたスキーマに適合するよう、編集機能も制限されます (たとえばツリー ノードの挿入、削除、名前の変更、コピー、貼り付けができないなど)。
- RAML サービス定義モードの場合
- RAML URL: 特定の RAML URL または RAML URL を参照する変数を指定します。
- RAML URL: 特定の RAML URL または RAML URL を参照する変数を指定します。
- OpenAPI/Swagger サービス定義モードの場合
- OpenAPI/Swagger URL: 特定の OpenAPI/Swagger URL、または OpenAPI/Swagger URL を参照する変数を指定します。
- OpenAPI/Swagger URL: 特定の OpenAPI/Swagger URL、または OpenAPI/Swagger URL を参照する変数を指定します。
- WSDL サービス定義モードの場合
- WSDL URL: このサービスにアクセスするための WSDL URL を指定します。WSDL URI を指定するには、テキスト フィールドに直接入力するか[参照] をクリックします。WSDL がない場合はこのフィールドは空にします。
- WSDL に従う: 特定のツール パラメーターの値を手動で入力する代わりに WSDL から値を取得するかどうかを指定します。このオプションがオンの場合、ルーター エンドポイント、 SOAP アクション、 SOAP ボディやヘッダー パラメーターといった特定のパラメーターは無効になり、値は WSDL から取得されます。このオプションがオフの場合、 [WSDL のリフレッシュ] ボタンも無効になります。
- WSDL 文書: 利用可能な場合は自動的に入力されます。指定された WSDL URI のサービスを表示します。
- WSDL URL: このサービスにアクセスするための WSDL URL を指定します。WSDL URI を指定するには、テキスト フィールドに直接入力するか[参照] をクリックします。WSDL がない場合はこのフィールドは空にします。
- スキーマ サービス定義モードの場合
- スキーマ URL: サービスにアクセスできるスキーマ URL を表示します。WSDL URI を指定するには、テキスト フィールドに直接入力するか[参照] をクリックします。スキーマがない場合はこのフィールドは空にします。
- スキーマに従う: 特定のツール パラメーターの値を手動で入力する代わりにスキーマから値を取得するかどうかを指定します。このオプションがオンの場合、特定のパラメーターが無効化され、スキーマから値が取得されます。このオプションがオフの場合、[スキーマのリフレッシュ] ボタンも無効になります。
- XML メッセージ タイプ: [レスポンス] タブのフォーム入力コントロールを SOAP メッセージ用にするか、プレーン XML メッセージ用にするかを指定します。プレーン XML を選択した場合、フォーム入力モードはメッセージを直接的に表示します。SOAP を選択した場合、フォーム入力の XML は SOAP エンベロープでラップされ、ビューに SOAP ヘッダーセクションが表示され、必要に応じて SOAP ヘッダーを構成することができます。
レスポンス オプション
[レスポンス] タブでは、特定のリクエストを受信したとき、エミュレートされたアセットが返すレスポンス値を構成します。
使用できるオプションは、[ビュー] メニューで選択されたオプションに応じて異なります。
リテラル XML、 フォーム XML、 スクリプト XML、 フォーム入力ビュー
[リテラル XML]、[フォーム XML]、[スクリプト XML]、[フォーム入力] ビューに対して表示されるオプションは、SOAP Client ツールで表示されるものと似ています。
[フォーム入力] ビューまたは [フォーム JSON] ビューでリソース セレクターが有効な場合、リソース セレクターを使用してレスポンスのリソースを選択できます。リソースを選択すると、フォーム入力/JSON ビューに適切な値および UI コントロールが設定されます (たとえば、ブーリアン値に対してはラジオ ボタン、数値または整数に対しては適切なコントロール、列挙型に対してはドロップダウンなど)。
- フォーム入力モードでは、リソース セレクターは、次の条件を満たすすべてのリソースを表示します。 1) 関連付けられたサービス定義がレスポンスを XML として定義している。 2) 関連付けられたサービス定義が XML スキーマを指定している。
- フォーム JSON モードでは、リソース セレクターは、次の条件を満たすすべてのリソースを表示します。 1) 関連付けられたサービス定義がレスポンスを JSON として定義している。 2) 関連付けられたサービス定義が JSON スキーマを指定している。
複数レスポンス ビュー
[複数レスポンス] ビューでは、特定のリクエストに対して使用するレスポンスを指定します。
[条件] タブでは、レスポンスを送信するためにリクエストが満たす必要のある条件を指定します。XPath 関数および/または RESTful サービスの URL パラメーター (デフォルトでは GET および POST がサポートされています) を使用して条件を指定します。[メッセージ] タブでは条件を満たしたときに送信するレスポンスを指定します。
ヒント- 複数レスポンスと「常に一致」の使用
以下の場合に [常に一致] オプションを有効にします。
- 受信メッセージのコンテンツにかかわらず、常に返される単一のレスポンスを設定する場合
- 複数のレスポンスがあり、スタブが返す最終的なレスポンスを指定する場合。この場合、指定されたレスポンスは、それまでの条件に一致しなかったすべてのリクエストに対する最終的なレスポンスの働きをします。たとえば、「常に一致」レスポンスを指定すると、サービスがリクエストを処理して受信した値に基づいたレスポンスを返すことができなかったことを示す SOAP エラーを返すことができます。
複数の XPath または URL パラメーターが一致する場合、SOAtest はリストで最初に一致したレスポンス ([上へ] または [下へ] ボタンを使用してレスポンスの順序を指定します) を返します。各レスポンスに指定された XPath または URL パラメーターがそれぞれ 1 つのリクエストに一致する場合、レスポンスの順序は関係ありません。
スクリプト XML ビュー
[スクリプト XML] ビューでは、複雑なロジックを指定できます。詳細については「Using Scripted Logic」を参照してください。
トランスポート ヘッダー オプション
[トランスポート ヘッダー] タブでは、HTTP、JMS、または MQ メッセージのヘッダー プロパティを指定できます。
テスト応答条件オプション
[テスト応答条件] タブでは、この Message Stub ツール/テストが受け入れて処理するメッセージを指定します。スタブ URL に送信されるさまざまなメッセージは、ここでの設定に基づいて特定の Message Stub ツールに振り分けられます。たとえば、ある Message Stub ツールは顧客登録メッセージに応答し、別の Message Stub ツールは支払いメッセージに応答し、また別の Message Stub ツールは他のスタブの条件に一致しないときに使用されるデフォルトの「最終条件」として機能します。
以下の [テスト応答条件] タブ エリアで値を入力し、Message Stub が受け入れるメッセージを指定します。
- トランスポート: メッセージを処理するかどうかを決定する HTTP ヘッダー、JMS メッセージ プロパティ、または MQ メッセージ フィールドを指定します。
- リクエスト ボディ: メッセージを処理するかどうかを決定する XPath を指定します。
- URL パラメーター (RESTful サービスの場合): メッセージを処理するかどうかを決定する URL パラメーターを指定します。URL パラメーターは繰り返すことができます (同じパラメーター セットの違う値を指定できます)。
- カスタム: カスタム メソッドの戻り値に基づくカスタム テスト応答条件を指定できます。カスタム応答条件の使用に関する詳細については、下記のヒントを参照してください。
1 つのタイプの応答条件を指定することも、複数のタイプの応答条件を指定することも、あるいは応答条件を指定しないこともできます。応答条件が指定されていない場合、メッセージ内のすべてが処理されます。
カスタム応答条件の使用
カスタム テスト応答条件は、カスタム メソッドの戻り値に基づきます。要件:
- メソッドは 0 個または 1 個の引数を取る。
- 任意引数は com.parasoft.api.ScriptingContext 型である。
- メソッドは ScriptingContext オブジェクトを使用して受信メッセージのトランスポート ヘッダー、URL パラメーター、およびメッセージのコンテンツにアクセスできる。
CorrelationScriptingHookConstants の Javadoc により詳しい情報が記載されています ([Parasoft] > [ヘルプ] をクリックし、「Parasoft SOAtest Extensibility API」というブックを探します)。
たとえば、正規表現に基づいてプレーン テキストのメッセージをテストする場合、次のコードを使用できます。
from com.parasoft.api import CorrelationScriptingHookConstants from java.lang import * def match(context): strMessage = context.get(CorrelationScriptingHookConstants.MESSAGE_STR) return String(strMessage).matches("myRegularExpression")
XML メッセージの要素をテストする場合、次のコードを使用できます。
from com.parasoft.api import CorrelationScriptingHookConstants from org.w3c.dom import * from javax.xml.parsers import * from javax.xml.xpath import * from java.io import * from java.lang import * def match(context): xmlDocument = context.get(CorrelationScriptingHookConstants.MESSAGE_DOM) if xmlDocument != None: xPathFactory = XPathFactory.newInstance(); xpath = xPathFactory.newXPath() expression = xpath.compile("//*[local-name(.)='someElement' and namespace-uri(.)='someNamespace'][1]/text()") elementValue = expression.evaluate(xmlDocument) return String(elementValue).matches("myRegularExpression") return 0
トランスポート応答条件
トランスポート応答条件を構成するには、次の操作を行います。
- [応答条件の有効化] チェック ボックスをオンにします。
- [追加] をクリックします。新しいエントリ行が表示されます。
- 指定するメッセージ応答条件の [名前] および [値] を入力します。
リクエスト ボディ応答条件
リクエスト ボディ応答条件を構成するには、次の操作を行います。
- [応答条件の有効化] チェック ボックスをオンにします。
- [編集] ボタンをクリックします。[XPath 関数の編集] ダイアログが表示されます。
- 要素ツリーから要素を選択し、[関数] ドロップダウン メニューから関数を選択して [OK] をクリックします。
URL パラメーター応答条件
URL パラメーター応答条件を構成するには、次の操作を行います。
- [応答条件の有効化] チェック ボックスをオンにします。
- [追加] をクリックします。新しいエントリ行が表示されます。
- 指定する応答条件の [パラメーター名] および [値] を入力します。
データ ソース応答条件オプション
[データ ソース応答条件] タブでは、スタブの応答で使用するデータ ソース行の値を指定できます。
利点
[複数レスポンス] モードのスタブを構成する 1 つの方法は、手動で Message Stub ツールを構成し、受信メッセージの性質に基づいて異なるレスポンス メッセージを送信することです。
適切なメッセージを使用して動的に応答するようスタブを構成するもう 1 つの方法は、データ ソースを使用することです。データ ソースの表 ( Excel など)に簡単に値を入力できます。データ ソースの各行には、スタブが応答する受信メッセージの値 (通常はリーフノードの値) が含まれ、別の列には、指定された条件を満たすときにスタブがどのように応答するかを指定します (詳細については「レスポンスのために既存のデータ ソースを使用またはデータ ソースをすばやく作成」を参照)。その後、リクエスト メッセージおよびレスポンス メッセージの値とデータ ソースの列のマッピングを構成します。
これによって、編集しやすい表 (データ ソース) で簡単にリクエスト/レスポンスのユース ケースを構成でき、メッセージの数が増えたときにも対応可能な方法で管理することができ、またより柔軟にレスポンス メッセージを処理できます (なぜなら、フォーム入力では一部の値を固定し、他の値をパラメーターライズし、自動の値やスクリプト化された値も使用することができるからです)。
データ ソース応答条件は、非常に柔軟です。単なる比較/応答条件を超えたルールやロジックを使用して受信リクエスト値に応答するスタブを構成できます。たとえば、クレジット カード番号の下 4 桁を評価したり、数値が特定の値未満または特定の値を超えるかを評価したり、その他のパターンや式を評価できます。
値の比較はワイルドカード * および ? をサポートしています。たとえば、"title keyword" という受信値に Linux という単語が含まれている場合にデータ ソースの行と一致させたい場合、データ ソースの値として "*Linux*" を指定できます。* はゼロ個以上の文字に一致し、? は 1 個の文字に一致します。
設定
データ ソースの値でスタブ レスポンスをパラメータライズするには、次の操作を行います。
- Message Stub で使用するデータ ソースが SOAtest に存在していることを確認します。
- [データ ソース応答条件] タブの適切な部分で [追加] ボタンをクリックし、XPath または URL パラメーターを指定し、適切な列名を選択します。デプロイされたスタブが実行されると、SOAtest はリクエストから指定された値を抽出し、指定された列を検索して抽出値と一致するものを探します。一致するデータが見つかった場合、該当するデータ ソース行のデータを使用してレスポンスに値が設定されます。
- サービス定義が指定されている場合、[編集] ボタンをクリックして XPath を生成できます。ダイアログはリアルタイムで XPath 式および列名を検証します。
- ビジュアルな [編集] オプションではなく手動で XPath をカスタマイズした場合、XPath 式の入力/編集中に XPath の構文が検証されます。
- データ ソース列ではワイルドカードを使用できます。
- (フォーム入力、フォーム XML などと) 同じデータ ソースの別の列を参照し、Message Stub の [レスポンス] エリアをパラメータライズします。列名マッピングに複数の XPath または URL パラメーターを追加できます。
処理の詳細
テスト スイート内で、またはホストされたスタブとして Message Stub が実行されると、受信メッセージはこれらの XPath 式/URL パラメーターによって評価されます。値と対応するデータ ソース値 (それぞれに対応する列) が比較され、値が一致する行が検索されます。
一連の比較によって、各値をデータ ソースの行と比較します。比較が終了しても一致するものが見つからなかった場合、データ ソースの次の行に移動します。どの行とも一致しなかった場合、エラーが返されます。
比較は次の順序で行われます。
- 文字列全体/リテラル文字列の比較
- ゼロ個以上の文字を表すワイルドカード * の比較。たとえば Linux*は、"Linux"、"Linux Administration"、"Linux Administration Handbook" などの値に一致します。
- データ ソースの値を正規表現として処理して比較します。たとえば、abc-\d{3}-123 は abc-576-123、abc-000-123 などの受信値と一致します (中間部は 3 桁の任意の数値)。
- データ ソースの値と受信値を数値として評価して比較します。たとえば、10 は 10.0 と一致します。
- 受信値を数値とみなし、データ ソース セルの値を先頭に比較演算子が付いた数値として比較します。使用できる演算子は <、>、<=、>=、!= または <> です。たとえば、データ ソースの値が <=14.99 の場合、14.99 以下の受信値と一致します。
データ ソースの行は、Message Stub のデータ ソース応答条件リストで指定されたすべての値が一致したときに一致とみなされます。
一致する行が見つかった場合、その行を使用して Message Stub のレスポンス メッセージのパラメータライズされた値が設定されます。このようにして、スタブは受信メッセージの値に基づいて目的のメッセージ値を返すことができます。
アタッチメント オプション
[アタッチメント] タブでは、スクリプトを記述せずにバイナリまたは XML のアタッチメントを送信できます。アタッチメントを送信するには、次の操作を行います。
- [追加] をクリックします。[アタッチメント テーブル] に XML アタッチメント エントリが追加されます。
- XML アタッチメント エントリをダブルクリックします。[添付ファイルの編集] ダイアログが開きます。[編集] ダイアログが表示されます。
- [添付ファイルの編集] ダイアログで、 [モード] ドロップダウン リストから XML または バイナリを選択します。
XML モードでは次のオプションが利用できます。
- Views: ドロップダウン リストからビューを選択し、適宜構成します。選択肢は、リテラル XML、フォーム XML、スクリプト XML、およびフォーム入力です。
バイナリ モードでは次のオプションが利用できます。
- Base 64 エンコーディング: Base 64 エンコーディングでバイナリ値をエンコードするには、このチェックボックスをオンにします。
- データ ソース列: データ ソース列からの値を送信します。
- ファイル: ファイルからの値を送信します。[ファイル システム] ボタンをクリックしてファイルを指定します。ファイルへのパスを、現在のコンフィギュレーション ファイルからの相対パスとして保存したい場合、[相対パスで保存] をオンにします。
- テキスト: テキスト値を送信します。
- コンテンツ タイプ: コンテンツ タイプを指定します。添付ヘッダーの追加、編集、削除をするには、 [ヘッダーの編集] をクリックします。
サービス オプション
[サービス オプション] タブでは、メッセージの処理方法を構成します。次のオプションが利用可能です。
- メッセージ交換パターン: レスポンスを求めるか、通知のみかを選択します。
- リターン ステータス: メッセージを返す方法を指定します。たとえば、正常に実行されているサービスやエラーがあるメッセージをエミュレートするために使用します。デフォルト値の 200 OK を使用する場合、[デフォルトのリターン ステータスを使用] チェック ボックスをオンにします。このオプションがオフの場合、以下のオプションを使用できます。
- リターン ステータス: カスタム ステータス値を入力します。データ ソースが利用可能な場合、この値をパラメータライズすることもできます。
- リターン メッセージ: カスタム リターン メッセージを入力します。データ ソースが利用可能な場合、この値をパラメータライズすることもできます。
- 実行モード: このツールを無限に実行するかどうかを指定します。
- リクエストの処理: リクエスト メッセージを変換してからデータ ソース応答条件または複数レスポンスの 「リクエストと比較」条件ロジックで処理する必要がある場合、[Apply incoming request tools on the message before responding] をオンにします。XML を変換してから応答条件で使用する必要がある場合、またはメッセージが XML ではなく、スタブが呼び出し元にリクエストに対する適切なレスポンスを送信する前に変換が必要な場合、このオプションが重要です。
- Time Options: 実行時間に関して以下のオプションを設定できます (Message Stub の実行時間は、Servlet がリクエストの受信を完了してから、レスポンスの送信が開始するまでの時間を基に計算されることに注意してください)。
- タイムアウト (ミリ秒): メッセージがタイムアウトしたとみなされるまでの時間をミリ秒単位で指定します。[デフォルト]を指定した場合の値は 30000 です。[カスタム] を選択すると任意のタイムアウト時間を設定できます。タイムアウト時間を設定しない場合は、負の値を指定します。
- タイムアウト時にテストは失敗する: 指定したタイムアウト時にテストを失敗させる場合、このオプションをオンにします。
- タイムアウトが発生した場合だけテストは成功する: 指定したタイムアウトが発生したとき (つまり、指定された時間内にテストが完了しなかったとき) にテストを成功させる場合、このオプションをオンにします。
- 思考時間: エミュレートするメッセージ遅延時間をミリ秒単位で入力します。このオプションは、低速なサービスをエミュレートするのに使用できます。データ ソースが利用可能な場合、この値をパラメータライズすることもできます。[思考時間] に [タイムアウト] より大きい値を指定しても、強制的にタイムアウトを発生させることはできません。タイムアウトは、メッセージが正常に応答に関連付けられず、Message Stub がアイドル状態になって処理を完了できない場合にだけ発生します。
- タイムアウト (ミリ秒): メッセージがタイムアウトしたとみなされるまでの時間をミリ秒単位で指定します。[デフォルト]を指定した場合の値は 30000 です。[カスタム] を選択すると任意のタイムアウト時間を設定できます。タイムアウト時間を設定しない場合は、負の値を指定します。
- スタイル/使用: これらのオプションを使用すると、メッセージのボディ スタイルおよびエンコーディングを選択できます。
- ボディ スタイル: 「document」 または 「rpc」 を選択できます。
- 使用: 「encoded」 または 「literal」 を選択できます。
- エンコーディング スタイル URI: リクエスト送信に使用されるエンコーディング スタイル URI を表示します。利用可能な場合は自動で入力されます。
- ターゲット オブジェクト URI: ターゲット オブジェクト URI を指定します。
- 添付ファイルのカプセル化フォーマット: カプセル化フォーマットをデフォルトかカスタムか指定します。[デフォルト] オプションは、[設定] パネルの [SOAP クライアント] タブで指定された添付ファイルのカプセル化形式を使用することを指定します (詳細については『SOAtest ユーザーズ ガイド』の「オプション設定」> 「SOAP クライアント オプション」を参照)。[カスタム] オプションを使用すると、MIME、DIME、MTOM Alwaysまたは MTOM Optionalを選択できます。
- ヘッダー: レスポンスにカスタム ヘッダーを追加できます。
カスタム ヘッダーの追加
カスタム ヘッダーを追加するには、次の操作を行います。
- [サービス オプション] タブで [追加] ボタンをクリックします。ダイアログが開きます。
- 指定するメッセージ応答条件の [名前] および [値] を入力します。
- [OK] をクリックします。
レスポンスのために既存のデータ ソースを使用またはデータ ソースをすばやく作成
データ ソースにレスポンス値を定義すると、大量のリクエスト/レスポンスのペアを効率的に追加できます。
既存のデータ ソースの使用
リクエスト パラメーターおよび対応するレスポンス パラメーターの値が定義されたデータ ソースが既に存在する場合、次の操作を行って、それらの値を使用できます。
- SOAtest にデータ ソースを追加します。
- Message Stub のデータ ソース マッピングを構成し、適切なリクエスト列を指定します(「Data Source Correlation Options」の説明を参照)。
データ ソースをすばやく作成する
使用可能なデータ ソースがまだ存在していないが、複数のリクエスト/レスポンスのセットをすばやく指定したい場合、次の操作を行います。
- 「メッセージ要素にデータ投入するためのデータ ソース テンプレートを生成」の手順に従って、Message Stub ツールのフォーム入力ビューから CSV ファイルを作成します。データ ソースが生成され、テスト スイートに追加されます。この生成されたデータ ソースには、レスポンスの列が含まれています。Message Stub ツールのフォーム入力ビューは、自動的にパラメータライズされます。
- レスポンスを決定するために使用する必要があるリクエスト パラメーターの分だけデータ ソースに新しい列を追加します (Excel、OpenOffice などのスプレッドシート アプリケーションを使用して)。ワイルドカードを使用できます。
- 追加した新しいリクエスト列を使用して Message Stub のデータ ソース マッピングを構成します。詳細については、「Data Source Correlation Options」 を参照してください。
- データ ソースに新しい行を追加し (Excel、OpenOffice などのスプレッドシート アプリケーションを使用)、リクエスト パラメーターおよび対応するレスポンス パラメーターに値を指定します 。
スクリプト化されたロジックの使用
スクリプトを使用して、受信リクエストに基づいてレスポンスの値を記述できます。これによって、スタブでより複雑なロジックを使用できます。さらに、Message Stub では、スクリプトからデータ ソースの値にアクセスできます。データ ソースの値へのアクセス方法は、Extension ツールからアクセスする場合と似ています。
以下は、Message Stub ツールでスクリプト化されたロジックを使用する手順の例です。
- Message Stub ツールの [定義] タブでサービス定義を入力します。
- [Message Stub] ノードを右クリックし、[出力の追加] をクリックします。[出力の追加] ウィザードが表示されます。
- [出力の追加] ウィザードの左側のペインで [受信リクエスト] を選択し、右側のペインで [XML Data Bank] を選択して [終了] をクリックします。
- [Message Stub] ノードの下の [受信リクエスト] > [XML Data Bank] ノードをダブルクリックします。GUI 右側のパネルに XML Data Bank ツールの構成パネルが表示されます。
- GUI 右側のパネルで、スクリプトからアクセスする値の XPath を追加します。
- [Message Stub] ノードをダブルクリックします。GUI 右側のパネルに Message Stub ツールの構成パネルが表示されます。
- [レスポンス] タブで [スクリプト] ビューを選択します。
- [データ ソースの使用] オプションをオンにします。
ロジックを入力します。次のコードは、データ ソースおよびデータ バンクの値にアクセスするための基本的なテンプレートです。
def customLogic(context): # Retrieve the data source value. "Data Source Name" should be replaced # with the name of your data source and "Column Name" should be the column # that your value is coming from. You can access many columns from the same # data source within this script. For Data Bank values, the table is always # named "Generated Data Source" so you only need to replace "Data Bank Column Name" dataSourceValue = context.getValue("Data Source Name", "Column Name") dataBankValue = context.getValue("Generated Data Source", "Data Bank Column Name") # add custom logic that uses value from data source
- [メソッド] コンボ ボックスから適切なメソッドを選択します。選択するメソッドは、エントリ ポイントでなければなりません。上記の例では、 customLogic() メソッドを選択します。
アタッチメント ハンドラーを Message Stub に追加
Message Stub に Attachment Handler ツールを追加すると、メッセージの添付ファイルを送信する際に、添付ファイルの処理をテストするのに便利な場合があります。Message Stub に Attachment Handler を追加するには、次の操作を行います。
- Message Stub のノードを選択し、[テストまたは出力の追加] ボタンをクリックします。[出力の追加] ウィザードが表示されます。
- [出力の追加] ウィザードの左側のペインで [受信リクエスト] を選択し、右側のペインで [Attachment Handler] を選択して [終了] をクリックします。
- [Attachment Handler] ノードをダブルクリックし、ツール構成パネルでツールの構成を行います。
- (任意) Message Stub ノードの下の [Attachment Handler] ノードを選択し、[テストまたは出力の追加] ボタンをクリックします。[出力の追加] ウィザードが表示されたら、添付ファイルをバイナリ ファイルとして書き出すために Write File ツールを追加できます。