概要

Asynchronous Socket Transport は Netty を基に構築されており、さまざまなモードをサポートします。

インストール

ツールは UI またはコマンドラインからインストールできます。

UI からのインストール

  1. [Parasoft ] > [設定] を選択し、[システム プロパティ] をクリックします。
  2. [JAR の追加] をクリックし、com.parasoft.soavirt.transport.asynchronous.socket-1.1.0.jar ファイルを選択します。jar ファイルが SOAtest のクラスパスに追加されると、必要なすべての依存ライブラリがロードされます。
  3. [適用] をクリックします。
  4. SOAtest/Virtualize を再起動します。

コマンドラインからのインストール

設定プロパティ ファイルの system.properties.classpath プロパティに com.parasoft.soavirt.transport.asynchronous.socket-1.1.0.jar ファイルを追加します。例:

system.properties.classpath=<path to jar>/com.parasoft.soavirt.transport.asynchronous.socket-1.1.0.jar 

クラスパスを変更すると、必要なすべての依存ライブラリがロードされます。

使用方法

Asynchronous Socket Transport は、主に Messaging Client ツールで使用されます。トランスポートの設定はメッセージング クライアントの [トランスポート] タブで行います。[トランスポート] メニューから [Asynchronous Socket] を選択し、表示されるオプションを設定します。

設定

以下のオプションを設定できます。

接続

Protocol

メッセージを送信するために使用されるプロトコルを指定します。選択肢は TCP または UDP です。

デフォルト: TCP

Host

アプリケーションが実行されているホストを指定します。固定値を指定するか、[スクリプト] を選択して [スクリプトの編集] をクリックし、スクリプト エディターを表示してプログラム的にホストを指定します。詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。

デフォルトは localhost です。 

Portクライアントがメッセージを送信するホストのポートを指定します。固定値を指定するか、[スクリプト] を選択して [スクリプトの編集] をクリックし、スクリプト エディターを表示してプログラム的にポート番号を指定します。詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。
Local Port

送信接続を行う際にローカルポートを使用する必要がある場合は、そのポートを指定します。空白 (0 に設定) の場合、ポートは自動的に割り当てられます。

デフォルト: 0

Character Set

メッセージのエンコードに使用する文字セットを指定します。固定値を指定するか、[スクリプト] を選択して [スクリプトの編集] をクリックし、スクリプト エディターを表示してプログラム的に文字セットを指定します。詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。

デフォルト: UTF-8 

Read Mode

メッセージの読み取りモードを指定します。

  • 常に同じサイズの固定長メッセージである場合は fixed を指定します。
  • メッセージの先頭に int (4 バイト) の接頭辞が付いている場合は prefixed を指定します。
  • ソケットからバイトを読み取り、メッセージ全体 (プレフィックスと長さフィールドを含む) を 16 進文字列形式で返すメッセージの場合は、prefixed-full を指定します。
  • メッセージの先頭の何桁かが文字列接頭辞である場合は prefixed-string を指定します。
  • メッセージが終端文字またはユニコード シーケンスによって区切られている場合は token を指定します。
  • none を指定すると、サーバーからの次のメッセージを読み取るのを待たずにツールがすぐに続行するように構成されます。

固定値を指定するか、[スクリプト] を選択して [スクリプトの編集] をクリックし、スクリプト エディターを表示してプログラム的に読み取りモードを指定します。詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。

デフォルト: prefixed 

Format

リクエストとレスポンスのバイトの解釈方法を指定します。オプションは hex-string (16 進文字列) または byte-array (バイト配列) です。

形式を byte-array に設定すると、バイトはそのまま読み込まれ、送信されます。クライアントのテキストエディターで定義されたペイロードは、設定された文字セットを使用してバイトに変換されます。ファイル入力はバイトとして読み込まれ、そのまま送信されます。

形式を hex-string に設定すると、リクエストとレスポンスの両方が 16 進数でエンコードされた文字列に変換されます。この形式では、クライアントで定義されたペイロードも 16 進文字列として提供され、バイトとして送信されます。この形式は、印刷できない ASCII 文字を含むメッセージを読み取り可能な 16 進値 (例: 0A1F03) として表現できるため、処理に便利です。

デフォルト: byte-array

固定長

Fixed Length フィールドに固定長メッセージのサイズを指定します。

たとえば、メッセージのサイズが常に 4 バイトである場合、クライアントは次のようなリクエストを送信します。

[0, 0, 0, 0] 

トランスポートは同じサイズのレスポンスを返します。例:

[1, 1, 1, 1] 

クライアントからの 4 バイトのメッセージがメッセージであるとみなされます。

トークン区切り

Token Delimiter

メッセージを区切るトークンを指定します。

デフォルト: byte "23", End-Of-Transmission-Block 

Token Type

トークンのバイトを取得するために使用する変換のタイプを指定します。

  • string を指定すると、トランスポートは getBytes と設定の文字セットを使用してバイトに変換します。
  • hex を指定すると、文字列は 16 進数値のシーケンスとして解釈されます。たとえば、0a 0d は 10 13 というバイトになります。
  • byte を指定すると、文字列はスペースで区切られた 10 進数値のバイト シーケンスとして解釈されます。例: 10 13

デフォルト: hex 

Prefixed Variable-Length (Number)

このセクションの設定は、読み取りモードに prefixed が指定されている場合にだけ適用されます。 

Length of the Length Field

長さフィールドの長さを指定します。指定されたバイト数を読み取り、数値に変換してメッセージの長さを判断します。次の値を指定できます。1 , 2 , 3 , 4 , または 8

デフォルトでは、4 バイトを読み取って整数に変換します。

Include Length Field Size in Length 

読み取られた長さに Length フィールドのサイズが含まれるかどうかを指定します。

たとえば、このオプションを有効にした場合、メッセージが 4 バイトのとき、Length フィールドの値として 8 を送信します。なぜなら、Length フィールドのデフォルトの長さは 4 バイトであり、これがメッセージ本体の長さに追加されるからです。 

デフォルト: true

Format of Static Prefix/Suffix 

静的な接頭辞/接尾辞をバイトに変換する際に使用する変換のタイプ

  • string を指定すると、ソケットは getBytes と設定の文字セットを使用してバイトに変換します。
  • hex を指定すると、文字列は 16 進数値のシーケンスとして解釈されます。たとえば、0a 0d は 10 13 というバイトになります。
  • byte を指定すると、文字列はスペースで区切られた 10 進数値のバイト シーケンスとして解釈されます。例: 10 13

デフォルト: hex 

Static Prefix

メッセージに追加される接頭辞セグメントです。必須の場合があります。指定された場合、メッセージのフォーマットは <PREFIX_BYTES><LENGTH_FIELD_BYTES><MESSAGE_DATA_BYTES> です。

Static Suffix

メッセージに追加される接尾辞セグメントです。必須の場合があります。指定された場合、メッセージのフォーマットは <LENGTH_FIELD_BYTES><MESSAGE_DATA_BYTES><SUFFIX_BYTES> です。

接頭辞付き可変長 (数値) の設定例

クライアントが int 型の接頭辞付きのメッセージ request1 を含むリクエストを CP037 文字セットで送信し、length 値に接頭辞の長さが含まれている場合、リクエストは次のバイト列で表されます。

[0, 0, 0, 12, 114, 101, 113, 117, 101, 115, 116, 49]

先頭の 4 バイト ([0, 0, 0, 12]) は整数 12 です。これは接頭辞である先頭 4 バイトを含むメッセージ全体の長さです。残りのバイトは設定の文字セットでエンコードされた文字列 request1 です。

Prefixed Variable-Length (Full)

このセクションの設定は、読み取りモードに prefixed-full が指定されている場合にだけ適用されます。

Length of the Length Field

長さフィールドの長さを指定します。指定されたバイト数を読み取り、数値に変換してメッセージの長さを判断します。次の値を指定できます。1 , 2 , 3 , 4 , または 8

デフォルトでは、4 バイトを読み取って整数に変換します。

Include Length Field Size in Length

読み取られた長さに Length フィールドのサイズが含まれるかどうかを指定します。

たとえば、このオプションを有効にした場合、メッセージが 4 バイトのとき、Length フィールドの値として 8 を送信します。なぜなら、Length フィールドのデフォルトの長さは 4 バイトであり、これがメッセージ本体の長さに追加されるからです。 

デフォルト: true

Offset of Length Field

長さフィールドがメッセージの最初のバイトでない場合、長さフィールドに到達するためのオフセット量を指定します。

デフォルト: 0

Include Offset in Length

長さにオフセットを含めるかどうかを示します。

デフォルト: true

接頭辞付き可変長 (フル) の設定例

これは、プレフィックス付き完全読み取りモードと 16 進文字列形式を使用するときに設定できるメッセージの例です。

99119911000e1111111122222222 

このメッセージには、4 バイトのプレフィックス (16 進数で 8 文字) があります。

99119911 

メッセージの長さは 2 バイト (16 進数で 4 文字) です。

000e 

メッセージ本文は次のとおりです。

1111111122222222 

Prefixed Variable-Length (String)

このセクションの設定は、読み取りモードに prefixed-string が指定されている場合にだけ適用されます。

String Prefix Lengthメッセージの length 接頭辞のサイズを指定します。読み取るバイト数は、ここで指定された桁数をバイトに変換した値を元に計算します。トランスポートは 0 をバイトにエンコードし、このフィールドで指定された数をバイト数に乗算します。
Include Prefix in Length

接頭辞から読み取られた長さに接頭辞の長さも含まかどうかを指定します。

デフォルト: true

SSL

SSL Enabled に true を指定すると、SSL でリスンします。 

Logging

Log Level フィールドの値を指定します。この設定はオプションです。

  • エラーだけを記録するには 1 を入力します。
  • エラーと警告を記録するには 2 を入力します。
  • エラー、警告、通知を記録するには 3 を入力します。
  • エラー、警告、通知、デバッグを記録するには 4 を入力します。

デフォルトは 3 です。 

接続管理

テストとテストの間にサーバーから送信されたメッセージを見逃さないようにするために、[接続をキープ アライブ] を有効にしたり、次のテストが古いメッセージを取得しないようにテスト実行後に [接続を閉じる] を有効にしたりできます。

非同期メッセージのテスト

通常、このトランスポートは SOAtest メッセージング クライアントで使用され、[リクエスト] タブで設定されたとおりに 1 つのメッセージを送信し、レスポンスとして 1 つのメッセージを受信するのを待機します。ただし、サーバーが複数のメッセージで応答したり、まったく応答しなかったりする場合もあります。このような非同期のケースでは、次の構成の 1 つ以上を使用します (該当する場合)。

  • [Read Mode] を none に設定することで、サーバーからの応答メッセージを待たずに 1 つのメッセージを送信します。
  • [リクエスト] タブを Literal に設定し、[テキスト] を有効にしてテキスト フィールドを空のままにしておくことで、メッセージの送信をスキップし、サーバーからの次のメッセージを受信するまで待機します。
  • テストとテストの間にサーバーから送信されるメッセージを見逃さないように、Connection Management で [接続をキープ アライブ] を有効にします。
  • テスト スイート フロー ロジック を使用して、サーバーから動的な数のメッセージを読み取ってループします。

変更ログ

1.2

  • プレフィックス付き可変長 (フル) 読み取りモードのサポートが追加されました。

1.1

  • UDP のサポートの追加。

1.0

  • 初回リリース。
  • No labels