jpcvtest(計測テストを実行する)
- 〈このページの構成〉
形式
- 形式1
-
jpcvtest -wtfile Webトランザクションファイル名 -wtname Webトランザクション名 [ -t タイムアウト時間(秒) ] [-s] [-v]
- 形式2
-
jpcvtest -n 計測条件ID [-s] [-v]
機能
jpcvtestコマンドの形式ごとに機能および利用ケースを説明します。計測テストの利用ケースの詳細については,「2.1.3 Webトランザクションの計測テスト」を参照してください。
- 形式1
-
引数に指定したWebトランザクションとタイムアウト時間に基づき,即時に計測テストを行って,計測結果を標準出力に出力します。
計測テストの対象となるWebトランザクションファイル名およびWebトランザクション名を引数に直接指定します。
この形式は,計測条件登録ファイルに定義されていないWebトランザクションの計測テストを行うときに利用してください。この形式の主な利用ケースを次に示します。
-
製品導入時に作成したWebトランザクションファイルが計測できるかどうかを検証する。
-
本番運用中のため,計測条件登録ファイル登録前に新規に作成したWebトランザクションファイルを事前に確認する。
-
- 形式2
-
引数に指定した計測条件IDのWebトランザクションについて,即時に計測テストを行って,計測結果を標準出力に出力します。
計測テストでは,引数に指定した計測条件IDに関連する定義情報(Webトランザクションファイル名,Webトランザクション名,およびタイムアウト時間)が計測条件登録ファイル(esptask.xml)から読み込まれて実行されます。指定した計測条件IDの計測対象がWebトランザクションでない場合は,計測結果はエラーとなります。なお,この形式はクラスタ環境の待機系では利用できません。
この形式は,計測条件登録ファイルに定義されている既存のWebトランザクションの計測テストを行うときに利用してください。PFM - Agent for Service Responseを用いてWebトランザクションの計測を実運用している環境で,次に示すような場合に利用します。
-
監視対象サーバ側のWebコンテンツやサーバの設定を変更したあとに,計測できるかどうかを検証する。
-
PFM - Agent for Service Responseの定義(Webトランザクションファイルの定義内容,計測条件,パスワードや証明書ファイルの認証情報など)を変更したあとに,計測できるかどうかを検証する。
-
設定や定義の変更はないが,監視対象サーバが稼働しているかどうかを確認する。
なお,この形式を利用する場合には注意事項があります。以降に示す「注意事項」の1.を参照してください。
-
実行権限
Administrators権限
格納先フォルダ
インストール先フォルダ\agtv\probe\bin
引数
-wtfile Webトランザクションファイル名
計測テストの対象となるWebトランザクションファイル名を指定します。
インストール先フォルダ\agtv\probe\webtransに格納されている拡張子が「.xml」のファイルを,拡張子を含めて指定します。パスは含めないでください。大文字・小文字は区別されません。また,空白文字を含む場合には," "で囲んでください。
-wtname Webトランザクション名
計測テストの対象となるWebトランザクション名を指定します。「|(ストローク)」は使用できません。また,空白文字を含む場合には," "で囲んでください。
なお,ここで指定するWebトランザクション名は,次に示す場所で指定した値に相当します。
-
Web Recorderの場合
[Webトランザクションの作成]画面の[新規Webトランザクション名],または[名前を付けて保存]画面の[Webトランザクション名]
-
Webトランザクションファイルの場合
<TRANSACTION_NAME>タグ
-
計測条件登録ファイルの場合
<TRANSACTION_NAME>タグ
-t タイムアウト時間
計測テスト実行時のタイムアウト時間(秒)を1〜3600の範囲で指定します。未指定時はデフォルト値の30が適用されます。
なお,ここで指定するタイムアウト時間は,計測条件登録ファイルの<TIMEOUT>タグの値に相当します。
-n 計測条件ID
計測条件登録ファイルに登録された計測条件IDを指定します。
計測対象がWebトランザクション(WEBTRANS)の計測条件IDだけ指定できます。
-s
スコープ単位の計測結果を出力します。
-v
エラー原因の調査で必要となる情報(HTTPリクエスト,レスポンスヘッダなど,計測結果以外の情報)を出力します。
計測テストでエラーとなった場合の原因調査で使用できます。
注意事項
-
PFM - Agent for Service Responseでは,サービス起動時やリロード時に構文チェックが行われます。計測条件登録ファイルに登録したWebトランザクションファイルに構文不正※があると,サービス起動時やリロード時にExtensible Service Probeサービス(応答性能を計測するためのサービス)を停止するため,プローブによるほかの計測も停止します。
このため,jpcvtestコマンドを形式2で実行するときは構文不正に注意してください。Webトランザクションファイルを新規作成する場合は,計測条件登録ファイルに登録する前に,jpcvtestコマンドを形式1で実行して,事前に確認することをお勧めします。また,既存のWebトランザクションファイルを変更する場合も,サービス起動やリロード前に計測テストで構文不正がないか確認しておくことをお勧めします。
- 注※
-
構文不正には,XMLタグに誤りがある,認証に使用するユーザーの指定があるがパスワードが設定されていない(esppasswdコマンドでパスワードが正しく登録されていない場合も含む),などがあります。
Webトランザクションファイルの書式については,「8.5 Webトランザクションファイル」を参照してください。
-
jpcvtestコマンドは複数同時に実行できません。複数実行した場合,あとから実行されたjpcvtestコマンドの実行結果がエラーとなります。
-
jpcvtestコマンドによるテスト計測とプローブによる計測が競合する場合,jpcvtestコマンドでは競合は抑止されないで,監視対象側の仕様に依存します。例えば,監視対象のWebページに同時アクセスできないといった制約がある場合,計測は失敗します。
-
jpcvtestコマンドの実行前にPFM - Agent for Service Responseの定義内容を変更する場合は,事前に変更前の定義ファイルのバックアップを取得してください。
-
jpcvtestコマンドを形式1で実行した場合,計測条件IDを出力するメッセージが出力されると,計測条件IDは0で表示されます。
戻り値
0 |
正常終了。 |
1 |
コマンド実行時の引数や定義内容に誤りがある。または,継続運用できないメモリー不足などが発生している。 エラーの詳細はメッセージとしても出力される。 |
2 |
コマンド実行による計測テストの結果がエラーとなる。 エラーの例:
エラーの詳細はメッセージとしても出力される。 |
3 |
コマンドが複数同時に実行されている。 |
結果レポート形式
-
形式1でコマンドを実行した場合の結果レポート形式
KAVK08333-I Webトランザクションテストを開始しました。
KAVK08334-I Webトランザクションテストに成功しました。 ResultCode=0
== Test report ==========================
Web Transaction Filename: wtdemo.xml ・・・コマンドの引数で指定したWebトランザクションファイル名
Web Transaction Name: wtdemo1 ・・・コマンドの引数で指定したWebトランザクション名
Service Type ID: 110 ・・・サービスタイプID(110固定)※1
Measurement Start Time: 2014/06/18 19:46:52 ・・・計測開始日時
Measurement End Time: 2014/06/18 19:46:52 ・・・計測終了日時
Result Code: 0 ・・・リザルトコード※2
=========================================
KAVK08336-I Webトランザクションテストを終了しました。
KAVK42005-I コマンドの実行に成功しました。
-
形式2でコマンドを実行した場合の結果レポート形式
KAVK08333-I Webトランザクションテストを開始しました。
KAVK08334-I Webトランザクションテストに成功しました。 ResultCode=0
== Test report ==========================
Measurement Condition ID: 100 ・・・コマンドの引数で指定した計測条件ID
Service Type ID: 110 ・・・サービスタイプID(110固定)※1
Measurement Start Time: 2014/06/18 19:46:52 ・・・計測開始日時
Measurement End Time: 2014/06/18 19:46:52 ・・・計測終了日時
Result Code: 0 ・・・リザルトコード※2
=========================================
KAVK08336-I Webトランザクションテストを終了しました。
KAVK42005-I コマンドの実行に成功しました。
- 注※1
-
サービスタイプIDについては,「表10-12 サービスタイプID」を参照してください。
- 注※2
-
リザルトコードについては,「表10-11 リザルトコード」を参照してください。
使用例1(計測テストを実行する場合)
次のWebトランザクションファイル(wtdemo.xml)の定義を基に,使用例を示します。
<?xml version="1.0" encoding="Shift_JIS" standalone="no"?> <!DOCTYPE TRANSACTION_LIST SYSTEM "espwebtrans.dtd"> <TRANSACTION_LIST> <TRANSACTION> <TRANSACTION_PARAM> <TRANSACTION_NAME>wtdemo1</TRANSACTION_NAME> </TRANSACTION_PARAM> <STEP> <TITLE>Web transaction test command demo page</TITLE> <REQUEST> <URL>http://testmachine1/~test/jp1pfm/SRmemo/wtdemo/wtdemopage1/index.php</URL> </REQUEST> </STEP> <STEP> <TITLE>page1</TITLE> <REQUEST> <URL>http://testmachine1/~test/jp1pfm/SRmemo/wtdemo/wtdemopage1/success.php</URL> </REQUEST> </STEP> <STEP> <TITLE>Web transaction test command demo page</TITLE> <REQUEST> <URL>http://testmachine1/~test/jp1pfm/SRmemo/wtdemo/wtdemopage1/index.php</URL> </REQUEST> </STEP> </TRANSACTION> </TRANSACTION_LIST> |
上記のWebトランザクションファイル(wtdemo.xml)のWebトランザクション「wtdemo1」について計測テストを行う場合,コマンド使用例は次のとおりです。
jpcvtest -wtfile wtdemo.xml -wtname wtdemo1 |
計測テストが実行されて成功すると,次の結果レポートが出力されます。
KAVK08333-I Webトランザクションテストを開始しました。 KAVK08334-I Webトランザクションテストに成功しました。 ResultCode=0 == Test report ========================== Web Transaction Filename: wtdemo.xml Web Transaction Name: wtdemo1 Service Type ID: 110 Measurement Start Time: 2014/06/18 19:46:52 Measurement End Time: 2014/06/18 19:46:52 Result Code: 0 ========================================= KAVK08336-I Webトランザクションテストを終了しました。 KAVK42005-I コマンドの実行に成功しました。 |
計測テストが実行され,計測の結果にエラーが検知された場合は,次の出力例のようにエラーに関するメッセージがあわせて出力されます。ここでは,HTTPリクエストが失敗した例を示します。出力されるメッセージについての説明および対処方法については,「12.4 メッセージ一覧」を参照してください。
KAVK08333-I Webトランザクションテストを開始しました。 KAVK08261-E 指定されたリソースがサーバ上にありません。ID=0,サービスタイプ=WEBTRA NS,URL=testmachine1/~test/jp1pfm/SRmemo/wtdemo/wtdemopage1/success.php KAVK08341-E HTTPリクエストが失敗しました。ID=0,STATUS_CODE=404 KAVK08335-E Webトランザクションテストに失敗しました。 ResultCode=3 == Test report ========================== Web Transaction Filename: wtdemo.xml Web Transaction Name: wtdemo1 Service Type ID: 110 Measurement Start Time: 2014/06/18 19:25:13 Measurement End Time: 2014/06/18 19:25:13 Result Code: 3 ========================================= KAVK08336-I Webトランザクションテストを終了しました。 KAVK42004-E コマンドの実行に失敗しました。 |
使用例2(計測テストで検知されたエラー原因を調べるための情報を取得する場合)
-vオプションを指定してコマンドを実行すると,計測テストで検知されたエラー原因の調査に用いることができる情報(HTTPリクエスト,レスポンスヘッダなど,計測結果以外の情報)を出力できます。コマンド使用例は次のとおりです。
jpcvtest -wtfile wtdemo.xml -wtname wtdemo1 -v |
「使用例1(計測テストを実行する場合)」で例に挙げたHTTPリクエストが失敗したケースを用い,-vオプションで出力される情報を基にエラー原因を調査する方法を説明します。
ここでは,HTTPリクエストが失敗するエラーを計測テストで検知した際,ブラウザからはWebトランザクションファイルで定義したURL(success.php)に問題なくアクセスできた場合を想定します。
-vオプションを指定してコマンドを実行すると,次の情報が出力されます。
項目 |
形式 |
埋字 |
---|---|---|
ステップ情報 |
** Step(No.AAAA) *************************** STEP ID : BBBB |
AAAA:ステップ番号(1,2,3....) BBBB:ステップID 存在しない場合はSTEP IDの行ごと省略。 |
ホスト名アドレス解決 |
Resolve address "AAAA"->"BBBB" |
AAAA:ホスト名(IPアドレス指定の場合はIPアドレス) BBBB:IPアドレス |
HTTPリクエスト電文 |
HTTP Request { AAAA } |
AAAA:HTTPリクエスト電文 複数行出力。\r\nは改行に変換。 |
HTTPレスポンスヘッダ |
HTTP Response { AAAA } |
AAAA:HTTPレスポンスヘッダ 複数行出力。\r\nは改行に変換。 |
ステップレスポンスタイム |
Step response time: AAAA sec. |
AAAA:ステップのレスポンスタイム |
-vオプション指定時の出力例を次に示します。HTTPリクエストやレスポンスヘッダの情報が,ステップ単位で出力されます。
KAVK08333-I Webトランザクションテストを開始しました。 ** Step(No.1) *************************** Resolve address "testmachine1"->"172.16.233.12" HTTP Request { GET /~test/jp1pfm/SRmemo/wtdemo/wtdemopage1/index.php HTTP/1.0 Host: testmachine1:80 Connection: close User-Agent: PFM - Agent for Service Response (Windows) Accept: */* } HTTP Response { HTTP/1.1 200 OK Date: Wed, 18 Jun 2014 10:30:55 GMT Server: Apache/2.0.52 (Red Hat) X-Powered-By: PHP/4.3.9 Content-Length: 548 Connection: close Content-Type: text/html; charset=none } Step response time :0.084 sec ** Step(No.2) *************************** Resolve address "testmachine1"->"172.16.233.12" HTTP Request { GET /~test/jp1pfm/SRmemo/wtdemo/wtdemopage1/success.php HTTP/1.0 Host: testmachine1:80 Connection: close User-Agent: PFM - Agent for Service Response (Windows) Accept: */* } HTTP Response { HTTP/1.1 404 Not Found Date: Wed, 18 Jun 2014 10:30:55 GMT Server: Apache/2.0.52 (Red Hat) X-Powered-By: PHP/4.3.9 Content-Length: 0 Connection: close Content-Type: text/html; charset=none } KAVK08261-E 指定されたリソースがサーバ上にありません。ID=0,サービスタイプ=WEBTRA NS,URL=testmachine1/~test/jp1pfm/SRmemo/wtdemo/wtdemopage1/success.php KAVK08341-E HTTPリクエストが失敗しました。ID=0, STATUS_CODE=404 KAVK08335-E Webトランザクションテストに失敗しました。 ResultCode=3 == Test report ========================== Web Transaction Filename: wtdemo.xml Web Transaction Name: wtdemo1 Service Type ID: 110 Measurement Start Time: 2014/06/18 19:30:55 Measurement End Time: 2014/06/18 19:30:55 Result Code: 3 ========================================= KAVK08336-I Webトランザクションテストを終了しました。 KAVK42004-E コマンドの実行に失敗しました。 |
上記の出力例では,1つ目のステップではHTTPステータスコード200(OK)で成功していますが,2つ目のステップでsuccess.phpにアクセスし,監視対象サーバ(testmachine1)からHTTP404(Not Found)のステータスコードが返されています。
このことから,次の2点が分かります。
-
ブラウザからはWebトランザクションファイルで定義したURL(success.php)に問題なくアクセスできた
監視対象サーバ上にはsuccess.phpのリソースは存在している。
-
同じ監視対象サーバ(testmachine1)へのHTTPリクエスト電文について,アクセス先のURL(index.phpとsuccess.php)だけの差異しかないが,success.phpへのアクセスでHTTP404となる
success.phpの内容そのものにHTTP404の結果となる原因がある可能性が高い。
そこで,HTTP404の結果となったsuccess.phpの内容を監視対象サーバ側で確認してみると,次のように,監視対象サーバに送られてきたHTTPリクエスト電文のUser-Agentを参照し,Internet Explorerなどのブラウザ以外からのリクエストについてはHTTP404(Not Found)を返す制約を持つページであることが確認できます(次に示すsuccess.phpの内容は使用例を説明するためのサンプルです。)。
このページの制約は,標準設定のUser-Agentの内容では回避できません。
<?php $ua=$_SERVER['HTTP_USER_AGENT']; //HTTPリクエスト電文のUser-Agentを指します。 // for Internet Explorer(Trident) only // Internet Explorer以外からのリクエストについては,HTTP404エラーを返却する。 if (strpos($ua,"Trident"※)==false) { header("HTTP/1.1 404 Not Found"); exit(); } ?> <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <head> …以下,省略… |
- 注※
-
Tridentは,Internet Explorerに搭載されているHTMLレンダリングエンジンです。HTMLレンダリングエンジンとは,Webページ記述用言語で書かれたデータを解釈し,実際に画面に表示する文字や画像などの配置を計算するプログラムのことをいいます。
そのため,PFM - Agent for Service ResponseからのHTTPリクエストがこのページの制約を回避するには,User-Agentの設定をInternet ExplorerからのHTTPリクエストに合わせた内容に変更する必要があります。次の設定例のように,Webトランザクションファイルの定義で<USER_AGENT>タグを設定する方法があります。<USER_AGENT>タグの設定については,「8.5.2(1) <TRANSACTION_PARAM>タグ」を参照してください。
-
<USER_AGENT>タグの設定例
<USER_AGENT>の設定内容は,実際の環境に合わせて設定してください。
<?xml version="1.0" encoding="Shift_JIS" standalone="no"?>
<!DOCTYPE TRANSACTION_LIST SYSTEM "espwebtrans.dtd">
<TRANSACTION_LIST>
<TRANSACTION>
<TRANSACTION_PARAM>
<TRANSACTION_NAME>wtdemo1</TRANSACTION_NAME>
<USER_AGENT>Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)</USER_AGENT>
</TRANSACTION_PARAM>
…以下,省略…
</TRANSACTION>
</TRANSACTION_LIST>
使用例3(計測テストの結果をスコープ単位で確認したい場合)
Webトランザクション全体だけではなく,ユーザーがWeb Recorderで定義したスコープの単位で計測結果を確認したい場合は,次のとおり,-sオプションを指定してコマンドを実行します。
jpcvtest -wtfile wtdemo2.xml -wtname wtdemo2 -s |
スコープごとに出力される情報は,次の出力例のとおりです。
なお,(scopeALL)に出力される情報は,Webトランザクション全体の計測テスト結果を示します。また,(scope1)や(scope2)などに出力される情報は,スコープ単位の計測テスト結果を示します。
KAVK08333-I Webトランザクションテストを開始しました。 KAVK08334-I Webトランザクションテストに成功しました。 ResultCode=0 == Test report ========================== Web Transaction Filename: wtdemo2.xml Web Transaction Name: wtdemo2 Service Type ID: 110 Measurement Start Time: 2014/06/18 20:01:14 Measurement End Time: 2014/06/18 20:01:14 Result Code: 0 --(scopeALL)----------------- Total Response Time: 0.102 ・・・総応答時間(秒) Setup Time: 0.027 ・・・セットアップ時間(秒) HTTP Time: 0.073 ・・・HTTP時間(秒) DNS Time: 0.002 ・・・DNS時間(秒) TCP Connection Time: 0.024 ・・・TCP接続時間(秒) Server Processing Time: 0.045 ・・・サーバ処理時間(秒) Data Transfer Time: 0.024 ・・・データ転送時間(秒) Total Amount of Data: 15051 ・・・総データ量(バイト) Request Count: 15 ・・・リクエスト数(回) Total Resource Size: 7576 ・・・総リソースサイズ(バイト) Throughput: 2525.33 ・・・スループット(ビット/秒) --(scope1)----------------- Total Response Time: 0.019 Setup Time: 0.009 HTTP Time: 0.01 DNS Time: 0 TCP Connection Time: 0.009 Server Processing Time: 0.006 Data Transfer Time: 0.003 Total Amount of Data: 1993 Request Count: 2 Total Resource Size: 1004 Throughput: 2677.33 --(scope2)----------------- 省略 --(scope8)----------------- Total Response Time: 0 Setup Time: 0 HTTP Time: 0 DNS Time: 0 TCP Connection Time: 0 Server Processing Time: 0 Data Transfer Time: 0 Total Amount of Data: 0 Request Count: 0 Total Resource Size: 0 Throughput: 0 ========================================= KAVK08336-I Webトランザクションテストを終了しました。 KAVK42005-I コマンドの実行に成功しました。 |