概要

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] を選択し、表示されるオプションを設定します。

設定

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

接続

プロトコル

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

デフォルト: TCP

Host

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

デフォルトは localhost です。 

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

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

デフォルト: UTF-8 

Read Mode

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

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

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

デフォルト: prefixed 

固定長

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 0d10 13 というバイトになります。
  • byte を指定すると、文字列はスペースで区切られた 10 進数値のバイト シーケンスとして解釈されます。例: 10 13

デフォルト: hex 

接頭辞付き可変長 (数値)

このセクションの設定は、読み取りモードに 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 0d10 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 です。

接頭辞付き可変長 (String)

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

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

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

デフォルト: true

SSL

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

ロギング

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

デフォルトは 3 です。 

接続管理

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

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

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

変更ログ

1.1

1.0