...
Table of Contents | ||
---|---|---|
|
概要
「メッセージ レスポンダー」という用語は、 HTTP、 MQ、 JMS、または他のプロトコルやカスタム プロトコル上でレスポンスを送信するツールすべてを指します。カスタム Message Responder はあらゆるメッセージ形式に対応できます。たとえば、メインフレーム メッセージ形式、バイナリ形式、あるいはその他の独自カスタム メッセージなどです。
...
Info | ||
---|---|---|
| ||
メッセージ レスポンダーが着信リクエストに関連する応答メッセージを送信するのに対し、SQL Responder は SQL クエリーに関連する結果を送信します。 |
メッセージ レスポンダーの配置
メッセージ レスポンダーは .pva ファイルの中に存在します。
...
このプロジェクトは、各仮想アセットの .pva ファイルの場所、 名前、 HTTP エンドポイント パス、グローバル レポート設定、および JMS と Web Sphere MQ トランスポート設定などの、各仮想アセットのデプロイ構成を格納する VirtualAssets.xml ファイルを含みます。このファイルは仮想アセットのデプロイ設定が変更されるときに自動的に更新されます。
適切なメッセージ形式にレスポンダーを構成
共通のメッセージ レスポンダー フレームワークを使用して、さまざまなメッセージ形式のメッセージ レスポンダーを作成/構成できます。可能な限り、すべての種類のメッセージ フレームワークで構成オプションが共有されます。さらに、特定のメッセージ形式では特別な構成オプションが利用できます (たとえば、カスタム メインフレーム用のカスタム変換オプション バイナリあるいはあなたのチームが開発したメッセージ形式の拡張などです)。したがって、さまざまなフォーマットのメッセージ レスポンダーで、さまざまな構成オプションが提供されます。
メッセージ レスポンダーは、メッセージを 1 つのフォーマットで受信し、違うフォーマットで応答するように構成できます (たとえば、 EDI メッセージを受信し、固定長メッセージで応答するなど)。この構成は、メッセージ レスポンダーの概要 Request Handling オプションで構成できます。
メッセージ レスポンダーで使用するメッセージ形式を変更したい場合は (例: 固定長からプレーン テキストに変更したい場合など)、選択されているフォーマットを変更するだけです。
構成オプション
全般構成
ツールの上部では次の全般オプションが使用可能です。
- データ ソース: ツールの値を提供するために使用するデータ ソースを指定します。このメニューは、データ ソースをプロジェクトに追加した場合にだけ使用可能です ( 「データ ソース値、変数、および抽出した値でツールをパラメータライズ」で説明)。
XML 変換オプション
これらのオプションは、 XML に変換される、あるいは XML から変換されるフォーマットにだけ使用可能です。
- フォーマット: レスポンス ペイロードのフォーマットを選択します。
- フォーム XML モードのフォーム入力時は [ネイティブ フォーマット] の代わりに XML を送信: 無効 (デフォルト) の場合、 Virtualize はメッセージを送信する前に XML モデルをネイティブ形式に自動変換します。 つまり、 Virtualize はネイティブ形式をサーバーに送信するので、Traffic Viewer で確認できます。
- このオプションが有効な場合、 Virtualize はユーザーが GUI で応答用に構成したメッセージを送信します。 リテラル ビューまたはスクリプト ビューを使用すると、ネイティブ形式でメッセージのペイロードを作成できます。 このオプションをオンにして UI で XML を作成した場合 (たとえばフォーム入力ビューで)、Virtualize は XML をそのまま送信します。現在サポートされている形式では、通常はこのオプションをオンにすることはないでしょうが、Virtualize では、このような処理が可能です。
フォーム入力を使用してリクエスト ペイロードをモデル化するためのスキーマ
これらのオプションは、 XML に変換される、あるいは XML から変換されるフォーマットにだけ使用可能です。
...
- メッセージ タイプ: 使用したいメッセージ タイプを指定します。そうすることで、 Virtualize に [フォーム入力] ビューにデータ投入するよう促します。
- スキーマ URL: サービスにアクセスできるスキーマ URL を表示します。WSDL URI を指定するには、テキスト フィールドに直接入力するか[参照] をクリックします。スキーマがない場合はこのフィールドは空にします。
- スキーマに従う: 特定のツール パラメーターの値を手動で入力する代わりにスキーマから値を取得するかどうかを指定します。 このオプションがオンの場合、特定のパラメーターが無効化され、スキーマから値が取得されます。このオプションがオフの場合、[スキーマのリフレッシュ] ボタンも無効になります。
[定義] タブ
Anchor | ||||
---|---|---|---|---|
|
このタブは JSON、SOAP、Plain XML Message Responder 専用に設計されています。
...
- サービス定義: レスポンダーに関連付けられたサービス定義 (RAML、OpenAPI/Swagger、WSDL またはスキーマ) が存在するかどうかを指定します。プレーンな XML の場合、[なし] を選択します。サービス定義が指定され、ツールが WSDL またはスキーマの制約を受ける場合、該当するフォーム ビューに自動的に適切なフィールド値およびコントロールが設定されます (たとえば、ブーリアン値に対してはラジオ ボタン、数値または整数に対しては適切なコントロール、列挙型に対してはドロップダウンなど)。また、サービス定義を指定すると、無効なメッセージが入力されるのを防ぐことができます (たとえば、メッセージに必須の値がない、値の型が誤っている、スキーマに指定されていないメソッド/リソース/レスポンス コードなど)。メッセージが関連付けられたスキーマに適合するよう、編集機能も制限されます (たとえばツリー ノードの挿入、削除、名前の変更、コピー、貼り付けができないなど)。
- RAML サービス定義モードの場合
- RAML URL: 特定の RAML URL または RAML URL を参照する変数を指定します。
- OpenAPI/Swagger サービス定義モードの場合
- 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 のサービスを表示します。
- スキーマ サービス定義モードの場合
- スキーマ URL: サービスにアクセスできるスキーマ URL を表示します。WSDL URI を指定するには、テキスト フィールドに直接入力するか[参照] をクリックします。スキーマがない場合はこのフィールドは空にします。
- スキーマに従う: 特定のツール パラメーターの値を手動で入力する代わりにスキーマから値を取得するかどうかを指定します。 このオプションがオンの場合、特定のパラメーターが無効化され、スキーマから値が取得されます。このオプションがオフの場合、[スキーマのリフレッシュ] ボタンも無効になります。
- XML メッセージ タイプ: [レスポンス] タブのフォーム入力コントロールを SOAP メッセージ用にするか、プレーン XML メッセージ用にするかを指定します。プレーン XML を選択した場合、フォーム入力モードはメッセージを直接的に表示します。SOAP を選択した場合、フォーム入力の XML は SOAP エンベロープでラップされ、ビューに SOAP ヘッダーセクションが表示され、必要に応じて SOAP ヘッダーを構成することができます。
[レスポンス] タブ
[レスポンス] タブは、関連するリクエストを受信した際にレスポンダーに配信させるレスポンス値を構成できます。
使用できるオプションは、[入力モード] または [ビュー] メニューで選択されたオプションに応じて異なります。
入力モードとビュー
これらのビューは、複数の Parasoft ツール間で類似しています。次のエリアで説明されています。
...
- フォーム ベースのビューでは、データ ソースからレスポンスやパラメータライズした値をビルドできます。
- [フォーム入力] ビューまたは [フォーム JSON] ビューで操作セレクターが有効な場合、操作セレクターを使用してレスポンスの操作を選択できます。操作を選択すると、フォーム入力/JSON ビューに適切な値および UI コントロールが設定されます (たとえば、ブーリアン値に対してはラジオ ボタン、数値または整数に対しては適切なコントロール、列挙型に対してはドロップダウンなど)。
- フォーム入力モードでは、操作セレクターは、次の条件を満たすすべての操作を表示します。 1) 関連付けられたサービス定義がレスポンスを XML として定義している。 2) 関連付けられたサービス定義が XML スキーマを指定している。
- フォーム JSON モードでは、操作セレクターは、次の条件を満たすすべての操作を表示します。 1) 関連付けられたサービス定義がレスポンスを JSON として定義している。 2) 関連付けられたサービス定義が JSON スキーマを指定している。
- [複数レスポンス] モードでは利用可能なレスポンスのそれぞれが、着信リクエスト、静的レスポンス メッセージ、パフォーマンス (時間) オプションに独自の応答条件を持ちます。
Anchor | ||||
---|---|---|---|---|
|
[トランスポート ヘッダー] タブでは、レスポンス メッセージとともに返される HTTP、 JMS、 または MQ メッセージのヘッダーを指定できます。[テーブル] ビューあるいは [リテラル] ビューを使用できます。
...
JMS では、キューに送信されたりトピックにパブリッシュされたりする前に、javax.jms.Message オブジェクトに設定される任意のプロパティ値を定義できます。たとえば、 JMSPriority、 JMSDeliveryMode、 JMSExpiration、および以下のようなその他プロパティを定義できます。
[レスポンダー応答条件] タブ
Anchor | ||||
---|---|---|---|---|
|
[レスポンダー応答条件] タブでは、メッセージ レスポンダー ツールがどのメッセージを受け付け、処理するかを指定できます。仮想アセットの URL に送信されるさまざまなメッセージは、ここでの設定を基にした特定のメッセージ レスポンダー ツール (それぞれ異なるオペレーションを処理する) に送られます。たとえば、 1 つのメッセージ レスポンダー ツールは顧客の登録メッセージに応答し、別のものは支払いメッセージに応答し、さらに別のものは一致するものが無かった場合に使用されるデフォルトの「キャッチ オール」として機能することが可能です。
...
- トランスポート: この特定のレスポンダーでメッセージを処理するかどうかを判断する、メッセージ内の HTTP ヘッダー、 JMS メッセージ プロパティ、または MQ メッセージ フィールドを指定できます。詳細については、「メッセージ レスポンダーの概要Transport Correlation」 を参照してください。
- リクエスト ボディ: メッセージを処理するかどうかを決定する XPath を指定します。詳細については、 メッセージ応答条件 を参照してください。
- HTTP URL パラメーター (RESTful サービス用): メッセージを処理するかどうかを決定する URL パラメーターを指定します。「特定のパラメーターを含むすべてのメッセージに一致する応答条件 (設定される値は問わない)」、または「特定のパラメーターに特定の値が設定されたメッセージだけに一致する応答条件」を設定できます。URL パラメーターは繰り返すことができます (同じパラメーター セットの違う値を指定できます)。詳細については、「メッセージ レスポンダーの概要URL Parameter Correlation」 を参照してください。
- HTTP URL パス: メッセージを処理するかどうかを判断する URL パスを指定できます。詳細については、「メッセージ レスポンダーの概要URL Path Correlation」 を参照してください。
- HTTP メソッド: メッセージを処理するかどうかを判断する HTTP メソッドを指定できます。詳細については、「メッセージ レスポンダーの概要HTTP Method Correlation」 を参照してください。
- カスタム: Java またはスクリプト言語で書かれたカスタム メソッドの戻り値に基づく、カスタム レスポンダー応答条件を指定できます。詳細については、「メッセージ レスポンダーの概要Custom Correlation」 を参照してください。
1 つのタイプの応答条件を指定することも、複数のタイプの応答条件を指定することも、あるいは応答条件を指定しないこともできます。応答条件が指定されていない場合、メッセージ内のすべてが処理されます。
トランスポート応答条件
トランスポート応答条件を構成するには、次の操作を行います。
- [応答条件の有効化] チェック ボックスをオンにします。
- [追加] をクリックします。新しいエントリ行が表示されます。
- [ヘッダー名] を入力します。
- 次のいずれかを実施します。
- このヘッダーが特定の値に設定されているメッセージに一致させたい場合: その値を [ヘッダーの値] に入力します。
- ヘッダーの値に関係なく、このヘッダーを含むすべてのメッセージに一致させたい場合: [ヘッダー名が存在する場合、値にかかわらず応答条件に一致する] をオンにします。
Anchor | ||||
---|---|---|---|---|
|
リクエスト ボディ応答条件を構成するには、次の操作を行います。
- [応答条件の有効化] チェック ボックスをオンにします。
- [編集] ボタンをクリックします。[XPath 関数の編集] ダイアログが表示されます。
- 要素ツリーから要素を選択し、[関数] ドロップダウン メニューから関数を選択して [OK] をクリックします。
- 次のいずれかを実施します。
- 着信リクエスト メッセージのツリーが表示される場合、 [要素] ツリーから要素を選択し、 [関数] ドロップダウン メニューから関数を選択します。
- ツリー表現がない場合、あるいは抽出および評価したい要素/属性がツリーに完全に表示されていない場合、XPath 表現を手動で提供します。応答条件の目的で Virtualize がサポートする XPath 表現は、W3C の XPath 1.0 標準に基づきます。
- さらに XPath を指定したい場合は同様に追加します。
URL パラメーター応答条件
URL パラメーター応答条件は HTTP/HTTPS 上でアクセスされる仮想アセットに適用します。
...
- http://myvirtserver:9080/MyAsset/MyPath?param1=value1¶m2=someothervalue¶m3=value3
- http://myvirtserver:9080/MyAsset/MyPath?param1=value1&m3=value3
URL パス応答条件
URL パス応答条件は HTTP/HTTPS 上でアクセスされる仮想アセットに適用します。注意: Virtualize 9.7 から一致方法が変わりました。既存の仮想アセットは、現在のパラダイムを使用するために、変更時に自動的に再構成されます。
...
一致する | 一致しない |
---|---|
org/parasoft/EM/Entries | org/parasoft/EM/foo/bar/Entries |
HTTP メソッド応答条件
HTTP メソッド応答条件は HTTP/HTTPS 上でアクセスされる仮想アセットに適用します。
...
たとえば、GET、POST、PUT を指定した場合、レスポンダーはメソッド GET、POST、または PUT がある HTTP リクエストに一致します。 CONNECT、DELETE、HEAD などがある HTTP リクエストには一致しません。
Anchor | ||||
---|---|---|---|---|
|
カスタム レスポンダー応答条件は、 Javaまたはスクリプト言語で書かれたカスタム メソッドの戻り値に基づいています。
...
より詳しい情報については、 [Parasoft] > [ヘルプ目次] > [Extensibility API] > [CorrelationScriptingHookConstants] を参照してください。
正規表現
たとえば、正規表現に基づいてプレーン テキストのメッセージを使用する場合、次のように記述できます。
Code Block |
---|
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 要素
XML メッセージの要素を使用したい場合、次のように記述できます。
Code Block |
---|
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 |
HTTP メソッド
HTTP メソッドに応答したい場合は、次のように記述できます。
Code Block |
---|
from com.parasoft.api import * def correlateHTTPMethod(context): method = context.get(CorrelationScriptingHookConstants.REQUEST_METHOD) return "GET" == method |
添付ファイル
カスタム レスポンダー応答条件で添付ファイルにアクセスするには、CorrelationScriptingHookConstants.ATTACHMENTS
キーを使用してすべての添付ファイルのリストを取得します。返却される attachment インターフェイスには単一のメソッド getContents があり、添付ファイルの MIME タイプに基づいたオブジェクトを返します。
...
Code Block |
---|
from com.parasoft.api import CorrelationScriptingHookConstants from org.python.core.util import FileUtil from org.python.core.util import StringUtil def correlateOperation(context): # List<com.parasoft.api.ICorrelationAttachment> attachments = context.get(CorrelationScriptingHookConstants.ATTACHMENTS) # java.io.InputStream instream = attachments.get(0).getContents() bytes = FileUtil.readBytes(instream) return "Attachment" == StringUtil.fromBytes(bytes) |
Anchor | ||||
---|---|---|---|---|
|
[データ ソース応答条件] タブは、仮想アセットのレスポンスにデータ ソースのどの行の値を使用するかを指定できます。着信メッセージがレスポンダー応答条件と一致すると、Virtualize はデータソース応答条件に基づいてデータソースでデータ ルックアップを実行し、データ行を見つけます。この行は、データ ソースからパラメータライズした値をレスポンス ([レスポンス] タブに定義されたように) に投入するために使用されます。
...
そしてメッセージの値が Message 列の関連する値でパラメータライズされます。
大文字と小文字の区別
Anchor | ||||
---|---|---|---|---|
|
デフォルトでは、データソース応答条件で使用される値では大文字と小文字が区別されますが、データソース応答条件のさまざまな面で大文字と小文字を区別しないモードで Virtualize を開始できます。コマンドラインから Virtualize を起動し、次のシステム プロパティの 1 つまたはすべてを含めます。
...
parasoft.correlation.value.case.insensitive | このプロパティは、データ リポジトリ データ セット キー値について、大文字/小文字の区別を変更します。トラフィックから新しく作成されたアセットの値にのみ影響します。 利用できる値:
例:
|
parasoft.correlation.field.name.case.insensitive | このプロパティは、レスポンダー応答条件とデータソース応答条件のリクエスト本文フィールド名について、大文字/小文字の区別を変更します。 利用できる値:
例:
|
parasoft.correlation.url.path.case.insensitive | このプロパティは、リクエスト URL パスについて、大文字/小文字の区別を変更します。このプロパティは、アセットのデプロイメント パス、プロキシ リスン パス、およびレスポンダー URL パスの応答条件に影響します。 利用できる値:
例:
|
利点
[複数レスポンス] モードで仮想アセットを構成する方法の 1 つは、着信メッセージの性質に基づいて、メッセージ レスポンダー ツールが異なるレスポンス メッセージを送信するように手動で構成することです。
もう 1 つの方法は、データ ソースを使用して仮想アセットが任意のメッセージで動的に応答するように構成することです。 データ ソース テーブル (Excel など) に簡単に入力できます。各行は、仮想アセットに応答させる着信メッセージ内の値 (通常はただのリーフ ノード値) です。別の列では、指定の条件に一致したときに仮想アセットにどのように応答させるかを指定します (詳細については、 「メッセージ レスポンダーの概要Using Existing Data Sources or Rapidly Creating Data Sources for Responses」 を参照)。その後、リクエスト メッセージおよびレスポンス メッセージの値とデータ ソースの列のマッピングを構成します。
...
たとえば、"title keyword" という受信値に Linux という単語が含まれている場合にデータ ソースの行と一致させたい場合、データ ソースの値として "[like *Linux]" を指定できます。
構成手順
データ ソースの値で仮想アセット レスポンスをパラメータライズするには、次の操作を行います。
- Message Responder で使用するデータ ソースが Virtualize に存在していることを確認します。
- [データ ソース応答条件] タブの適切な場所で [追加] ボタンをクリックし、 XPath、 URL パラメーター、あるいは条件式を入力し、適切な列名を選択します。デプロイされた仮想アセットが実行されるとき、 Virtualize はリクエストから指定の値を抽出し、抽出された値に対応する列名を検索します。一致するデータが見つかった場合、該当するデータ ソース行のデータを使用してレスポンスに値が設定されます。
- 同じ列名を (たとえば URL パラメーターと URL パスで) 複数回指定した場合、1 個の値だけが設定されます。前の値は上書きされます。
- WSDL が指定されている場合、[編集] ボタンをクリックして XPath を生成できます。ダイアログはリアルタイムで XPath 式および列名を検証します。
- ビジュアルな [編集] オプションではなく手動で XPath をカスタマイズした場合、XPath 式の入力/編集中に XPath の構文が検証されます。
- データ ソース列ではワイルドカードを使用できます。
- 式 (例:
[> "55"]、 [like "alpha?beta*"]、 [like "*b*" or like "*a*" and like "*z*"]
) を使用できます。詳細については、「Criteria Expressions for Matching Values with the Message Responder」を参照してください。 - 利用可能な構成オプションの詳細については、以下の メッセージ レスポンダーの概要 Data Source Correlation Options を参照してください。
- (フォーム入力、フォーム XML などと) 同じデータ ソースの別の列を参照し、Message Responder の [レスポンス] エリアをパラメータライズします。列名マッピングに複数の XPath または URL パラメーターを追加できます。
データ ソース応答条件オプション
データ ソース応答条件では以下の構成オプションが利用可能です。
フェイルオーバー オプション
データソース応答条件が有効な場合、Virtualize はこのタブで指定された条件を使用して、着信メッセージの値をデータ ソースの値と照合しようとします。特定の着信メッセージの値に一致するデータ ソース行がない場合、これは 「データ ソース応答条件の失敗」と見なされます。
...
リクエスターにエラーが返されるとき、エラー イベントは [イベント詳細] ビューにも記録されます (仮想アセットのモニタリングが有効になっている場合。詳細は 「Gaining Visibility into Server Events」を参照してください)。
リクエスト ボディ
ここでは、1 つ以上の値を抽出するために、着信メッセージで実行する XPath を 1 つ以上指定できます。抽出された値は、マッピングされたデータ ソース列の値とマッチングされます。
リクエスト HTTP URL パラメーター
このエリアは、 HTTP/HTTPS 上でアクセスされる仮想アセットに適用します。リクエスト URL 内で検索する 1 つ以上の URL パラメーターを指定します。パラメーター値はマッピングされたデータ ソース列の値とマッチングされます。
...
Info | ||
---|---|---|
| ||
データ ソース応答条件は、リクエスト中のフィールドの欠如に対応できます。たとえば、リクエスト ボディの XML 要素のテキスト値に対してデータソース応答条件が設定されたレスポンダーがあるものとします。ただしこの XML 要素の使用は任意です。 同じデータ ソースを使って、フィールドがない場合に、パラメータライズされた値を使ってレスポンスにデータ投入することができます。それには、データ ソース行の対応するフィールドの値を空文字列として設定します。XPath 関数のプロパティのため、空文字列は XML 要素がない状況および XML 要素が空の状況に一致します。これは、URL パスに対するデータ ソース応答条件にも当てはまります。リクエスト中のフィールドの欠如に一致させるために、データ ソース行の対応するフィールドの値として空文字列を使用できます。 URL パラメーターのデータ応答条件の動作はやや異なります (パラメーター値が空文字列でありパラメーターが欠如しているケースを処理するために):
|
リクエスト URL パス
このエリアは、 HTTP/HTTPS 上でアクセスされる仮想アセットに適用します。パス セグメントのインデックスに基づいてデータ ソースの値のマッピングを構成できます。
...
Borrower 1 | Borrower 2 |
---|---|
John Smith | Jane+Doe |
John+Smith | Jane%20Doe |
John%20Smith | Jane Doe |
リクエスト ヘッダー
抽出してマッチングしたいリクエスト値のヘッダーを指定し、それぞれをデータ ソース列にマッチングします。抽出された値は、マッピングされたデータ ソース列の値とマッチングされます。
処理の詳細
メッセージ レスポンダーがアクティブであるとき、これらの XPath 式/URL パラメーターを通して着信メッセージが評価されます。値と対応するデータ ソース値 (それぞれに対応する列) が比較され、値が一致する行が検索されます。
...
処理の詳細については「Criteria Expressions for Matching Values with the Message Responder」を参照してください。
Anchor | ||||
---|---|---|---|---|
|
[添付ファイル] タブでは、レスポンス メッセージにバイナリまたは XML の HTTP 添付ファイルのいずれかを送信できます。
...
- [追加] をクリックします。[アタッチメント テーブル] に XML アタッチメント エントリが追加されます。
- XML アタッチメント エントリをダブルクリックします。[添付ファイルの編集] ダイアログが開きます。
- [添付ファイルの編集] ダイアログで、 [モード] ドロップダウン リストから XML または バイナリを選択します。
- 添付ファイルを構成します。
- XML モードでは次のオプションが利用できます。
- Views: ドロップダウン リストからビューを選択し、適宜構成します。
- バイナリ モードでは次のオプションが利用できます。
- Base 64 エンコーディング: Base 64 エンコーディングでバイナリ値をエンコードするには、このチェックボックスをオンにします。
- データ ソース列: データ ソース列からの値を送信します。
- ファイル: ファイルからの値を送信します。[ファイル システム] ボタンをクリックしてファイルを指定します。ファイルへのパスを、現在のコンフィギュレーション ファイルからの相対パスとして保存したい場合、[相対パスで保存] をオンにします。
- テキスト: テキスト値を送信します。
- コンテンツ タイプ: コンテンツ タイプを指定します。添付ヘッダーの追加、編集、削除をするには、 [ヘッダーの編集] をクリックします。
- XML モードでは次のオプションが利用できます。
[オプション] タブ
[オプション] タブではメッセージの処理方法を構成できます。次のオプションが利用可能です。
リクエスト テンプレート
パラメーター選択支援のためのリクエスト URL テンプレート
テスト対象アプリケーションが対応する (そしてレスポンダーがシミュレートすべき) URL に特有のまたはそれを代表する URL を入力します。パラメータライズされたトラフィック ウィザード ( Creating Parameterized Message Responders from Trafficで説明) からレスポンスを作成する場合、このフィールドには、レスポンダーに対応するトラフィック中のいずれかのリクエストの URL が設定されています。
ここで指定された値は、[レスポンダー応答条件] タブと [データ ソース応答条件] タブの両方で、URL パスおよび URL パラメーターの応答条件を設定するために使用されます。
XPath 作成支援に用いるリクエスト メッセージ テンプレート
XPath パラメーターを生成するときに (たとえばデータ ソース応答条件およびレスポンダー応答条件のメッセージ リクエスト XPath ダイアログや複数レスポンス XPath ダイアログで)、期待される XML レスポンスに自動的にデータ投入するために使用される XML 形式のテンプレートを指定できます。
- トラフィック ログからメッセージ レスポンダーを作成する場合、リクエスト メッセージ テンプレートは自動的に生成されます。トラフィック ログで特定された最も大きなリクエスト メッセージがこの目的で使用されます。
- トラフィック ログからメッセージ レスポンダーが作成されない場合、リクエスト メッセージ テンプレートは空になります。この場合、ツリー ビューまたはリテラル ビューでリクエスト メッセージ テンプレートを手動で変更できます (たとえば、構成中のレスポンス メッセージに対応するサンプル リクエスト メッセージにコピーするなど)。
- 完成したリクエスト メッセージ テンプレートは、メッセージ レスポンダーから利用可能な [XPath 関数の編集] ダイアログでツリー/リテラル/エレメント ビューにデータ投入するために使用されます。リクエスト出力としてメッセージ レスポンダーにアタッチされる場合、XML Data Bank および XML Transformer の出力もリクエスト メッセージ テンプレートを使用します。
メッセージ交換パターン
レスポンスを求めるか、通知のみかを選択します。
- [レスポンスを求める] がデフォルト オプションです。レスポンス メッセージ ボディが返されることを指定します。
- [通知のみ] は、リクエスト メッセージが単に認識されることを指定します。HTTP の場合、レスポンスはボディ コンテンツのない HTTP ヘッダーに過ぎません。JMS または WebSphere MQ の場合、着信リクエスト メッセージはリクエスト キューからピックアップされますが、レスポンス メッセージはレスポンスに生成されません。
リターン ステータス (HTTP のみ)
メッセージを返す方法を指定します。たとえば、正常に実行されているサービスやエラーがあるメッセージをエミュレートするために使用します。デフォルト値の 200 OK を使用する場合、[デフォルトのリターン ステータスを使用] チェック ボックスをオンにします。このオプションがオフの場合、以下のオプションを使用できます。
- リターン ステータス: カスタム ステータス値を入力します。データ ソースが利用可能な場合、この値をパラメータライズすることもできます。
- リターン メッセージ: カスタム リターン メッセージを入力します。データ ソースが利用可能な場合、この値をパラメータライズすることもできます。
リクエストの処理
これらのオプションは、応答条件が適用される前に着信リクエストを変更できるかどうか (およびその方法) を決定します。
...
[レスポンダーの関連付けを適用する前に受信リクエストを XML に変換する] は、応答条件が適用される前に XML 変換が必ず行われます。このオプションがオンの場合、応答条件は変換された XML に基づくようになります。
Info title メッセージ モデルへの影響 [レスポンダーの関連付けを適用する前に受信リクエストを XML に変換する] オプションがオンの場合、サンプルのネイティブ形式 トラフィックをリテラル タブに貼り付けることができます ([レスポンダー応答条件] および [データ ソース応答条件] コントロールの XPath エリアおよびリクエスト メッセージ テンプレート)。すると、ツリー/要素タブにはそのメッセージ形式のために指定された構造を使用してメッセージが表示されます。たとえば、JSON レスポンダーのリテラル タブに JSON メッセージを貼り付けた場合、ツリー タブを開くと、メッセージはフォームの JSON 構造で表示されます。
ツリーおよび要素タブでリテラルなネイティブフォーマット メッセージを別のメッセージ形式で表示したい場合、[レスポンダーの関連付けを適用する前に受信リクエストを XML に変換する] オプションをオンにしてメッセージ形式を指定します。
- [レスポンスと異なるメッセージ形式を使って受信リクエストを XML に変換する] は、メッセージ レスポンダーがレスポンス用に構成されたものと異なるフォーマットでメッセージを受信するように構成できます。たとえば、 EDI メッセージを受信して固定長メッセージで応答したい場合、 Fixed Length Message Responder を作成して着信リクエストを EDI に変換するように構成します。
パフォーマンス
メッセージ レスポンダーの実行時間に関する次のオプションを設定できます。
- パフォーマンス グループ: パフォーマンス プロファイルを使用している場合、ここでレスポンダーのパフォーマンス グループの設定や変更ができます。パフォーマンス プロファイルの詳細については、「Working with Performance Profiles」を参照してください。
- 思考時間: エミュレートしたいメッセージ遅延の時間 (ミリ秒) を入力します。この時間は次の時間に追加されます。 a) 「サーバーがリクエストの受信を完了した時間からレスポンスの送信が開始するまでの時 間」から計算される実行時間。および、 b) パフォーマンス プロファイルを介して指定された追加時間 (「Working with Performance Profiles」を参照)。また、データ ソースが利用できる場合は、この値をパラメータライズすることが可能です。
スタイル/使用
これらのオプションを使用すると、メッセージのボディ スタイルおよびエンコーディングを選択できます。
- ボディ スタイル: document または rpc のいずれかを選択します。
- 使用: encoded または literal のいずれかを選択します。
- エンコーディング スタイル URI: リクエスト送信に使用されるエンコーディング スタイル URI を表示します。利用可能な場合は自動で入力されます。
- ターゲット オブジェクト URI: ターゲット オブジェクト URI を指定します。
添付ファイルのカプセル化フォーマット:
カプセル化フォーマットをデフォルトかカスタムか指定します。[デフォルト] オプションは、設定パネルで添付ファイルのカプセル化フォーマットとして選択されたものを指定します。[カスタム] オプションは、 MIME、 DIME、 MTOM Always、あるいは MTOM Optional を選択できます。詳細については、「添付ファイルの処理Working with Attachments」を参照してください。
SOAP バージョン
SOAP 1.1 または 1.2 のどちらを使用するかを指定します。
送信メッセージのエンコード
このオプションを使用すると、リクエスト メッセージとは異なるエンコーディングを送信メッセージに指定することができます。
エンコーディング オプションをアクティブにするには、[リクエストと異なるエンコーディングを使用する] オプションを有効化します。エンコーディング オプションがアクティブな場合、ドロップダウン メニューから [カスタム] を選択してエンコーディング オプションを指定できます。[デフォルト] を選択して、レスポンダー スイートで設定されたエンコーディングを使用することも可能です。
[変換オプション] タブ
[オプション] タブではメッセージの処理方法を構成できます。これらのオプションは XML に変換されるメッセージ形式にだけ使用可能であり、使用可能なオプションはフォーマットごとに異なります。特定のツールの変換オプションに関する詳細は、関連トピックを参照してください。
- Fixed Length Message Responder
- EDI Message Responder
- カスタム Custom Message Responder行
- Lines Message ResponderResponders
- CSV Message ResponderRespondersプレーン テキスト
- Plain Text Message ResponderResponders
レスポンスのために既存のデータ ソースを使用またはデータ ソースをすばやく作成
データ ソースにレスポンス値を定義すると、大量のリクエスト/レスポンスのペアを効率的に追加できます。
既存のデータ ソースの使用
リクエスト パラメーターおよび対応するレスポンス パラメーターの値が定義されたデータ ソースが既に存在する場合、次の操作を行って、それらの値を使用できます。
- データ ソースを追加します (Understanding How Virtualize Uses Data Sources を参照)。
- 適切なリクエスト列でメッセージ レスポンダーのデータ ソース マッピングを構成します (詳細については、「メッセージ レスポンダーの概要Data Source Correlation Tab」を参照してください)。
レスポンス XML用のデータ ソースの自動生成
使用可能なデータ ソースがまだ存在していないが、複数のリクエスト/レスポンスのセットをすばやく指定したい場合、次の操作を行います。
- 「Generating a Data Source Template for Populating Message Elements」の手順に従って、メッセージ レスポンダー ツールの [フォーム入力] ビューから CSV ファイルを作成します。データ ソースが生成され、レスポンダー スイートに追加されます。この生成されたデータ ソースには、レスポンスの列が含まれています。Message Responder ツールの [フォーム入力] ビューは自動的にパラメータライズされます。
- レスポンスを決定するために使用する必要があるリクエスト パラメーターの分だけデータ ソースに新しい列を追加します (Excel、OpenOffice などのスプレッドシート アプリケーションを使用して)。ワイルドカードを使用できます。
- 追加した新しいリクエスト列を使用して Message Responder のデータ ソース マッピングを構成します。詳細については「メッセージ レスポンダーの概要Data Source Correlation Tab」を参照してください。
- データ ソースに新しい行を追加し (Excel、OpenOffice などのスプレッドシート アプリケーションを使用)、リクエスト パラメーターおよび対応するレスポンス パラメーターに値を指定します 。
着信リクエストに基づいて値をスクリプト化
スクリプトを使用して、受信リクエストに基づいてレスポンスの値を記述できます。そのため、仮想アセットでより複雑なロジックを可能にします。さらに、メッセージ レスポンダーはスクリプトを通してデータ ソース値にアクセスすることを可能にします。データ ソースの値へのアクセス方法は、Extension ツールからアクセスする場合と似ています。
...
- メッセージ レスポンダー ツールの [WSDL URL] フィールドに WSDL を入力します。
- メッセージ レスポンダーのノードを右クリックし、 [出力の追加] を選択します。[出力の追加] ウィザードが表示されます。
- [出力の追加] ウィザードで、左ペインから [受信リクエスト] を選択し、右ペインから [XML Data Bank] を選択して [終了] をクリックします。
- メッセージ レスポンダー ノードの下の [受信リクエスト] > [XML Data Bank] ノードをダブルクリックします。GUI 右側のパネルに XML Data Bank ツールの構成パネルが表示されます。
- GUI 右側のパネルで、スクリプトからアクセスする値の XPath を追加します。
- メッセージ レスポンダーのノードをダブルクリックします。メッセージ レスポンダーのコンフィギュレーション パネルが右側の GUI パネルに表示されます。
- [レスポンス] タブで [スクリプト] ビューを選択します。
ロジックを入力します。次のコードは、データ ソースおよびデータ バンクの値にアクセスするための基本的なテンプレートです。
Code Block 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 # The following method tells what data source you will be using in this script. # "Data Source Name" should be replaced with the name of your data source def addDataSources(context): return "Data Source Name"
- [メソッド] コンボ ボックスから適切なメソッドを選択します。選択するメソッドは、エントリ ポイントでなければなりません。上記の例では、 customLogic() メソッドを選択します。
Anchor | ||||
---|---|---|---|---|
|
必要に応じて、受信したすべての MIME 添付ファイルを管理するためにメッセージ レスポンダーに Attachment Handler を追加できます。メッセージ レスポンダーに Attachment Handler を追加するには、次の操作を行います。
- メッセージ レスポンダーのノードを選択し、[レスポンダーまたは出力の追加] ボタンをクリックします。[出力の追加] ウィザードが表示されます。
- [出力の追加] ウィザードの左側のペインで [受信リクエスト] を選択し、右側のペインで [Attachment Handler] を選択して [終了] をクリックします。
- Attachment Handler ノードをダブルクリックし、ツール構成パネルでツールの構成を行います。
- (任意) メッセージ レスポンダー ノードの下にある Attachment Handler ノードを選択し、[レスポンダーまたは出力の追加] ボタンをクリックします。[出力の追加] ウィザードが表示されたら、添付ファイルをバイナリ ファイルとして書き出すために Write File ツールを追加できます。
任意のエンドポイントにメッセージを転送
Message Forward ツールは、任意のエンドポイント (例: 実際のリソースなど) にメッセージを転送できるツールであり、メッセージ レスポンダー ツールに連結できます。エンド ポイントから返される応答は、メッセージ レスポンダーから返された応答として使用されます。
詳細については「Message Forward」を参照してください。
仮想データベースの値の更新
SQL Responder Action ツールは、 メッセージ レスポンダーが CSV 駆動型の SQL Responder に代表される仮想データベースの値を更新することを可能にします。
詳細については「SQL Responder Action」を参照してください。
レスポンダーの着信リクエストまたは送信レスポンスにツールを連結
Anchor | ||||
---|---|---|---|---|
|
メッセージ レスポンダーの着信リクエストや送信レスポンスにツールを連結できます。
- ツールを追加したい、仮想アセット エクスプローラーのノードを右クリックします。
- [出力の追加] を選択します。
- 左ペインで任意の出力タイプを選択し、右ペインでツールを選択します。
XML に変換されたペイロード
注意: カスタム レスポンダーまたは EDI/CSV/固定長レスポンダーを使用している場合、ペイロードが XML に変換されるツール (着信リクエスト)、またはペイロードが XML としてモデル化されるツール (送信レスポンス) を連結するオプションがあります。これは、ネイティブ形式のペイロードにツールを追加する、標準のペイロード オプションに追加されます。
実行順序
連結されたツールは以下の順序で実行されます。
- 着信リクエスト
- トランスポート ヘッダー
- ペイロード
- XML に変換されたペイロード
- 添付ファイル
- 送信レスポンス
- トランスポート ヘッダー
- XML としてモデル化されたペイロード
- ペイロード
- 両方 > トラフィック オブジェクト
- 転送 > トラフィック
例
たとえば、次の目的でツールを連結することが考えられます。
...
目的 | 手段 |
---|---|
レスポンダーがデータベースの更新アクションのトリガーとなる 例: リレーショナル データベースに行を更新/削除/追加する、あるいは SELECT クエリーを実行する | メッセージ レスポンダーの着信リクエストに DB Tool を連結する。 また、リレーショナル データベースから取得した値でレスポンスにデータ投入するために、 DB Tool の XML 出力に XML Data Bank を連結し、レスポンダーの出力でこれらのデータ バンクの値を参照できる。 |
データベースのデータがレスポンス メッセージを手動で構成する 例: 任意の XML レスポンス フォーマットを生成するために、戻されたレコードを順に処理する | メッセージ レスポンダーの送信レスポンスに DB Tool を連結し、 XML Transformer、XSLT Tool、または Extension Tool を連結する。これらのツールの出力は、メッセージ レスポンダーのエディターの [レスポンス] タブで構成されたコンテンツを置き換える。このことは、メッセージを手動で構成することに柔軟性を提供する。 データベースから特定の値を使用したい場合は、上記のように着信メッセージに DB Tool を連結する。 |
レスポンダーが別のサービスを呼び出す | メッセージ レスポンダーの着信リクエストに SOAP Client または Messaging Client を連結する。メッセージ レスポンダーの送信レスポンスに SOAP Client や Messaging Client を連結することはサポートされていない。 |
レスポンダーが別のサービスを呼び出し、その出力の一部をレスポンス パラメーターに投入するために使用する | メッセージ レスポンダーの着信リクエストに SOAP/Messaging Client を連結し、クライアントのレスポンスに Data Bank を連結する。これらのデータ バンクの値は、動的なレスポンス メッセージを構築するためにメッセージ レスポンダーの [フォーム入力] や [フォーム XML] ビューで参照される。 レスポンダーで受信したリクエストから抽出したパラメーターでそのサービスを呼び出す必要がある場合、レスポンダーの着信リクエストに XML Data Bank を連結し、レスポンダーの着信リクエストに SOAP/Messaging Client を連結し、リクエストから抽出したデータ バンク値でリクエストをパラメータライズする。ここでは順番に注意すること。データ バンクはクライアントがその値を使用できるように、クライアントの前に設置する必要がある。 |
MQ 文字セットの処理
Virtualize は送信 (レスポンス) MQ メッセージの characterSet フィールドを着信 (リクエスト) MQ メッセージと同じ値に設定します。
...