TCP の仮想化
TCP トランスポート プロトコルでは、1 つ以上のクライアントと 1 つのサーバ間で RAW TCP/IP トラフィックを仮想化できます。 このトランスポートは HTTP プロトコルに類似しており、同じ機能の多くを使用します。
レコーディング時に、エンドポイント モードで HTTP を設定するのとまったく同様に TCP プロトコルを設定します。 リスンするソケット、ターゲット サーバ、および送信先を指定します。 このプロトコルは、クライアントとサーバ間でデータを転送し、そのデータを「リスン」して VSE トランザクションを作成します。
バイトから VSE トランザクションへの変換
要求または応答を構成しているすべてのもの、およびそれらの要求と応答を関連付ける方法を知るのは簡単ではありません。 TCP データには固有の構造がありません。 受信データ ストリームで要求を識別するには、要求区切り文字が必要です。 また、応答区切り文字は厳密には必要ありませんが、応答区切り文字も選択できます。
レコーダは、以下のルールを使用して要求と応答を特定し、要求と応答を一緒にトランザクションに関連付けます。
以下に例を示します。
要求 1 - 要求 2 - 応答 A - 部分的な要求 3 - 応答 B - 要求 4 - 部分的な応答 C - 要求 5 - 応答 D と後続データ
このデータは、以下のようにトランザクションへと解析されます。
クライアントとサーバが同期要求/応答パラダイムに従っており、応答のない要求を処理する場合には、このシステムが機能します。 このシステムは、非同期通信、または複数の応答を持つ要求を処理しません。
会話の作成
デフォルトでは、VSE は、TCP サービス イメージを記録し、マシン名(または IP アドレス)および送信ソケットに基づいて会話を作成します。 送信ソケットが変更されるたびに、新しい会話が開始されます。 この動作を変更するには、[すべてのトランザクションをステートレスとして処理]チェック ボックスをオンにします。
標準の区切り文字
DevTest には以下の区切り文字があります。
1 つ以上の改行文字によって、各要求/応答が終了します。 区切り文字自体は、要求/応答に含まれません。
値
各要求/応答は、特定のバイト数の長さです。
カンマなどの特定の文字または文字のシーケンスによって、各要求/応答が終了します。 シーケンス全体が一致する必要があります。 区切り文字自体は、要求/応答に含まれません。 このオプションは、CSV ファイルのインポートに類似しています。
正規表現に一致するバイト セットによって、各要求/応答が終了します。 区切り文字自体は、要求/応答に含まれません。
要求/応答に区切り文字が含まれていない場合(ほとんどの場合)、連続する区切り文字のセットは無視されます。
注: レコーディングが完了した後は、選択された区切り文字を編集できません。 モデル エディタでは、選択された区切り文字を変更できません。
[要求をテキストとして処理]および[応答をテキストとして処理]
[要求をテキストとして処理]チェック ボックスと[応答をテキストとして処理]チェック ボックスは、要求データと応答データの解析方法を制御します。
要求を VSE 要求のボディとして使用するかどうかを指定します。
値
要求を VSE 要求のボディとして使用するかどうかを指定します。
値
トランザクション数が正しくない理由
トランザクション数は、常に少なくとも 1 ずつ遅延します。 TCP プロトコルは、完了したトランザクションを検出すると、次のトランザクションが開始されるまでそのトランザクションをキャッシュします。その理由は、応答後に、サーバが意図的にソケットを閉じる場合があるためです。 この状況が発生すると、TCP プロトコルはそれを検出し、応答に lisa.vse.close_socket_after_response=TRUE を設定します。 このプロパティが設定されると、VSE は、再生時に応答を送信した後、サーバ側のソケットを閉じます。
応答区切り文字を使用しない場合、トランザクション数はさらに 1 つ遅延します。 TCP プロトコルは、新しい要求が開始されるまで、応答が完了したことを知りません。 したがって、合計数に 2 つの差がある可能性があります。 レコーディングが完了すると、その数は正しくなります。
|
Copyright © 2014 CA Technologies.
All rights reserved.
|
|