7.4.2 Webトランザクション計測条件定義の書式定義内容

<この項の構成>
(1) <TRANSACTION_PARAM>タグ
(2) <STEP>タグ
(3) <STEP>タグ内の<VARIABLE>タグ
(4) 記述例

(1) <TRANSACTION_PARAM>タグ

<TRANSACTION_PARAM>タグでは,Webトランザクションの計測条件に関する設定をします。

(a) 書式

<TRANSACTION_PARAM>
 <TRANSACTION_NAME>Webトランザクション名</TRANSACTION_NAME>
 <TRANSACTION_COMMENT>コメント</TRANSACTION_COMMENT>
 <DEFAULT_CHARSET>文字セット</DEFAULT_CHARSET>
 <HTML_OUT></HTML_OUT>
 <IGNORE_EMBEDDED_RESOURCE></IGNORE_EMBEDDED_RESOURCE>
 <NO_CACHE></NO_CACHE>
 <KEEP_ALIVE></KEEP_ALIVE>
 <DEFAULT_PROXY>
   <PROXY_HOSTNAME>接続先プロキシのホスト名またはIPアドレス</PROXY_HOSTNAME>
   <PROXY_PORT>接続先プロキシのポート番号</PROXY_PORT>
   <PROXY_USERNAME>プロキシ認証に使用するユーザー名</PROXY_USERNAME>
   <PROXY_PASSWORD>プロキシ認証に使用するパスワード</PROXY_PASSWORD>
 </DEFAULT_PROXY>
 <SSL_AUTH_IGNORE></SSL_AUTH_IGNORE>
 <CLIENT_AUTH>
   <CLIENT_CERT_FILE>クライアント証明書ファイル名</CLIENT_CERT_FILE>
   <CLIENT_CERT_PASSWORD>秘密鍵パスワード</CLIENT_CERT_PASSWORD>
 </CLIENT_AUTH>
 <USER_AGENT>ユーザーエージェント名</USER_AGENT>
</TRANSACTION_PARAM>

(b) 定義内容

表7-22 <TRANSACTION_PARAM>の定義内容

XMLタグ必須タグの役割,指定する値
<TRANSACTION_NAME>・・・</TRANSACTION_NAME>
((1~255バイトの文字列))
Webトランザクション名を指定します。一つのWebトランザクションファイルの中で一意の名称を指定します。
なお,Webトランザクション名には,「|(ストローク)」は使用できません。
<TRANSACTION_COMMENT>・・・</TRANSACTION_COMMENT>
((0~255バイトの文字列))
トランザクションにコメントを指定します。
<DEFAULT_CHARSET>・・・</DEFAULT_CHARSET>
((Shift_JIS|EUC-JP|ISO-2022-JP|UTF-8))
《Shift_JIS》
当該トランザクションで取得するHTMLファイルのデフォルト文字セットを指定します。"Shift_JIS","EUC-JP", "ISO-2022-JP","UTF-8"のどれかを指定します。当該トランザクションで<CHARSET>タグを指定していないステップで取得したHTMLの文字セットは,<DEFAULT_CHARSET>タグで指定した文字セットとなります。
<HTML_OUT></HTML_OUT>当該トランザクションで取得したHTMLおよびHTTPヘッダーをファイルに出力する場合に指定します。出力データは,レスポンス判定や可変文字列の定義を行う場合の参考として利用できます。
<STEP>タグ内で<STEP_ID>タグを指定しているステップで取得したデータだけが出力されます。<STEP_ID>タグを指定していないステップで取得したデータは出力されません。また,取得したファイルの属性がHTML以外の場合も出力されません。
データの出力先,ファイル名は次のとおりです。
データの出力先
インストール先フォルダ¥agtv¥probe¥probedata¥webtrans
ファイル名(HTMLの場合)
ステップ識別子.html
ファイル名(HTTPヘッダーの場合)
ステップ識別子.hdr
同一の名前のファイルが存在する場合は,無条件に上書きされます。
なお,出力データには個人情報が含まれることがあるので,<HTML_OUT>タグを指定する場合は,出力データの取り扱いに注意してください。
<IGNORE_EMBEDDED_RESOURCE></IGNORE_EMBEDDED_RESOURCE>取得したページに埋め込まれているリソースを取得しない場合だけ指定するタグです。
<NO_CACHE></NO_CACHE>HTTP(S)のリクエストで,キャッシュを参照しない場合だけ指定します。
<KEEP_ALIVE></KEEP_ALIVE>HTTP(S)のリクエストで,持続的接続を行う場合だけ指定します。
<DEFAULT_PROXY>・・・</DEFAULT_PROXY>プロキシを利用する場合に指定するタグです。<PROXY_HOSTNAME>タグ,<PROXY_PORT>タグ,<PROXY_USERNAME>タグ,および<PROXY_PASSWORD>タグを含みます。当該トランザクション全体のデフォルトのプロキシ設定を行う場合に指定します。省略する場合は,<DEFAULT_PROXY>タグとそれに含まれるタグの記述を省略します。
<PROXY_HOSTNAME>・・・</PROXY_HOSTNAME>
((1~255バイトの文字列))
※1デフォルトのプロキシサーバのホスト名またはIPアドレスを指定します。
<PROXY_PORT>・・・</PROXY_PORT>
((1~65535))
※1デフォルトのプロキシサーバのポート番号を指定します。
<PROXY_USERNAME>・・・</PROXY_USERNAME>
((1~64バイトの文字列))
※2デフォルトのプロキシサーバでプロキシ認証をする場合のユーザー名を指定します。
省略した場合は,プロキシ認証をしないことを示します。
<PROXY_PASSWORD>・・・</PROXY_PASSWORD>
((0~64バイトの文字列))
※3デフォルトのプロキシサーバでプロキシ認証をする場合のパスワードを指定します。
0バイトの文字列を指定した場合は,空白文字列をパスワードとして使用することを意味します。タグ自体を省略した場合は,パスワードユーティリティで設定したパスワードを使用することを意味します。
<SSL_AUTH_IGNORE></SSL_AUTH_IGNORE>HTTPSのリクエスト発行時にSSLのサーバ認証で失敗しても,そのまま計測を続行する場合に指定します。SSLのサーバ認証で失敗した場合に計測を終了させる場合は,このタグを省略します。省略する場合は,タグの記述自体を省略します。
<CLIENT_AUTH>・・・</CLIENT_AUTH>HTTPSのリクエスト発行時にクライアント認証をする場合に指定します。<CLIENT_CERT_FILE>タグ,および<CLIENT_CERT_PASSWORD>タグを使用し,クライアント認証に関する設定をします。省略する場合は,<CLIENT_AUTH>タグとそれに含まれるタグの記述を省略します。
<CLIENT_CERT_FILE>・・・</CLIENT_CERT_FILE>
((1~255バイトの文字列))
※4クライアント証明書と秘密鍵を格納したファイルを指定します。インストール先フォルダ¥agtv¥probe¥cert配下に格納したファイルのファイル名を指定します。パスは含めません。ファイルは,Base64エンコードのX.506形式に変換しておく必要があります。
<CLIENT_CERT_PASSWORD>・・・</CLIENT_CERT_PASSWORD>
((0~1,023バイトの文字列))
※5クライアント認証をする場合の,クライアント証明書の秘密鍵のパスワードを指定します。この項目を指定する場合は,パスワードユーティリティでパスワードを登録しておくことを推奨します。
なお,0バイトの文字列を指定した場合は,空白文字列をパスワードとして使用することを意味します。タグ自体を省略した場合は,パスワードユーティリティで設定したパスワードを使用することを意味します。
<USER_AGENT>・・・</USER_AGENT>((1~255バイトの文字列))《PFM - Agent for Service Response (Windows)》ユーザーエージェント名を指定します。アクセスできるユーザーエージェント名が限定されているような場合に指定します。
(凡例)
○:必須項目
-:オプション項目
注※1
プロキシを利用する場合は必須項目。
注※2
プロキシでプロキシ認証をする場合は必須項目。
注※3
プロキシ認証をする場合で,かつパスワードユーティリティでパスワードを登録していない場合は必須項目。
注※4
クライアント認証をする場合は必須項目。
注※5
クライアント認証をする場合で,かつパスワードユーティリティでパスワードを登録していない場合は必須項目。

(2) <STEP>タグ

<STEP>タグでは,Webトランザクションのステップ情報を設定します。

(a) 書式

<STEP>
 <STEP_ID>ステップ識別子</STEP_ID>
 <TITLE>ページのタイトル</TITLE>
 <FRAME_NAME>フレーム名</FRAME_NAME>
 <CHARSET>文字セット</CHARSET>
 <REQUEST>
   <REQUEST_CHARSET>文字セット</REQUEST_CHARSET>
   <URL>アクセス先URL</URL>
   <POST>
     <CONTENT_TYPE>

     メッセージボディをapplication/x-www-form-urlencodedとして通知する場合
       <FORM_URLENCODED></FORM_URLENCODED>

     メッセージボディをtext/plainとして通知する場合
       <TEXT_PLAIN></TEXT_PLAIN>

     メッセージボディをmultipart/form-dataとして通知する場合
       <MULTIPART_FORM_DATA>
         <BOUNDARY>メッセージボディのセパレータ</BOUNDARY>
       </MULTIPART_FORM_DATA>

     メッセージボディを上記以外として通知する場合
       <OTHER>Content-Type</OTHER>

     </CONTENT_TYPE>
     <MESSAGE_BODY>メッセージボディ</MESSAGE_BODY>
   </POST>
   <COOKIE>Cookieヘッダー</COOKIE>
 </REQUEST>
 <WEB_AUTH>
   <WEB_USERNAME>Web認証で用いるユーザー名</WEB_USERNAME>
   <WEB_PASSWORD>Web認証で用いるパスワード</WEB_PASSWORD>
 </WEB_AUTH>
 <PROXY>

 プロキシを使用しない場合
   <PROXY_NOUSE></PROXY_NOUSE>

 デフォルトプロキシ以外のプロキシを使用する場合
   <PROXY_HOSTNAME>接続先プロキシのホスト名またはIPアドレス</PROXY_HOSTNAME>
   <PROXY_PORT>接続先プロキシのポート番号</PROXY_PORT>
   <PROXY_USERNAME>プロキシ認証に用いられるユーザー名</PROXY_USERNAME>
   <PROXY_PASSWORD>プロキシ認証に用いられるパスワード</PROXY_PASSWORD>

 </PROXY>
 <RESPONSE_PATTERN>レスポンス判定に用いる条件</RESPONSE_PATTERN>
 <VARIABLE>
   <!--VARIABLE -->
 </VARIABLE>
 <START_SCOPE>起点のスコープ名</START_SCOPE>
 ・・・
 <END_SCOPE>終点のスコープ名</END_SCOPE>
 ・・・
</STEP>

(b) 定義内容

表7-23 <STEP>の定義内容

XMLタグ必須タグの役割,指定する値
<STEP_ID>・・・</STEP_ID>
((1~255バイトの英数字およびハイフン・アンダースコア・半角スペース))
ステップを一意に識別するためのステップ識別子を定義します。ステップで取得するHTML内に,以降のステップのURLやメッセージボディの可変文字列に対する代替文字列が含まれている場合,またはHTMLをファイルに出力する場合に本ステップで取得するHTMLを出力対象にしたい場合は,指定する必要があります。
なお,HTMLをファイルに出力する場合,出力するファイル名に使用するため,定義されているすべてのトランザクションで一意となるように指定してください。
<TITLE>・・・</TITLE>
((0~1,023バイトの文字列))
当該ステップで取得したページのタイトルを定義します。
<FRAME_NAME>・・・</FRAME_NAME>
((0~1,023バイトの文字列))
当該ステップで取得したページのフレーム名を定義します。
<CHARSET>・・・</CHARSET>
((Shift_JIS|EUC-JP|ISO-2022-JP|UTF-8))
当該ステップで取得するHTMLファイルの文字セットを指定します。"Shift_JIS","EUC-JP","ISO-2022-JP","UTF-8"のどれかを指定します。省略した場合,当該トランザクションのデフォルトの文字セットが適用されます。文字セットが正しく指定されていない場合,代替文字列の検索やレスポンス判定に失敗する場合があります。
<REQUEST>・・・</REQUEST>当該ステップのリクエストに関する設定をします。<REQUEST_CHARSET>タグ,<URL>タグ,<POST>タグ,および<COOKIE>タグを使用して設定します。
<REQUEST_CHARSET>・・・</REQUEST_CHARSET>
((Shift_JIS|EUC-JP|ISO-2022-JP|UTF-8))
<<Shift_JIS>>
当該ステップで送信するリクエスト情報(URL,メッセージボディ,Cookie)の文字セットを指定します。"Shift_JIS","EUC-JP","ISO-2022-JP","UTF-8"のどれかを指定します。
リクエスト情報は,XML宣言文で指定するWebトランザクションファイルのエンコード種類とは関係なく,このタグで指定した文字セットにエンコードされて送信されます。リクエスト情報がすべてASCIIコードで定義されていれば,指定は不要です。タグ自体を省略した場合は,リクエスト情報がShift_JISにエンコードされて送信されます。
ただし,ISO-2022-JPを指定した場合,この<STEP>タグ内の<URL>タグにマルチバイト文字を含めないでください。また,可変文字列は定義できません。
<URL>・・・</URL>
((1~2,083バイトの文字列))
当該ステップで取得するURLを指定します。プロトコル識別子(http://,https://)も含めて指定します。
<POST>・・・</POST>POSTメソッドを使用する場合に指定するタグです。<CONTENT_TYPE>タグ,および<MESSAGE_BODY>タグを使用し,POSTメソッドを使用する場合の設定をします。省略した場合は,GETメソッドを使用します。
<CONTENT_TYPE>・・・</CONTENT_TYPE>※1POSTメソッドを使用する場合のContent-Typeを指定します。要素には,<FORM_URLENCODED>タグ,<TEXT_PLAIN>タグ,<MULTIPART_FORM_DATA>タグ,および<OTHER>タグのうちのどれかを指定します。
<FORM_URLENCODED></FORM_URLENCODED>※2POSTメソッドを使用する際,メッセージボディを「application/x-www-form-urlencoded」として通知する場合に指定します。
<TEXT_PLAIN></TEXT_PLAIN>※2POSTメソッドを使用する際,メッセージボディを「text/plain」として通知する場合に指定します。
<MULTIPART_FORM_DATA>・・・</MULTIPART_FORM_DATA>※2POSTメソッドを使用する際,メッセージボディを「multipart/form-data」として通知する場合に指定します。指定した場合は,<BOUNDARY>タグを使用してメッセージボディのセパレータを指定する必要があります。
<BOUNDARY>・・・</BOUNDARY>
((1~255バイトの文字列))
※3「multipart/form-data」として通知するメッセージボディのセパレータを指定します。
<OTHER>・・・</OTHER>
((1~255バイトの文字列))
※2POSTメソッドで通知するメッセージボディのContent-Typeが「application/x-www-form-urlencoded」,「text/plain」,「multipart/form-data」以外の場合に,任意のContent-Typeを指定します。
<MESSAGE_BODY>・・・</MESSAGE_BODY>
((0~512,000バイトの文字列))
※1POSTメソッドで通知するメッセージボディを指定します。
<COOKIE>・・・</COOKIE>
((0~1,023バイトの文字列))
当該ステップのリクエストに特定のCookieを設定したい場合に指定します。通常は,指定する必要はありません。
「変数名=値」の形式で指定します。なお,複数のCookieを定義する場合は,<COOKIE>タグを複数指定します。最大8個定義できます。
<WEB_AUTH>・・・</WEB_AUTH>当該ステップの取得でWeb認証をする場合に指定します。<WEB_USERNAME>タグ,および<WEB_PASSWORD>タグを使用し,Web認証に関する設定をします。省略する場合は,<WEB_AUTH>タグとそれに含まれるタグの記述を省略します。
<WEB_USERNAME>・・・</WEB_USERNAME>
((1~64バイトの文字列))
※4Web認証をする場合のユーザー名を指定します。
<WEB_PASSWORD>・・・</WEB_PASSWORD>
((0~64バイトの文字列))
※5Web認証をする場合のパスワードを指定します。
0バイトの文字列を指定した場合は,空白文字列をパスワードとして使用することを意味します。タグ自体を省略した場合は,パスワードユーティリティで設定したパスワードを使用することを意味します。
<PROXY>・・・</PROXY>当該ステップで使用するプロキシ設定をする場合に指定します。<PROXY_NOUSE>タグで構成される場合と,<PROXY_HOSTNAME>タグ,<PROXY_PORT>タグ,<PROXY_USERNAME>タグ,および<PROXY_PASSWORD>タグで構成される場合の二とおりがあります。省略した場合は,トランザクションのデフォルトのプロキシ定義を使用します。省略する場合は,<PROXY>タグとそれに含まれるタグの記述を省略します。
<PROXY_NOUSE></PROXY_NOUSE>当該ステップの計測で,プロキシを利用しない場合だけ指定します。
<PROXY_HOSTNAME>・・・</PROXY_HOSTNAME>
((1~255バイトの文字列))
※6,※7当該ステップの計測で,デフォルトのプロキシ以外のプロキシを使用する場合は,プロキシサーバのホスト名またはIPアドレスを指定します。
<PROXY_PORT>・・・</PROXY_PORT>
((1~65535))
※6,※7当該ステップの計測で使用するプロキシサーバのポート番号を指定します。
<PROXY_USERNAME>・・・</PROXY_USERNAME>
((1~64バイトの文字列))
※8当該ステップの計測で使用するプロキシサーバでプロキシ認証をする場合のユーザー名を指定します。
省略した場合は,プロキシ認証をしないことを示します。
<PROXY_PASSWORD>・・・</PROXY_PASSWORD>
((0~64バイトの文字列))
※9当該ステップの計測で使用するプロキシサーバでプロキシ認証をする場合のパスワードを指定します。パスワードユーティリティで事前にパスワードを登録している場合,指定する必要はありません。
0バイトの文字列を指定した場合は,空白文字列をパスワードとして使用することを意味します。タグ自体を省略した場合は,パスワードユーティリティで設定したパスワードを使用することを意味します。
<RESPONSE_PATTERN>・・・</RESPONSE_PATTERN>
((0~1,023バイトの文字列))
当該ステップのレスポンス判定に使用する条件を,次の規則に従って指定します。
  • 演算子には「*(AND)」「+(OR)」を使用できる。
  • 含んでもよい文字列は「{」と「}」で囲む。
  • 含んではいけない文字列は「!{」と「}」で囲む。
  • 「( )(丸括弧)」で囲み,優先順位を明示できる。
  • 「*(AND)」と「+(OR)」では,「*(AND)」が優先される。
  • 優先順位を明示する「( )(丸括弧)」内には,演算子を一つ以上含める必要がある。
  • 優先順位を明示する「(」は続けて指定できない。
  • 優先順位を明示する「( )(丸括弧)」内の条件を満たさない条件を定義する場合は,次のように定義する。
    例1:({aaa}*{bbb})を満たさない条件の場合
    (!{aaa}+!{bbb})
    例2:({aaa}+{bbb})を満たさない条件の場合
    (!{aaa}*!{bbb})
記述例:
「Success」を含みかつ「Error」を含まない場合
{Success}*!{Error}
<VARIABLE>・・・</VARIABLE>当該ステップに可変文字列を設定する場合,可変文字列に関する設定をします。次に示すタグを使用して指定します。
  • <VARIABLE_TARGET>タグ
  • <SUBSTITUTE_TARGET>タグまたは<SUBSTITUTE_COMMAND>タグ
  • <SUBSTITUTE_FORCE_URLENCODE>タグ
複数の可変文字列を定義する場合,複数の<VARIABLE>タグで指定します。省略する場合は,<VARIABLE>タグおよび配下のタグの記述を省略します。省略した場合は,このステップに可変文字列は設定されません。
<VARIABLE>タグの詳細については,「(3) <STEP>タグ内の<VARIABLE>タグ」を参照してください。
<START_SCOPE>・・・</START_SCOPE>起点となるスコープ名を指定します。スコープ名には,「SCOPE1」,「SCOPE2」,「SCOPE3」,「SCOPE4」,「SCOPE5」,「SCOPE6」,「SCOPE7」,「SCOPE8」のうちのどれかを指定します。起点となるスコープを複数指定する場合は,<START_SCOPE>タグを複数記述します。
<END_SCOPE>・・・</END_SCOPE>終点となるスコープ名を指定します。スコープ名には,「SCOPE1」,「SCOPE2」,「SCOPE3」,「SCOPE4」,「SCOPE5」,「SCOPE6」,「SCOPE7」,および「SCOPE8」のうちのどれかを指定します。終点となるスコープを複数指定する場合は,<END_SCOPE>タグを複数記述します。
(凡例)
○:必須項目
-:オプション項目
注※1
POSTメソッドを使用する場合は必須項目。
注※2
POSTメソッドを使用する場合は,<FORM_URLENCODED>タグ,<TEXT_PLAIN>タグ,<MULTIPART_FORM_DATA>タグ,および<OTHER>タグのうちのどれか指定する。
注※3
<MULTIPART_FORM_DATA>タグを指定した場合は必須項目。
注※4
Web認証をする場合は必須項目。
注※5
Web認証をする場合で,かつパスワードユーティリティでパスワードを登録していない場合は必須項目。
注※6
<PROXY_NOUSE>タグを指定した場合は指定できない。
注※7
デフォルトのプロキシは使用しないで,特定のプロキシを使用する場合は必須項目。
注※8
デフォルトのプロキシを使用しないで,プロキシ認証をする場合は必須項目。
注※9
デフォルトのプロキシを使用しないでプロキシ認証をする場合で,かつパスワードユーティリティでパスワードを登録していない場合は必須項目。

(3) <STEP>タグ内の<VARIABLE>タグ

<VARIABLE>タグは,Webトランザクションのステップ情報で可変文字列および代替文字列を設定します。代替文字列は,<VARIABLE>タグ内の<SUBSTITUTE_TARGET>タグで指定します。

(a) 書式

<VARIABLE>タグの書式

<VARIABLE>
 <VARIABLE_TARGET>
   <VARIABLE_TYPE>可変文字列が含まれる個所</VARIABLE_TYPE>
   <VARIABLE_PART>可変文字列となる部分</VARIABLE_PART>
 </VARIABLE_TARGET>

受信したデータに代替文字列が含まれる場合
 <SUBSTITUTE_TARGET>
   <!-- SUBSTITUTE_TARGET -->
 </SUBSTITUTE_TARGET>

コマンドを実行して代替文字列を取得する場合
 <SUBSTITUTE_COMMAND>
   <TARGET_COMMAND_LINE>実行するコマンドライン</TARGET_COMMAND_LINE>
   <TARGET_COMMAND_ARG>
     <SUBSTITUTE_TARGET>
       <!-- SUBSTITUTE_TARGET -->
     </SUBSTITUTE_TARGET>
   </TARGET_COMMAND_ARG>
   …
 </SUBSTITUTE_COMMAND>

 <SUBSTITUTE_FORCE_URLENCODE></SUBSTITUTE_FORCE_URLENCODE>

</VARIABLE>

<SUBSTITUTE_TARGET>タグの書式

<SUBSTITUTE_TARGET>
 <TARGET_STEP_ID>ステップの指定</TARGET_STEP_ID>

取得したHTMLに代替文字列が含まれている場合
 <TARGET_ELEMENT>
   <TARGET_ELEMENT_NAME>
     代替文字列を含む要素の要素名
   </TARGET_ELEMENT_NAME>
   <TARGET_ELEMENT_ATTRIBUTE>
     代替文字列を含む要素の属性
   </TARGET_ELEMENT_ATTRIBUTE>
   …
   <TARGET_ELEMENT_CONTENT>
     代替文字列を含む要素の内容に含まれる文字列
   </TARGET_ELEMENT_CONTENT>
   …
   <TARGET_ELEMENT_POSITION>
     上記の条件に合致する要素が複数ある場合,先頭から数えて何番目の要素か
   </TARGET_ELEMENT_POSITION>
 </TARGET_ELEMENT>

 <SUBSTITUTE_TYPE>

 代替文字列が要素の内容に含まれている場合
   <TYPE_CONTENT></TYPE_CONTENT>

 代替文字列が要素の属性値に含まれている場合
   <TYPE_ATTRIBUTE>代替文字列が含まれる属性の属性名</TYPE_ATTRIBUTE>

 </SUBSTITUTE_TYPE>

代替文字列が取得したHTTPヘッダーに含まれている場合
 <TARGET_HEADER>
   <TARGET_HEADER_NAME>
     代替文字列を含むヘッダーの名称
   </TARGET_HEADER_NAME>
   <TARGET_HEADER_VALUE>
     代替文字列を含むヘッダーの値
   </TARGET_HEADER_VALUE>
 </TARGET_HEADER>
 <SUBSTITUTE_RANGE>
   <BEFORE_RANGE>代替文字列の直前の文字列</BEFORE_RANGE>
   <AFTER_RANGE>代替文字列の直後の文字列</AFTER_RANGE>
 </SUBSTITUTE_RANGE>
</SUBSTITUTE_TARGET>

(b) 定義内容

表7-24 <VARIABLE>の定義内容

XMLタグ必須タグの役割,指定する値
<VARIABLE_TARGET>・・・</VARIABLE_TARGET>可変文字列を指定するタグです。<VARIABLE_TYPE>タグ,<VARIABLE_PART>タグを含みます。
このタグで指定する可変文字列は,当該ステップで定義されているほかの<VARIABLE>タグに含まれる<VARIABLE_TARGET>タグで指定する可変文字列と一部でも重複できません。
<VARIABLE_TYPE>・・・</VARIABLE_TYPE>
((URL | MESSAGE_BODY | COOKIE))
可変文字列が含まれる個所を"URL","MESSAGE_BODY"または"COOKIE"のどれかで指定します。
<VARIABLE_PART>・・・</VARIABLE_PART>
((1 ~ 4095バイトの文字列))
可変文字列となる部分を指定します。<VARIABLE_TYPE>タグで指定した個所内の,記録時の可変文字列を指定します。指定した文字列が複数存在する場合,先頭から検索して初めに一致した文字列だけを記録時の可変文字列として指定したことになります。
例えば,動的セッション管理を行っており,記録時のセッションID(可変文字列)が「0123456789」で,記録したURLが,「http://www.jp1.hitachi.co.jp/sample.cgi?id=0000&sessionid=0123456789」となるとき,<VARIABLE_PART>タグには「0123456789」を指定します。
次の場合は,記録されているURLやメッセージボディの可変文字列部分を「$VAR1$」,「$VAR2$」などに変更し,可変文字列として定義することをお勧めします。
  • 複数の文字列を同様に置き換えたい場合
  • 可変文字列がマルチバイト文字の場合
  • 同じ<STEP>タグ内で,<REQUEST_CHARSET>タグにShift_JIS以外を定義する場合
    この場合,<VARIABLE_PART>タグにマルチバイト文字を指定すると,可変文字列が正しく認識されないことがあります。
<SUBSTITUTE_TARGET>・・・</SUBSTITUTE_TARGET>※1代替文字列を指定するタグです。<TARGET_STEP_ID>タグ,<TARGET_ELEMENT>タグ,<SUBSTITUTE_TYPE>タグ,<TARGET_HEADER>タグおよび<SUBSTITUTE_RANGE>タグを含みます。詳細については,「表7-25 <SUBSTITUTE_TARGET>の定義内容」を参照してください。
<SUBSTITUTE_COMMAND>・・・</SUBSTITUTE_COMMAND>※1コマンドを実行して代替文字列を取得する場合に指定するタグです。<TARGET_COMMAND_LINE>タグ,<TARGET_COMMAND_ARG>タグを含みます。
<TARGET_COMMAND_LINE>・・・</TARGET_COMMAND_LINE>
((1バイト以上の文字列))
※2代替文字列を取得するために実行するコマンドラインを指定するタグです。実行するコマンド,および動的に変化しない引数を指定できます。
コマンドの実行に成功した場合の戻り値(終了コード)は0である必要があります。戻り値(終了コード)が0以外の場合は,コマンドが異常終了したと判断されます。コマンドが異常終了した場合,またはコマンドの実行に失敗した場合は,<VARIABLE_PART>タグで指定した可変文字列は空文字に置き換えられます。
<TARGET_COMMAND_ARG>・・・</TARGET_COMMAND_ARG><TARGET_COMMAND_LINE>タグで指定したコマンドラインに,引数を追加する場合に指定するタグです。<SUBSTITUTE_TARGET>タグを含みます。
追加する引数は,<SUBSTITUTE_TARGET>タグを使用し,受信したデータから切り出したものを使用します。切り出した文字列は,ダブルクォーテーション(")で囲まれ,引数としてコマンドラインに追加されます。
引数を複数追加する場合は,<TARGET_COMMAND_ARG>タグを複数指定してください。
<SUBSTITUTE_FORCE_URLENCODE></SUBSTITUTE_FORCE_URLENCODE>代替文字列を可変文字列と置き換える場合で,URLで区切り文字として扱われる文字を含めたすべての文字に対して,URLエンコードするときに指定します。このタグを指定した場合,次のようにURLエンコードされます。
英数字,「*」,「-」,「.」,「@」,「_」
変換されません。
半角スペース
変換されません。
上記以外の文字列
1バイトごとに「%xy」の3文字の文字列に変換されます(x,yはそれぞれ4ビットを16進数で表現した値)。
(凡例)
○:<VARIABLE>タグを指定した場合の必須項目
-:<VARIABLE>タグを指定した場合のオプション項目
注※1
<SUBSTITUTE_TARGET>タグまたは<SUBSTITUTE_COMMAND>タグのどちらか一つを指定します。
注※2
<SUBSTITUTE_COMMAND>タグを指定した場合,必ず指定します。

表7-25 <SUBSTITUTE_TARGET>の定義内容

XMLタグ必須タグの役割,指定する値
<TARGET_STEP_ID>・・・</TARGET_STEP_ID>
((1~255バイトの英数字およびハイフン・アンダースコア・半角スペース))
代替文字列が含まれるHTMLファイルを取得するステップのステップ識別子を指定します。本ステップより前のステップで定義されているステップ識別子を指定する必要があります。
<TARGET_ELEMENT>・・・</TARGET_ELEMENT>※1<TARGET_STEP_ID>タグで指定したステップが取得するHTMLファイル内の,代替文字列が含まれる要素を特定します。<TARGET_ELEMENT_NAME>タグ,<TARGET_ELEMENT_ATTRIBUTE>タグ,<TARGET_ELEMENT_CONTENT>タグ,<TARGET_ELEMENT_POSITION>タグを含みます。
<TARGET_ELEMENT_NAME>タグで要素を特定できない場合,<TARGET_ELEMENT_ATTRIBUTE>タグ,<TARGET_ELEMENT_CONTENT>タグ,<TARGET_ELEMENT_POSITION>タグのすべて,または一部を指定して,代替文字列が含まれる要素を特定できるように指定する必要があります。
<TARGET_ELEMENT_NAME>・・・</TARGET_ELEMENT_NAME>
((1~1023バイトの文字列))
※2代替文字列が含まれる要素の要素名を指定します。大文字・小文字は区別されません。なお,指定された要素名のHTMLの要素としての妥当性検証は行いません。指定された文字列を要素名として扱います。
例えば,INPUT要素(<INPUT … />)を指定する場合,<TARGET_ELEMENT_NAME>タグには「INPUT」を指定します。
<TARGET_ELEMENT_ATTRIBUTE>・・・</TARGET_ELEMENT_ATTRIBUTE>
((1~1023バイトの文字列))
代替文字列が含まれる要素の属性を一つ指定します。
<TARGET_ELEMENT_NAME>タグで指定した要素が複数存在する場合など,<TARGET_ELEMENT_NAME>タグの指定だけでは要素を特定できない場合,要素の属性を指定することで要素の特定または絞り込みができるときに指定します。動的に変化する属性は指定しないでください。なお,指定された属性名および属性値の妥当性検証は行いません。
「属性名=属性値」の形式で指定します。「属性名」の部分については,大文字・小文字は区別しません。「属性値」の部分は,大文字・小文字を区別します。複数の属性を指定する場合は,<TARGET_ELEMENT_ATTRIBUTE>タグを複数指定してください。
<TARGET_ELEMENT_CONTENT>・・・</TARGET_ELEMENT_CONTENT>
((1~1023バイトの文字列))
代替文字列が含まれる要素の内容に含まれる文字列を指定します。
<TARGET_ELEMENT_NAME>タグで指定した要素が複数存在する場合など,<TARGET_ELEMENT_NAME>タグの指定だけでは要素を特定できない場合,要素の内容を指定することで要素の特定または絞り込みができるときに指定します。動的に変化する要素の内容は指定しないでください。
要素の内容に含まれる文字列を複数指定する場合は,<TARGET_ELEMENT_CONTENT>タグを複数指定してください。
<TARGET_ELEMENT_POSITION>・・・</TARGET_ELEMENT_POSITION>
((1~1023)) <<1>>
<TARGET_ELEMENT_NAME>タグ,<TARGET_ELEMENT_ATTRIBUTE>タグ,<TARGET_ELEMENT_CONTENT>タグのすべて,または一部で指定した条件を満たす要素が複数存在する場合,先頭から数えて何番目の要素に代替文字列が含まれるかを指定します。
<SUBSTITUTE_TYPE>・・・</SUBSTITUTE_TYPE>※2代替文字列が含まれる個所を指定します。<TYPE_CONTENT>タグまたは<TYPE_ATTRIBUTE>タグのどちらかを指定します。
<TYPE_CONTENT></TYPE_CONTENT>※3代替文字列が要素の内容に含まれる場合に指定します。
<TYPE_ATTRIBUTE>・・・</TYPE_ATTRIBUTE>
((1~1023バイトの文字列))
※3代替文字列が要素の属性値に含まれる場合にその属性名を指定します。"="は指定できません。また,指定した属性名の大文字・小文字は区別しません。
<TARGET_HEADER>・・・</TARGET_HEADER>※1<TARGET_STEP_ID>タグで指定したステップで応答されたHTTPヘッダー内の,代替文字列が含まれる要素を特定するためのタグです。<TARGET_HEADER_NAME>タグおよび<TARGET_HEADER_VALUE>タグを含みます。
<TARGET_HEADER_NAME>タグでヘッダーを特定できない場合,<TARGET_HEADER_VALUE>タグを指定して,代替文字列が含まれるヘッダーを特定できるように指定してください。
<TARGET_HEADER_NAME>タグと<TARGET_HEADER_VALUE>タグを指定しても,ヘッダーが特定できなかった場合は,そのうちの最初に受信したヘッダーが指定されたヘッダーとして扱われます。
<TARGET_HEADER_NAME>・・・</TARGET_HEADER_NAME>
((1バイト以上の文字列))
※4代替文字列が含まれるヘッダー名を指定するタグです。大文字・小文字は区別しません。なお,指定されたヘッダー名のHTTPヘッダーとしての妥当性検証は行いません。指定された文字列はヘッダー名として扱われます。指定されたヘッダー名と完全に一致するヘッダーが,受信したHTTPヘッダーから検索されます。
例えば,Set-Cookieヘッダー(Set-Cookie:・・・)を指定する場合,<TARGET_HEADER_NAME>タグには「Set-Cookie」を指定します。
<TARGET_HEADER_VALUE>・・・</TARGET_HEADER_VALUE>
((1バイト以上の文字列))
代替文字列が含まれるヘッダーの値に部分一致する文字列を指定します。
<TARGET_HEADER_NAME>タグで指定したヘッダーが複数存在する場合など,<TARGET_HEADER_NAME>タグの指定だけではヘッダーを特定できない場合,ヘッダーの値を指定することでヘッダーの特定または絞り込みができるときに指定します。動的に変化するヘッダーの値は指定しないでください。
<SUBSTITUTE_RANGE>・・・</SUBSTITUTE_RANGE><SUBSTITUTE_TYPE>タグで指定した個所の一部だけ代替文字列として扱う場合に指定します。<BEFORE_RANGE>タグ,<AFTER_RANGE>タグを含みます。省略する場合は,<SUBSTITUTE_RANGE>タグと配下のタグの記述を省略します。省略した場合は,<SUBSTITUTE_TYPE>タグで指定した個所のすべてを指定したことになります。
<BEFORE_RANGE>・・・</BEFORE_RANGE>
((1~255バイトの文字列))
※5<SUBSTITUTE_TYPE>タグで指定した個所内の先頭部分を代替文字列として扱わない場合に指定します。代替文字列の直前(代替文字列は含まない)の文字列を指定します。なお,<SUBSTITUTE_TYPE>タグで指定した個所内に指定した文字列と同じ文字列が複数存在する場合,先頭から検索して初めに現れた文字列を指定したことになります。省略した場合,または指定した文字列が存在しなかった場合は,<SUBSTITUTE_TYPE>タグで指定した個所の先頭から代替文字列として扱います。
<SUBSTITUTE_TYPE>タグで<TYPE_ATTRIBUTE>タグを指定した場合は,属性値の範囲を示す「"」や「'」は指定できません。
<AFTER_RANGE>・・・</AFTER_RANGE>
((1~255バイトの文字列))
※5<SUBSTITUTE_TYPE>タグで指定した個所内の末尾部分を代替文字列として扱わない場合に指定します。代替文字列の直後(代替文字列は含まない)の文字列を指定します。なお,<SUBSTITUTE_TYPE>タグで指定した個所内に指定する文字列と同じ文字列が複数存在する場合,<BEFORE_RANGE>タグで指定した文字列の終わりから検索して初めに現れた文字列を指定したことになります。省略した場合,または指定した文字列が存在しなかった場合は,<SUBSTITUTE_TYPE>タグで指定した個所の末尾までを代替文字列として扱います。
<SUBSTITUTE_TYPE>タグで<TYPE_ATTRIBUTE>タグを指定した場合は,属性値の範囲を示す「"」や「'」は指定できません。
(凡例)
○:<SUBSTITUTE_TARGET>タグを指定した場合の必須項目
-:<SUBSTITUTE_TARGET>タグを指定した場合のオプション項目
注※1
<TARGET_ELEMENT>タグまたは<TARGET_HEADER>タグのどちらか一つを指定します。
注※2
<TARGET_ELEMENT>タグを指定した場合,必ず指定します。
注※3
<TYPE_CONTENT>タグまたは<TYPE_ATTRIBUTE>タグのどちらかを指定します。
注※4
<TARGET_HEADER>タグを指定した場合,必ず指定します。
注※5
<SUBSTITUTE_RANGE>タグを指定した場合,どちらかまたは両方を指定する必要があります。

(4) 記述例

Webトランザクションファイルの記述例を次に示します。

<?xml version="1.0" encoding="Shift_JIS" standalone="no"?>
<!DOCTYPE TRANSACTION_LIST SYSTEM "espwebtrans.dtd">
<TRANSACTION_LIST>
<TRANSACTION>
 <TRANSACTION_PARAM>
   <TRANSACTION_NAME>メールシステムのトランザクション
   </TRANSACTION_NAME>
   <IGNORE_EMBEDDED_RESOURCE></IGNORE_EMBEDDED_RESOURCE>
   <NO_CACHE></NO_CACHE>
   <KEEP_ALIVE></KEEP_ALIVE>
 </TRANSACTION_PARAM>

 <STEP>
   <TITLE>ログイン画面</TITLE>
   <REQUEST>
     <URL>http://www.xxx.co.jp/login.jsp</URL>
   </REQUEST>
   <START_SCOPE>SCOPE1</START_SCOPE>
 </STEP>

 <STEP>
   <FRAME_NAME>subframe</FRAME_NAME>
   <REQUEST>
     <URL>http://www.xxx.co.jp/subframe.html</URL>
   </REQUEST>
   <END_SCOPE>SCOPE1</END_SCOPE>
 </STEP>

 <STEP>
   <TITLE>ログイン成功画面</TITLE>
   <REQUEST>
     <URL>http://www.xxx.co.jp/login_exec.jsp</URL>
     <POST>
       <CONTENT_TYPE>
         <FORM_URLENCODED></FORM_URLENCODED>
       </CONTENT_TYPE>
       <MESSAGE_BODY>login_name=hoge&amp;password=hogehoge
       </MESSAGE_BODY>
     </POST>
   </REQUEST>
   <RESPONSE_PATTERN>{ログイン成功}*(!{失敗}*!{エラー})
   </RESPONSE_PATTERN>
 </STEP>

</TRANSACTION>
</TRANSACTION_LIST>