4.4.6 動的セッション管理対応のための定義
動的セッション管理に対応するため,可変文字列と代替文字列を指定します。これによって,計測時に可変文字列が代替文字列に置き換えられてリクエストが発行されます。ただし,可変文字列にCookieを指定する場合は,次の点に注意する必要があります。
-
可変文字列にCookieを指定し,代替文字列への置き換えを実施したリクエストの応答でリダイレクトが指示された場合,リダイレクト後のリクエストでCookie情報は置き換えられません。
-
可変文字列にCookieを指定した場合,代替文字列に改行コードを含めないでください。改行コードが含まれた場合,動作は保障されません。
可変文字列と代替文字列の指定について,次に説明します。
- 〈この項の構成〉
(1) 可変文字列の指定
可変文字列には,そのステップに定義されたURL,メッセージボディまたはCookieに指定された文字列内で,動的に変化する部分を指定します。
Web Recorderを使用してWebトランザクションファイルを作成した場合,動的セッション管理の対象となっているサイトの記録を行うと,記録時に使用したセッションIDがWebトランザクションファイルに定義されます。
可変文字列には,次のどちらかを定義します。
-
記録時に使用したセッションIDを明示的に「$VAR1$」などに書き換えてから,可変文字列に「$VAR1$」を指定する(推奨)。
-
記録時に使用したセッションIDを可変文字列に指定する。
(2) 代替文字列の指定
代替文字列とは,リクエスト発行時に可変文字列に代えてリクエスト内に含める文字列です。代替文字列は,次のどれかの方法で取得できます。
-
該当するステップより前のステップで取得したHTMLファイルから取得する
-
該当するステップより前のステップで取得したHTTPヘッダーから取得する
-
任意のコマンドの実行結果を使用する
代替文字列を取得するために実行するコマンドを代替文字列生成コマンドといいます。
取得方法によって,代替文字列の定義内容は次のように異なります。
(a) HTMLファイルから取得する場合
代替文字列の定義には,次のすべての情報が必要です。
-
代替文字列が含まれるHTMLを取得するステップのステップ識別子
-
代替文字列が含まれる要素を特定する情報(要素名,属性,内容の一部など)
-
代替文字列が2.で指定した要素のどこに存在するか(属性か,内容か)
- 重要
-
代替文字列をHTMLファイルから取得する場合の注意事項を次に示します。
-
指定した要素が空要素(<要素名 ・・・/>)ではない場合,その要素の範囲は,次に現れる同じ要素の開始タグ(<要素名>),またはその要素の閉じタグ(</要素名>)のどちらかが現れるまでです。なお,開始タグと閉じタグのどちらも現れなかった場合は,HTMLファイルの終端までです。
-
代替文字列が含まれるHTMLが見つからなかった場合(上記の1.で指定したステップでHTML以外を指定した場合)は,可変文字列はそのままでリクエストが発行されます。
-
代替文字列が含まれる要素が見つからなかった場合は,可変文字列が空文字に置き換えられてリクエストが発行されます。
-
圧縮して送信されたHTMLは,代替文字列の取得対象となりません。
-
(b) HTTPヘッダーから取得する場合
代替文字列の定義には,次のすべての情報が必要です。
-
代替文字列が含まれるHTTPヘッダーを取得するステップのステップ識別子
-
代替文字列が含まれるHTTPヘッダーを特定する情報(ヘッダー名,値の一部)
- 重要
-
代替文字列をHTTPヘッダーから取得する場合の注意事項を次に示します。
-
指定したHTTPヘッダーを特定する情報に該当するヘッダーが複数存在する場合は,先に受信したヘッダーが優先されます。
-
代替文字列が含まれるHTTPヘッダーが見つからなかった場合は,可変文字列は空文字に置き換えられてリクエストが発行されます。
-
(c) 代替文字列生成コマンドから取得する場合
代替文字列の定義には,次のすべての情報が必要です。
-
代替文字列生成コマンドの名称
-
代替文字列生成コマンドに追加する引数
- 重要
-
代替文字列を代替文字列生成コマンドから取得する場合の注意事項を次に示します。
-
代替文字列生成コマンドへの入力について
代替文字列生成コマンドに値を指定するインターフェースとして,引数を指定できます。引数が固定値であれば1.の情報として指定できます。引数が動的に変化する場合は,このステップより前に定義されたステップで取得したHTMLやHTTPヘッダーの内容から切り出せます。
2.で指定した引数は,ダブルクォーテーション(")で囲み,指定した順番で上記の1.の情報に追加します。
なお,代替文字列生成コマンドの標準入力に値を入力するインターフェースはありません。
-
代替文字列生成コマンドの出力について
代替文字列生成コマンドは,標準出力に代替文字列として必要な文字列を出力する必要があります。なお,10,000バイトを超える文字列は出力しないでください。コマンドの実行が終了しない場合があります。出力された文字列の末尾にある1つ以上の改行コードを取り除いた文字列が代替文字列になります。
-
代替文字列生成コマンドの戻り値について
代替文字列生成コマンドの戻り値(終了ステータス)が0以外の場合,代替文字列生成コマンドの実行が失敗したと判断され,可変文字列が空文字に置き換えられてリクエストが発行されます。代替文字列を標準出力に正しく出力できた場合は,戻り値を0にする必要があります。
-
代替文字列生成コマンドは,代替文字列が必要となるたびに実行されます。
-
実行される代替文字列生成コマンドは,「Extensible Service Probe」サービスと同じ権限で実行されます。
-
代替文字列生成コマンドの実行でエラーが発生した場合は,可変文字列が空文字に置き換えられてリクエストが発行されます。
-