2.5.9 gzip形式で圧縮されたHTTP電文の解凍および再圧縮
概要
パケットキャプチャ、またはpcapファイル内のHTTP電文がgzip形式で圧縮されていた場合、解凍します。解凍されたHTTP電文は、送信するときに再圧縮してテストを実行します。
gzip形式で圧縮されていないHTTP電文は、そのまま処理します。この機能を利用することで、電文ファイルおよび結果ファイルに解凍されたデータが格納されます。
- 本番環境を再現するテスト
-
本番環境の電文の圧縮、および非圧縮をテスト実行フェーズで再現してテストを行う場合の処理の流れを次に示します。
図中の番号は、次の説明の番号と対応しています。
-
キャプチャしたパケットを電文に組立てる際、またはpcapファイルから電文を取得する際に、HTTP電文がgzip形式で圧縮されていた場合は解凍します。HTTP電文が非圧縮の電文はそのまま処理します。
-
1.で解凍した電文をテスト対象システムに送信するときに再圧縮します。
非圧縮の電文はそのまま処理します。
-
応答電文を取得した際、電文がgzip形式で圧縮されていた場合は解凍します。
非圧縮の電文はそのまま処理します。
-
- 本番環境の再現以外のテスト
-
webサーバの負荷や、ネットワークの負荷を変更したい場合は、この機能を使用し、HTTP電文の圧縮および非圧縮を変更します。
この機能を使用するには、framework_definition定義の-uオプションの次に示すフラグメンバを使用します。
-
request_force_encoding
-
response_force_encoding
応答電文を圧縮して返す要求をした処理の例を次に示します。
-
前提条件
- zlibライブラリ
-
gzip形式で圧縮されているHTTP電文の解凍、および圧縮処理は、zlibライブラリのバージョン1.2.3以降を使用して処理をします。HSIC実行マシン上にzlibライブラリのバージョン1.2.3以降がインストールされていない場合、テスト実行前にzlibライブラリをインストールしてください。zlibライブラリの入手方法については、zlib公式サイト、またはインストーラ配布サイトなどで確認してください。
- Windowsの場合
-
インストール後、PATH環境変数にzlibライブラリインストールディレクトリを指定してください。
- Linux版の場合
-
インストール後、LD_LIBRARY_PATH環境変数にzlibライブラリが格納されているディレクトリのパスを指定してください。
- 本機能未対応のバージョンで作成した蓄積ファイルについて
-
本機能未対応のバージョンのシステムテスト支援で作成した蓄積ファイルをテスト実行フェーズで使用する場合、本機能は使用できません。
- フラグメンバcompression_encodingの指定値について
-
フラグメンバcompression_encodingは、電文作成フェーズとテスト実行フェーズで同じ指定値にしてください。
- gzip以外の圧縮形式について
-
本機能は、gzip以外の圧縮形式には対応していません。gzip以外の圧縮形式のHTTP電文を使用する場合、本機能は使用できません。
定義
- compression_encoding
-
フラグメンバcompression_encodingの指定値がgzipで、電文ファイルや結果ファイルに格納する前のHTTP電文がgzip形式で圧縮されていた場合、HTTP電文を解凍します。解凍したHTTP電文は再圧縮してテスト対象システムに送信します。
フラグメンバcompression_encodingの指定値がnoneの場合、HTTP電文の解凍、および圧縮処理は行いません。
- request_force_encoding
-
フラグメンバrequest_force_encodingの指定値がgzipの場合、テスト対象システムに対する要求を強制的に変更し、テスト対象システムにHTTP要求電文を送信する際、強制的にすべてgzip形式で圧縮して送信します。
指定値がidentityの場合、強制的にすべて非圧縮のままHTTP要求電文を送信します。
指定値がnoneの場合、HTTP要求電文は本番環境と同じ形式になります。
- response_force_encoding
-
フラグメンバresponse_force_encodingの指定値がgzipの場合、テスト対象システムに対する要求を強制的に変更し、テスト対象システムからの応答電文を、すべてgzip形式で圧縮するように要求します。
指定値がidentityの場合、テスト対象システムに対する要求を強制的に変更し、応答電文をすべて非圧縮で送るように要求します。
指定値がnoneの場合、応答電文は本番環境と同じ形式になります。
フラグメンバの指定値と電文の形式との関係を次に示します。
本番環境の要求電文 |
フラグメンバの指定値 |
電文ファイル、および結果ファイルの要求電文 |
テスト環境の要求電文 |
|
---|---|---|---|---|
compression_encoding |
request_force_encoding |
|||
圧縮 |
gzip |
gzip |
非圧縮 |
圧縮 |
identity |
非圧縮 |
|||
none |
圧縮 |
|||
none |
- |
圧縮 |
圧縮 |
|
非圧縮 |
gzip |
gzip |
非圧縮 |
圧縮 |
identity |
非圧縮 |
|||
none |
||||
none |
- |
(凡例)-:該当しません。
本番環境の応答電文 |
フラグメンバの指定値 |
電文ファイル、および結果ファイルの応答電文 |
テスト環境の応答電文 |
|
---|---|---|---|---|
compression_encoding |
response_force_encoding |
|||
圧縮 |
gzip |
gzip |
非圧縮 |
圧縮 |
identity |
非圧縮 |
|||
none |
圧縮 |
|||
none |
- |
圧縮 |
圧縮 |
|
非圧縮 |
gzip |
gzip |
非圧縮 |
圧縮 |
identity |
非圧縮 |
|||
none |
||||
none |
- |
(凡例)-:該当しません。
注意事項
- 最大メッセージサイズについて
-
framework_definition定義の-bオプションのフラグメンバmax_message_sizeの指定値は、テストに使用する電文の非圧縮時のデータの中で、最もメッセージサイズの大きい電文のメッセージサイズを上回る値を設定してください。