CA APM TG スクリプトの作成および編集
内容
apmdevops96jp
内容
スクリプト エディタでは、スクリプトを表示、作成、変更、および削除できます。 スクリプト エディタは、XML(Extensible Markup Language)タグの特殊セットを使用して、CA APM Transaction Generator が合成トランザクションの生成に使用するスクリプトをビルドします。
スクリプト エディタの起動
スクリプト エディタは、Windows 上でのみ動作します。 別々にインストールこともできますが、CA APM TG エージェント コンポーネントと共にインストールされます。
スクリプト エディタを起動する方法
- Windows マシンで、[スタート]-[プログラム]-[CA APM Transaction Generator]-[Script Editor]に移動します。CA APM TG スクリプト エディタが表示されます。 スクリプト エディタのメイン ウィンドウは、以下で構成されています。
- タイトル バー— 現在ロードされているスクリプトの名前が表示されます。
- メニュー バー— スクリプトを編集および保守するコマンドを提供します。
- ツールバー— 通常使用されるコマンドのボタンを提供します。 各ボタンの上にカーソルを置くと、ボタンを識別するヒントが表示されます。
- 編集ペイン— スクリプトの XML が表示されます。 このペインは、ツールバーの下のウィンドウの上部に位置します。
- エラー ペイン— 構文チェックの実行後のエラーが表示されます。 このペインは、編集ペインの下に位置します。
スクリプトの作成
スクリプトは、1 つ以上の要求の仕様から構成されます。 各要求は順次サブミットされ、少なくとも URL を含む必要があります。 要求から返されるページ コンテンツから解析される変数を定義できます。 1 つの要求から解析される変数は、後続の要求で使用できます。
注:
CA CEM ビジネス アプリケーションを設定しない場合は、CA CEM に送信されるすべての CA APM TG スクリプトは CA CEM デフォルト アプリケーションに関連付けられます。このアプリケーションは元の設定で CA CEM に含まれています (CA CEM デフォルト アプリケーションが CA CEM に存在しない場合、CA APM TG スクリプトが CA CEM に送信されたときに新しい CA APM TG アプリケーションが作成されます)。スクリプト エディタは、XML スクリプトをビルドする以下の方法を提供します。
- スクリプト レコーダの使用 — スクリプト エディタで Web サイトに対する要求のポストおよび取得などのトランザクションを記録する場合には、この方法を使用します。 たとえば、複数のトランザクションを記録して、ユーザが注文を完了する方法、注文のステータスの表示、またはテクニカル サポートの要求などをシミュレートします。 トランザクションの完了時にスクリプトを保存し、 CA APM TG エージェントにそれをロードして、指定された間隔でテストします。注:これは、スクリプトの作成に推奨された方法です。 Web アプリケーションが複雑化するとともに、手動でスクリプトを作成するのは非常に困難になります。
- スクリプト テンプレートの使用 — 単一の URL に専用のスクリプトを迅速に作成する場合は、この方法を使用します。 テンプレートには、スクリプト用に最小数のタグが含まれます。 [Edit] - [Insert]メニューのコマンドを使用して、スクリプト パラメータ、要求、要求タグ、および条件を追加します。
- 手動でのスクリプトの作成 — XML およびスクリプト エディタ タグに精通している場合は、この方法を使用します。 [Edit] - [Insert]メニューのコマンドには、スクリプトに追加できるタグを生成する機能があります。
スクリプト レコーダの使用
最近の Web アプリケーションの複雑化により、実行するアクションをスクリプトに記録するほうが、スクリプト エディタでこの情報をコード化するよりも簡単です。 スクリプト レコーダをオンにして、Web ブラウザからユーザが行う Web サイト上のトランザクションを実行することにより、容易にスクリプトを作成できます。
スクリプトの記録は、以下の 2 つの手順で実行します。
注:
使用する前に、まずスクリプト レコーダを設定する必要があります。スクリプト レコーダの設定
CA APM TG スクリプト レコーダは、ブラウザから実行するアクションを記録することによりスクリプトを作成します。 スクリプト レコーダは、プロキシとして動作し、URL とポストされたデータをキャプチャします。
デフォルトでは、スクリプト レコーダは、[Browser Type]で指定したブラウザで指定されているプロキシ設定を使用します。 これらの設定を変更する場合、または[Browser Type]に[
Other
]を使用する場合は、CA APM TG スクリプト レコーダを設定する必要があります。 プロキシ サーバで認証が必要な場合、[Recorder Configuration]でその情報を指定する必要があります。注:
スクリプト レコーダは、HTTP プロトコルおよび HTTPS プロトコルでのみ動作します。 スクリプト レコーダは、自動的なスクリプトの検出やスクリプトの自動構成をサポートしていません。スクリプト レコーダをインストールする方法
- スクリプト エディタを開き、[Settings]-[Recorder Configuration]に移動します。[Configure Recorder]ダイアログ ボックスが表示されます。
- 変更を指定し、[OK]をクリックします。以下のプロパティを設定できます。
- Recorder Port— セッションをリスンするためにレコーダが使用するポート番号を入力します。 このポートを別のアプリケーションがすでに使用している場合は、デフォルトを変更します。
- Recorder SSL Port— HTTPS 要求をリスンするためにレコーダが使用するポート番号を入力します。 このポートを別のアプリケーションがすでに使用している場合は、デフォルトを変更します。
- Use Wininet— Web サーバまたはプロキシによって統合 Windows 認証が使用されている場合は、このチェック ボックスをオンにします。注:Wininet 機能は Linux プラットフォームでは使用できません。 Wininet 機能を必要とするスクリプトを作成する場合、Windows 上で実行される CA APM TG エージェント上でのみそのスクリプトを実行できます。
- NTLM User and Password— [Use Wininet]が有効な場合、Web サーバ認証のためにユーザ名とパスワードを指定する必要があります。
- Connection Timeout— Web サーバに接続するまでにレコーダが待機する時間を秒単位で入力します。
- Bypass any proxy settings— ブラウザでプロキシ情報を指定する場合、レコーダがこれらの設定を使用することを望まない場合は、このオプションをオンにします。
- SSL Version— Web サーバがサポートしている SSL バージョンの横のチェック ボックスをオンにします。 SSLv2 と SSLv3 の両方をオンにすることによって、多数の Web サーバ上で記録できます。注:Web サーバが IBM WebSphere バージョンまたは Apache Web サーバの場合は、SSLv3 を指定します。
- Log Level— 基本ログ ファイルを作成するには 1 を入力します。 より詳細なログを取得するには 2 または 3 を入力します。 ログ レベル 3 が推奨されており、デフォルトです。 ログ名はスクリプト名であり、<apmtg_home>/ScriptEditor/logディレクトリに配置されます。
- Browser Type— 適切なブラウザを選択して、自動的なプロキシ設定の変更とブラウザの表示を有効にします。 サポートされているブラウザのいずれかを使用している場合、スクリプト レコーダは、ブラウザ設定から自動的に HTTP プロキシおよび SSL プロキシ設定を抽出します。 レコーダ設定で指定されたすべてのプロキシおよびプロキシ ポート情報は、レコーダがブラウザから取得するすべての設定に優先します。以下から選択します。
- Other: 選択して、サポートされている Internet Explorer または Firefox のバージョン以外のブラウザを指定します。 ブラウザ接続設定を手動で変更する必要があります。 たとえば、ブラウザ設定で、プロキシ サーバを使用することを指定し、プロキシ サーバの名前として Localhost を指定します。 また、LocalHost プロキシが使用するポートを指定する場合、[Recorder Port]フィールドと同じポート番号を指定する必要があります。
- Internet Explorer 6.x、7.x: 選択すると、IE 6.x 以上を指定します。
- Firefox 1.5、2.X: 選択すると、FireFox 1.5 以上を指定します。
注:Firefox については、[Firefox Profile Name]を定義している場合には、そのうちの 1 つを指定できます。 - Encrypt Configuration— このチェック ボックスをオンにすると、設定ファイルが暗号化されます。 プロキシ サーバでユーザ名やパスワードなどのセキュリティ情報が必要な場合、これを行います。 設定ファイルを暗号化しない場合には、このチェック ボックスをオフにします。注:[Browser Type]に[Other]を指定しており、記録する Web サーバへのアクセスでプロキシが必要な場合には、以下のプロキシ情報が必要になります。 サポートされているブラウザのいずれかを使用する場合、この情報は、ブラウザ設定から自動的に抽出されます。 ここで指定する値は、レコーダがブラウザ設定から取得するすべての値に優先します。
- HTTP Proxy— Web サーバへの接続に使用するプロキシ サーバの名前を入力します。
- HTTP Proxy Port— プロキシのポート番号を入力します。
- HTTP Proxy User— 必要に応じて、プロキシ サーバにアクセスするユーザ ID を入力します。
- HTTP Proxy Pswd— 必要に応じて、プロキシ サーバにアクセスするユーザ ID のパスワードを入力します。
- SSL Proxy— Web サーバへの接続に使用されるセキュア プロキシ サーバの名前を入力します。
- SSL Proxy Port— セキュア プロキシのポート番号を入力します。
- SSL Proxy User— 必要に応じて、セキュア プロキシ サーバにアクセスするユーザ ID を入力します。
- SSL Proxy Pswd— 必要に応じて、セキュア プロキシ サーバにアクセスするユーザ ID のパスワードを入力します。
- Certificate File— クライアント証明書ファイルの完全修飾名。注:詳細については、「クライアント証明書の考慮事項」を参照してください。
- Key File— クライアント証明書に関連付けられている秘密鍵ファイルの完全修飾名。 秘密鍵は、証明書に埋め込まれる場合があります。その場合、このファイルは[Certificate File]と同じになります。
- Pass Phrase— 秘密鍵は、オプションでパス フレーズを使用して、さらに保護できます。 必要に応じて、このフィールドにパス フレーズを入力します。
クライアント証明書の考慮事項
セキュア サーバからの SSL (Secure Socket Layer) URL を記録している場合、ユーザ ID を証明するためにクライアント証明書が必要な場合があります。 通常、この証明書はブラウザにインストールされます。 CA APM TG がこの URL を記録するには、このクライアント証明書へのアクセスも必要です。
証明書は、PKCS12 ではなく X.509 (PEM)形式にする必要があります。これは、通常 Internet Explorer がインポートする形式です。 証明書に秘密鍵が含まれる場合、Internet Explorer の証明書エクスポート(PEM 形式の証明書を作成)は、エクスポートを許可しません。 証明書署名要求(CSR)の作成に使用された秘密鍵がある場合、Internet Explorer を使用して証明書を Base 64 エンコード X.509 (CER)ファイルとしてエクスポートできます。 それ以外の場合、OpenSSL ユーティリティを使用して変換できます。 このユーティリティは、
<apmtg_home>\bin
ディレクトリに含まれています。 コマンドは以下のようになります。Openssl pkcs12 - in mycert.pfx - clcerts - out mycert.pem.
注:
クライアント証明書情報が必要なスクリプトを記録した後に、証明書タグを挿入する必要があります。 [Insert]-[Certificate]
メニューを使用して、必要な証明書タグを作成します。HTTPS プロトコル
スクリプト レコーダは、HTTPS URL を使用して保護されたトランザクションを記録する際に、2 つの個別の SSL セッションを使用します。 スクリプト レコーダは、クライアント ブラウザに対してサーバとして動作し、Web サーバ アプリケーションに対してクライアントとして動作します。 スクリプト レコーダは、ブラウザからの暗号化されたデータをインターセプトし、復号化して記録し、次に再度暗号化して、保護された Web サイトに保護された通信を使用して送信します。
ブラウザがスクリプト レコーダで SSL セッションを初期化すると、レコーダによって提供されたサーバ証明書が検証されます。 スクリプト レコーダには、信頼できる認証局以外で作成された証明書があるため、ブラウザは警告を発行します。 また、警告には、証明書が記録しようとしている Web サイトによって発行されたものではないことも示されます。 表示された警告ダイアログ ボックスで[
Yes
]をクリックし、記録を続行します。注:
スクリプト レコーダは SAML 認証をサポートします。記録セッションの開始
CA APM TG スクリプト レコーダを使用して、ブラウザのクリック ストリームを記録することによりスクリプトを作成できます。 スクリプト レコーダは、プロキシとして動作し、URL とポストされたデータをキャプチャします。
セッションの記録を開始する方法
- CA APM TG スクリプト エディタから、[File]-[New]を選択します。[New Script]ダイアログ ボックスが表示されます。
- [New Script]ダイアログ ボックスで、以下を入力します。
- スクリプトの[New Script Name]。注:スクリプトを CA CEM にマイグレートする場合、この名前は、自動的に作成されたビジネス プロセス名にも使用されます。
- [Group Name](オプション。ただし、推奨)。注:グループ名を指定しない場合、HTTP スクリプトのデフォルトのグループ名が使用されます。 このグループ名は、エージェント構成インターフェースの[Scripts By Group]タブに表示されます。
- デフォルトの設定を使用するか、設定を指定するかを選択します。
- Use Default Settings — スクリプトがデフォルトの設定で定義されます。 スクリプトは、CA APM TG エージェントにロードされるときに、そのグループで指定された設定を使用します。
- Specify Settings — [Global Parameters]ダイアログ ボックスを使用して、このスクリプト専用のパラメータを設定できます。 [Global Parameters]ダイアログ ボックスは、[Specify Settings]オプションを選択して[OK]をクリックすると表示されます。
Global Parameters]は、スクリプト全体に有効です。 これらの設定は、レコーダに影響を与えません。これらは、スクリプトがエージェントで実行された場合にのみ使用されます。 これらの設定はこのスクリプトだけに適用され、このスクリプトのグループ設定またはエージェント設定を上書きします。[Global Parameters]ダイアログ ボックスでは、以下の設定を指定できます。- Normal Interval (sec) — スクリプトのステータスが[Normal]の場合のポーリング間の秒数を指定します。
- Error Interval (sec) — スクリプトの実行でエラーが発生した場合のポーリング間の秒数を指定します。
- Timeout Value (ms) — スクリプト内の各要求の予想される応答時間(ミリ秒単位)を指定します。 しきい値に到達した場合は、要求のステータスがエラーに変わります。
- Detail Level — 要求する URL コンポーネントを指定します。 Web ページを監視する詳細レベルを設定します。 以下のオプションを選択できます。
- Page+Frames: ページ、およびそのページに存在する可能性のあるすべてのフレームを要求します。
- Page+Components: ページ、およびそのページ上のすべてのイメージ コンポーネントを要求します。
- PageOnly: 初期ページのみを要求します。
- Max Connections: [Detail Level]に[PageOnly]以外のいずれかが設定された場合、コンポーネントの要求に対して使用される同時接続数を決定します。 [Max Connections]は合計 20 に制限されています。
注:ネットワーク トラフィックに応じて、この値を増加させることによりポーリングのパフォーマンスが向上する場合があります。 - Enable monitoring — このスクリプトの監視を有効にします。
- Create debug files — 要求ヘッダと応答ヘッダ、および返されるページのコンテンツが記述されたれたファイルを要求するかどうかを指定します。 この情報は、要求がエラー ステータスを返した理由を判断するのに役立ちます。デバッグ ファイルは、<apmtg_home>/RTM_7201/machine_agentnameディレクトリに保存されます。注:ディレクトリ名にある 7201 は、インストール時に指定されたデフォルトのポート番号で、後で設定できます。 このポートは、CA APM TG エージェントと RTMCServer 間の通信用です。 ポート番号は、CA APM TG エージェント構成ファイル(wtgagent.ini)を介して設定可能ですが、デフォルトは 7201 です。
- Send script information to Introscope -- CA APM TG エージェントがこのスクリプトに関して Introscope に情報を送信するかどうかを指定します。デフォルトでは、データを送信するように設定しない限り、CA APM TG エージェントは Introscope にデータを送信しません。 これは、CA APM TG エージェントのインストール時、またはエージェント構成インターフェースを使用して設定できます。 データを送信するようにエージェントを設定すると、スクリプトごとにデータを送信するかどうかを設定できます。この機能が無効な場合、Introscope にデータは送信されません。 CA APM TG では、合成トランザクションの動作は続行されますが、Introscope に情報を送信しません。この機能を有効にすると、スクリプト情報を Introscope で表示できるようになります。
- Use Wininet for Windows Extended Authentication — CA APM TG は、Microsoft の Wininet インターフェースを使用して、Windows 拡張認証を使用する Web サイトをサポートします。 Wininet を使用するように RTMCServer を設定できますが、設定後にすべての URL 要求が Wininet を使用するようになります。 Wininet は、共有セッション メモリおよび Internet Explorer の永続 Cookie キャッシュを使用するため、必要な場合のみ Wininet を使用することをお勧めします。デフォルトでは、[Use RTM]に設定されています。 RTMCServer 設定で指定された設定が使用されます。[Yes]に設定した場合は、この要求に対して Wininet が使用されます。[No]に設定した場合は、RTMCServer での設定にかかわらず、Wininet は使用されません。注:この機能は、Linux プラットフォームでは使用できません。 Linux で CA APM TG エージェントに対してこのオプションを設定しても効果はありません。
- Remove control characters from parsing buffer — 選択すると、キャリッジ リターンとライン フィードを削除します。
- スクリプトに<parse>タグを実装すると、CA APM TG は、解析に使用するバッファからキャリッジ リターンとライン フィードを削除できます。 これにより、解析される文字列を一意に識別できるようになります。
- Stop script on first error — 要求でエラーが返されると、スクリプトの実行が停止します。 エラーが発生した後にスクリプトを続行しない場合は、このオプションを指定します。
- Valid Codes — スクリプト要求によって返された場合に、OK ステータスを示す 1 つ以上の HTTP ステータス コードを定義します。 コードはスペースで区切ります。たとえば、URL が HTTP 401 コードで応答して認証が必要であることを示す場合、401 を有効なコードとして指定し、Web アプリケーションが認証を確認していることを検証できます。
- Valid Component Codes — ページ コンポーネントに対してのみ、スクリプト要求によって返された場合に OK ステータスを示す 1 つ以上の HTTP ステータス コードを定義します。 コードはスペースで区切ります。
- SSL Version — Web サーバによってサポートされている SSL バージョンをオンにします。 SSLv2 と SSLv3 の両方をオンにすることによって、多数の Web サーバ上で記録できます。注:Web サーバが IBM WebSphere バージョンまたは Apache Web サーバの場合は、SSLv3 を指定します。
- Bypass any CA APM TG agent proxy settings — CA APM TG エージェント RTMCServer 設定で指定されたプロキシ情報があり、そのプロキシ情報をこのスクリプトに使用するべきではない場合は、このオプションをオンにします。
- Specify an override proxy for this script — このスクリプトだけに使用されるプロキシを指定する場合は、このオプションをオンにします。 オンにした場合は、以下のプロキシ フィールドが有効になります。
- Override Proxy: Address — このスクリプトだけに使用される代替プロキシ サーバのアドレス。
- Port — このスクリプトだけに使用される代替プロキシ サーバのポート。
- Security: User and Pswd — このスクリプトだけに使用される代替プロキシ サーバの URL のユーザ名およびパスワード。
- [Record]オプションを選択して、[OK]をクリックします。設定を指定するように選択した場合は、[Global Parameters]ダイアログ ボックスが表示されます。 ダイアログ ボックスに設定を入力し、[OK]をクリックします。スクリプト レコーダが表示されます。
- [Start]をクリックし、スクリプト レコーダを設定する際に指定したいずれかのブラウザを使用して記録セッションを開始します。ブラウザに空白のページが表示されます。
- 監視対象の Web サイトの URL を入力し、記録するタスクを実行します。注:デフォルトでは、すべてのスクリプト要求(記録されたクリックストリーム イベント)は、シーケンス番号の識別子と共に、CA APM TG エージェント構成インターフェースおよび CA CEM にリスト表示されます。 [Set Request ID]を使用してスクリプト要求に名前を付けるためのヒントについては、「[Set Request ID]を使用した要求の論理的なグループ化」を参照してください。
- 記録が完了したら、スクリプト レコーダ(Alt+Tab キー)に切り替えて[Stop]をクリックします。
- [File]-[Save]を選択してスクリプトを保存します。スクリプト エディタは、エージェント マシンの以下のディレクトリにスクリプトを保存します。<apmtg_home>\wtgagent_name\scripts注:スクリプト エディタでスクリプトを確認および編集し、変更を保存できます。
- エージェント構成でスクリプトを更新します。 エージェント構成に接続し、[All Scripts]タブまたは[Group Scripts]ページ([Scripts By Group]-[GroupName])のいずれかで[Update Modified Scripts]ボタンをクリックします。
- スクリプトをクリックして、その詳細を表示します。 スクリプトは、エージェントの間隔設定に基づいて起動します。
[Set Request ID]を使用した要求の論理的なグループ化
デフォルトでは、スクリプト要求は、シーケンス番号の識別子と共に、CA APM TG エージェント構成インターフェース(および CA CEM)にリスト表示されます。 [Script Recorder]ダイアログ ボックスの[Set Request ID]フィールドを使用して、記録中に要求に論理的な名前を付けることにより、より意味のある識別子を与えることができます。
- スクリプト レコーダで[Start]をクリックします。
- デフォルトのブラウザが開いた後、Alt+Tab キーを使用してスクリプト レコーダに切り替えます。
- [Set Request ID]ボタンが有効になり、名前を入力できます。
- [Set Request ID]をクリックし、Alt+Tab キーを使用してブラウザに切り替えます。これで、最初の URL の入力によって生成された要求が、記録されたスクリプト内でこの名前でタグ付けされます。次のトランザクション リンクをクリックする前に、この手順を繰り返します。注:記録中の各クリックで、新しい[Set Request ID]を入力するために切り替えない場合、要求は同じ識別子を使用します。 [Set Request ID]で入力した名前は、変更されるまで再度使用されます。 各要求の名前が一意であることを保証するには、各クリックの前に切り替えて戻り、一意の名前を入力します。論理名の順序を維持するため、番号と名前の組み合わせを使用することをお勧めします。 これは、CA CEM にスクリプトをマイグレートするときに、自動的に作成されたビジネス トランザクションを記述で識別できるようにする場合に特に役立ちます。 たとえば、以下の通りです。
- 1 Start Page
- 2 Login Screen
- 3 Entered Login Info
Web サービスの監視
SOAP 要求を Web サービスにポストするスクリプトを作成することにより、その Web サービスを監視できます。 SOAP 要求は、スクリプト エディタの記録機能を使用して作成されます。 WSDL (Web Services Description Language)定義は、Web サービス プロバイダまたはファイルから取得および解析され、結果の方法およびデータがブラウザ内のフォームに表示されます。
選択した方法に対して必要な入力データを入力します。 SOAP 要求が生成され、Web サーバに送信されます。 その後、XML 応答が表示されます。 記録を停止すると、生成された SOAP 要求がスクリプトに保存され、CA APM TG エージェントにロードされて監視されます。
Web サービス スクリプトを記録する方法
- CA APM TG スクリプト エディタを開き、[File]-[New]を選択します。[New Script]ダイアログ ボックスが表示されます。
- [New Script]ダイアログ ボックスで、以下を入力します。
- スクリプトの[New Script Name]。注:スクリプトを CA CEM にマイグレートする場合、この名前は、自動的に作成されたビジネス プロセス名にも使用されます。
- [Group Name](オプション。ただし、推奨)。注:グループ名を指定しない場合、HTTP スクリプトのデフォルトのグループ名が使用されます。 このグループ名は、エージェント構成インターフェースの[Scripts By Group]タブに表示されます。
- デフォルトの設定を使用するか、設定を指定するかを選択します。
- Use Default Settings— スクリプトがデフォルトの設定で定義されます。 スクリプトは、CA APM TG エージェントにロードされるときに、そのグループで指定された設定を使用します。
- Specify Settings— [Global Parameters]ダイアログ ボックスを使用して、このスクリプト専用のパラメータを設定できます。 [Global Parameters]ダイアログ ボックスは、[Specify Settings]オプションを選択して[OK]をクリックすると表示されます。
Global Parameters]は、スクリプト全体に有効です。 これらの設定は、レコーダに影響を与えません。これらは、スクリプトがエージェントで実行された場合にのみ使用されます。 これらの設定はこのスクリプトだけに適用され、このスクリプトのグループ設定またはエージェント設定を上書きします。 - [Record Web Service]オプションを選択して、[OK]をクリックします。設定を指定するように選択した場合は、[Global Parameters]ダイアログ ボックスが表示されます。 ダイアログ ボックスに設定を入力し、[OK]をクリックします。スクリプト レコーダが表示されます。
- [Start]をクリックして記録を開始します。デフォルトの Web ブラウザは、WSDL Entry Formを起動します。
- WSDL URL がローカルで使用可能な場合は、WSDL URL またはファイル パスを入力します。[Recorder Configuration]で[Other]を選択した場合は、選択したブラウザを手動で開始する必要があります。
- Enterキーを押します。WSDL が取得され、サポートされている方法およびデータで解析されます。 次に、WSDL がブラウザ内にフォームとして表示されます。テスト方法は、必要なデータを入力してEnterキーを押すことによって選択します。 要求が Web サーバに送信され、結果の XML データが表示されます。ブラウザの[Back]ボタンを使用して戻り、別のテスト方法を選択できます。 記録を停止すると、作成されたスクリプトに SOAP 要求が保存されます。エージェントにスクリプトを保存、ロード、および実行できます。
スクリプト テンプレートの使用
スクリプト エディタのタグに関する知識がある場合、または単一の URL に対するスクリプトを迅速に作成する場合は、この方法を使用してスクリプトを作成します。
テンプレートを使用してスクリプトを作成する方法
- CA APM TG スクリプト エディタを開き、[File]-[New]に移動します。 [New Script]ダイアログ ボックスが表示されます。
- [New Script]ダイアログ ボックスで、以下を入力します。
- スクリプトの名前。
- グループ名(オプション)。
注:グループ名を指定しない場合、HTTP スクリプトのデフォルトのグループ名が使用されます。 - [Template]ボタンを選択して、[OK]をクリックします。スクリプト ウィンドウに、デフォルトのテンプレート スクリプトが表示されます。 以下に、デフォルトのテンプレート スクリプトの例を示します。注:[New Script]ダイアログ ボックスの設定オプションは使用されません。<?xml version="1.0"?><script>name=TemplateOne group=HTTP Scripts<request>1<url>www.ca.com</url></request></script>
- 追加のタグを手動で入力するか、[Edit]-[Insert]メニューのコマンドを使用して、スクリプト パラメータ、要求、および条件を挿入します。 また、右クリックして、右クリック メニューから[Insert]を選択することもできます。
- [Check Syntax]ツールバー ボタンをクリックするか、[Check]-[Syntax]に移動することによってスクリプトの構文を検証できます。構文チェッカは、形式が正しくない行をレポートします。 タグ内で正しいパラメータが使用されているかどうかは確認しません。
- スクリプトが完了したら、[Save]ボタンをクリックします。
手動でのスクリプトの作成
スクリプトは、CA APM TG スクリプト エディタを使用して手動で作成できます。ただし、タスクが複雑でエラーが発生しやすいため、CA APM では、スクリプト レコーダを使用してスクリプトを作成することをお勧めします。
スクリプトを手動で作成する方法
- CA APM TG スクリプト エディタを開きます。
- 最初の行の先頭にカーソルを置き、以下を入力します。<?xml version="1.0"?>
- <script>タグを入力してスクリプトの指定を開始します。
- [Check Syntax]ボタンをクリックするか、[Check]-[Syntax]に移動することによってスクリプトの構文を検証できます。
- スクリプトが完了したら、[Save]ボタンをクリックします。
スクリプト パラメータの指定
スクリプト パラメータでは、スクリプト全体に適用される間隔など、ポーリングの詳細を指定できます。
スクリプト パラメータを設定する方法
- スクリプト ウィンドウで、<script>タグの後および最初の<request>タグ(存在する場合)の前にある空白行にカーソルを置きます。
- [Edit]-[Insert]-[Global Parameters]に移動します。[Global Parameters]ダイアログ ボックスが表示されます。
- フィールドに値を入力します。表示されたフィールドに対して、値を指定しないと、スクリプトを処理する際にグループ値が使用されます。
- [OK]をクリックします。指定した値がスクリプト ウィンドウに追加されます。<attributes>タグでパラメータ仕様が開始し、</attributes>タグで終了します。
要求の指定
要求では、URL を指定します。また、URL をポーリングする方法に関する詳細が含まれます。 たとえば、URL が認証を必要とするか、URL にデータをポストするか、などがあります。 スクリプト パラメータを上書きする要求パラメータを指定することもできます。 たとえば、この要求を完了するにはより多くの時間が必要なことがわかっている場合に、タイムアウト値を増加させます。
要求を指定する方法
- スクリプト ウィンドウで、<attributes>タグ(存在する場合)の後にある空白行にカーソルを置きます。 また、新しい行が既存の要求<request>、条件<if>、または解析<parse>タグ内にないことを確認します。
- [Edit]-[Insert]-[Request]に移動します。[Insert Request]ダイアログ ボックスが表示されます。
- ダイアログ ボックスのボタンを使用して、スクリプト要求タグおよび条件を指定します。
- [Tags]をクリックすると、[Create Tags]ダイアログ ボックスが表示されます。 ダイアログ ボックス内のフィールドに入力し、[OK]をクリックします。
重要:
URL フィールドに値を指定する必要があります。 その他のすべてのフィールドはオプションです。[
Conditions
]をクリックすると、[Create Condition]ダイアログ ボックスが表示されます。 ダイアログ ボックス内のフィールドに入力し、[OK
]をクリックします。注:
条件は、指定する必要はありません。 指定した条件は、この要求を実行するときに適用されます。条件を指定している場合は、リスト ボックスに表示されます。 表示または編集するには、リスト ボックスをダブルクリックします。
完了したら、[
OK
]をクリックします。 <request>
タグで要求仕様が開始し、</request>
タグで指定条件が終了します。要求タグは、要求のためのデータが含まれる
<url>
や <post>
などのタグです。 これは、<request>
タグと </request>
タグの間に記述します。[Edit]-[Insert]-[Request Tag]
コマンドを使用して、要求タグを指定できます。要求タグを指定する方法
- スクリプト ウィンドウで、<request>タグの後にある空白行にカーソルを置きます。
- [Edit]-[Insert]-[Request Tag]に移動します。[Insert Tags]ダイアログ ボックスが表示されます。
- [Insert Tags]ダイアログ ボックス内のフィールドに入力し、[OK]をクリックします。注:すべてのフィールドを指定する必要はありません。要求に追加するフィールドのみを指定してください。 たとえば、[Post]をクリックして、ポスト データを要求に追加できます。
条件の指定
条件を使用すると、スクリプトの処理のフローを制御できます。 スクリプト レベルで適用される条件、および個別の要求に適用される条件を指定できます。 たとえば、スクリプト レベルで条件を書き込み、スクリプトで要求を処理する方法を指定できます。 同様に、要求レベルで条件を指定し、要求のコンポーネントを処理できます。
CA APM は、要求をサブミットして要求のコンテンツおよび属性を決定する前に、条件を評価します。 また、CA APM TG は、ステータスを設定する、またはスクリプトを停止するという応答を受信した後も、条件を評価します。
条件を指定する方法
- スクリプト ウィンドウで、<attributes>タグ(存在する場合)の後にある空白行にカーソルを置きます。 空白行が<request>タグ内にない場合はスクリプトに適用されます。 空白行が<request>タグ内にある場合、条件は要求に適用されます。また、新しい行が既存の条件<if>(ネストされた条件を作成する場合を除く)または解析<parse>タグ内にないことを確認します。
- [Edit]-[Insert]-[Condition]に移動します。[Create Condition]ダイアログ ボックスが表示されます。
- [Left]、[Operator]、および[Right]ドロップダウン メニューを使用して、ブール条件(たとえば、if size = 400)を作成します。
- [Build]をクリックし、ダイアログ ボックスの上部のリスト ボックスで式を作成します。 別の条件を指定して[AND]ボタンをクリックし、「if size = 400 AND respstatus is not equal to critical」などのステートメントを作成できます。 また、[OR]ボタンをクリックして 2 つの条件を結合することもできます。間違えた場合は、[Clear]ボタンをクリックしてリスト ボックスからすべてのテキストを削除できます。
- [Then Request]をクリックし、条件が true の場合に実行する要求を指定します。
- [Else Request]をクリックし、条件が false の場合に実行する要求を指定します。 詳細については、「要求の指定」を参照してください。少なくとも 1 つの[Then Request]を指定する必要があります。 要求を追加した後、リスト内の要求のエントリをダブルクリックすることによって要求を変更できます。注:Then または Else 要求で条件を指定することもできます。これは、ネストされた条件とも呼ばれます。
- この条件の指定が完了したら、[OK]をクリックします。<if>タグで条件仕様が開始し、</if>タグで終了します。 選択に応じて、開始の<if>タグと終了の</if>タグの間に、<then>、<request>、<attribute>、およびネストされた<if>タグが存在する場合もあります。
構文の確認
スクリプトを手動で作成または編集する場合は、スクリプトをアクティブ化する前に構文を確認します。
スクリプトの構文を確認する方法
- スクリプト エディタでスクリプトを開き、[Check]-[Syntax]に移動するか、スクリプト エディタの上部にある[Check Syntax]ボタンをクリックします。構文チェッカは、正しくコード化されていない行をレポートします。 タグ内で正しいパラメータが使用されているかどうかは確認しません。
複数のエージェントへのスクリプトの展開
同じスクリプトを複数のエージェントで実行し、生成されたトランザクションが異なる場所からどのように実行されるかを比較する必要がある場合があります。 あるエージェントから別のエージェントにスクリプトをコピーするには、以下の 2 つの基本的な方法があります。
一度に 1 つのスクリプトをコピーする方法
- スクリプト エディタを起動し、ローカル エージェントに接続します。
- コピーするスクリプトを開きます。
- [File]-[Connect]を選択し、[Remote Host Name]を入力します。
- 正しい認証情報を入力し、[OK]をクリックします。正常に処理されると、スクリプト エディタの下部にあるステータス バーに、指定したエージェント ホストに接続されたことが示されます。
- [Save Script]ボタンをクリックします。これで、このスクリプトを 2 番目のエージェントで使用できます。
- エージェント構成インターフェースを使用して、2 番目のエージェントに接続します。
- [All Scripts]タブから、[Update Modified Scripts]ボタンをクリックします。
複数のスクリプトを手動でコピーする方法
あるエージェント スクリプト ディレクトリから別のエージェント スクリプト ディレクトリにスクリプトのコピーだけを行うことはできません。 各エージェントには、エージェントを起動した際にロードされるスクリプトを識別するスクリプト制御ファイルがあります。 この制御ファイルは、スクリプト エディタによって更新されているスクリプトを識別するため、エージェントによっても使用されます。 スクリプト制御ファイル内にエントリがない場合、スクリプトはエージェントに対して不明になります。
CA APM TG エージェント コンポーネントには、エージェントによって管理されるスクリプト制御ファイルを更新するためのメカニズムを提供するバッチ ユーティリティ scriptimport が含まれます。 このユーティリティは、少なくとも、アクティブ スクリプト ディレクトリの内容とスクリプト制御ファイルを同期します。 また、スクリプト ファイルのディレクトリへのパスも指定できます。 指定されたディレクトリで検出されたスクリプトは、アクティブ スクリプト ディレクトリにコピーされます。また、スクリプト制御ファイルは、新しいスクリプトを含めるために更新されます。
Windows の場合
以下のコマンド構文を使用します。
scriptimport [ -sync | -path pathname [ - replace ] ]
Linux の場合
Linux の場合、まず scriptimport ユーティリティがある /bin ディレクトリにディレクトリを変更します。
以下のコマンド構文を使用します。
./scriptimport.sh [ -sync | -path pathname [ - replace ] ]
各項目の説明
- -syncエージェントをアクティブ スクリプト ディレクトリのスクリプトと同期します。
- -pathインポートするスクリプトが含まれているディレクトリへのフル パス名を入力します。
- -replacepathが指定される場合のみ有効です。 アクティブ スクリプト ディレクトリにある同じ名前のスクリプトを置き換えるかどうかを指定します。
例
スクリプトをアクティブ スクリプト ディレクトリに手動でコピーする方法
- 以下の場所にあるエージェントのスクリプト ディレクトリにスクリプトをコピーします。<apmtg_home>\wtgagent_agentname
- スクリプトの制御ファイルを同期して、以下の情報が不明な、先ほどコピーしたスクリプトを含めます。
- Windows:scriptimport -sync
- Linux シェル スクリプト./scriptimport.sh -sync
ディレクトリから複数のスクリプトをコピーおよび同期する方法
- スクリプトのディレクトリへのパスを指定し、重複したスクリプト名を置き換えるかどうかを示します。
- Windows:scriptimport -path c:\SavedScripts -replace
- Linux シェル スクリプト./scriptimport.sh -path /SavedScripts - replace
スクリプトのセキュリティ保護
スクリプトには、テスト クライアント情報、ユーザ ID、およびパスワードなどの機密情報が含まれていることがあるため、スクリプトを暗号化してそれらを保護することができます。 デフォルトでは、スクリプト エディタはスクリプトを暗号化しません。
注:
暗号化されたスクリプトを表示できるのは、スクリプト エディタのみです。 管理者ユーザのパスワードを指定することにより、スクリプト エディタへのアクセスをさらに保護できます。新しいスクリプトを保護する方法
- スクリプト エディタを開き、[Settings]-[Encrypt Scripts]に移動します。[Set Encryption]ダイアログ ボックスが表示されます。
- 以下のいずれかの操作を行います。
- [Encrypt Scripts]チェック ボックス オプションをオンにして、スクリプトを保存する際に暗号化します。
- [Encrypt Scripts]チェック ボックス オプションをオフにして、[Encrypt Scripts]オプションをオフにします。 保存する際に、スクリプトが暗号化されなくなります。
- [OK]をクリックします。
既存のスクリプトを保護する方法
- スクリプト エディタでスクリプトを開きます。
- [Settings]-[Encrypt Scripts]に移動して、[Encrypt Scripts]オプションのステータスを確認します。[Set Encryption]ダイアログ ボックスが表示されます。 以下のいずれかの操作を行います。
- [Encrypt Scripts]がオンの場合にスクリプトを暗号化する場合は、[Save]ボタンをクリックしてスクリプトを保存します。
- [Encrypt Scripts]がオフの場合にスクリプトを暗号化する場合は、[Encrypt Scripts]オプションをオンにして[OK]をクリックします。 [Save]ボタンをクリックしてスクリプトを保存します。
- [Encrypt Scripts]がオンの場合にスクリプトを復号化する場合は、[Encrypt Scripts]オプションをオフにして[OK]をクリックします。 [Save]ボタンをクリックしてスクリプトを保存します。
スクリプト エディタへのアクセスのセキュリティ保護
スクリプト エディタには、管理者のデフォルトのユーザ名および NULL パスワード(パスワードなし)が用意されています。 ユーザ名とパスワードを変更することによってスクリプト エディタを保護することをお勧めします。 変更しない場合は、CA APM TG がインストールされているシステムへのアクセス権を持つすべてのユーザが、スクリプトを表示および変更できます。
スクリプト エディタのユーザ名およびパスワードを変更する方法
- スクリプト エディタを開き、[Settings]-[Change User/Password]に移動します。 [Change User/Password]ダイアログ ボックスが表示されます。
- 管理者のパスワードのみを変更するには、以下の手順に従います。
- [New Password]フィールドに値を入力し、同じ値を[Confirm Password]フィールドに入力します。
- [OK]をクリックします。
- 管理者のユーザ名とパスワードを変更するには、以下の手順に従います。
- ダイアログ ボックス内のすべてのフィールドを指定します。
- [OK]をクリックします。
重要:
スクリプト エディタは、1 つのユーザ名のみをサポートしています。 管理者および NULL パスワードを変更する場合は、新しいユーザ名とパスワードを必ず書き留め、安全な場所に保存してください。スクリプトは、1 つ以上の要求の仕様から構成されます。 スクリプトは各要求を順次サブミットします。また、少なくとも URL を含む必要があります。 要求から返されるページ コンテンツから解析される変数を定義できます。 1 つの要求から解析される変数は、後続の要求で使用できます。
スクリプトの作成時に XML タグを使用できます。 許可されている XML タグとそのパラメータは、以下のとおりです。
- <script>namename は、このスクリプトの識別子です。
- <attributes>カンマまたはスペースによって区切られたスクリプトに適用される属性。 これらの属性のほとんどは、現在の CA APM TG URL 設定と一致します。 以下の属性を指定できます。
- ninterval — 通常の間隔。
- cinterval — エラー間隔。
- debug — 「Y」を指定すると、トランザクション内の各要求のデバッグ ファイルに HTTP ヘッダ、ページ コンテンツ、および変数の値を書き込みます。 スクリプト エディタは、[email protected] という名前を <apmtg_home>/RTM_7201/machine_agentnameディレクトリのデバッグ ファイルに書き込みます。 たとえば、サンプル スクリプトの最初の要求のデバッグ ファイルには、[email protected] という名前が付けられます。
- detail — 以下の詳細レベルを表します。
- 1 の場合は[Page+Frames]
- 2 の場合は[Page+Components]
- 3 の場合は[PageOnly]
- enable — 有効な場合は「y」、無効な場合は「n」のいずれか。
- proxybypass — プロキシ サーバをバイパスする場合は「Y」、プロキシ サーバを使用する場合は「n」のいずれか。 if proxy= が指定された場合は、この値が上書きされます。
- maxconn — ページ コンポーネントを取得するときに使用する接続の最大数。
- proxy — このスクリプトに使用するプロキシ サーバ。 この値は、デフォルトのプロキシ サーバを上書きします。
- proxyport — このスクリプトに使用するプロキシ ポート。 この値は、デフォルトのプロキシ ポートを上書きします。
- proxysecurity — プロキシ サーバへの接続に必要な「ユーザ ID」と「パスワード」。 要求の属性タグによって上書きされない限り、スクリプト レベルで指定された要求属性は、各要求で引き続き有効です。
- sslversion — SSL バージョン。 値は、23 (バージョン 2 および 3 の場合)、2 (バージョン 2 の場合)、および 3 (バージョン 3 の場合)です。
- stop — クリティカル。 指定すると、要求がエラーを返した場合、スクリプトの実行が停止します。
- timeout — タイムアウト値。
- validcodes — OK ステータスになる 1 つ以上の http コード。
- validcompcodes — ページ コンポーネントに対して OK ステータスになる 1 つ以上の http コード。
- autocrcreset — CRC の正確性の確認に失敗した後に、予期された CRC 値を自動的にリセットする必要があるかどうかを指定します。「Y」または「n」のいずれか。
- sendtoiscope — 「Y」を指定すると情報を に送信し、「n」を指定すると情報を送信しません。
- nocrlf — 選択すると、キャリッジ リターンとライン フィードを削除します。 スクリプトに<parse>タグを実装すると、CA APM TG は、解析に使用するバッファからキャリッジ リターンとライン フィードを削除できます。 これにより、解析される文字列を一意に識別できるようになります。
- <comment>コメントの先頭を示します。
- comment — スクリプトの説明で表示される文字列。
注:要求に comment タグを指定することもできます - <request>要求の先頭を示します。 以下のタグを使用して、要求を指定します。
- <attributes>カンマまたはスペースによって区切られた個別の要求に適用される属性。 要求レベルで指定された属性は、この要求用のグローバル スクリプト属性を上書きします。 要求に対しては、以下の属性を指定できます。
- detail — 以下の詳細レベルを表します。
- 1 の場合は[Page+Frames]
- 2 の場合は[Page+Components]
- 3 の場合は[PageOnly]
- maxconn — ページ コンポーネントを取得するときに使用する接続の最大数。
- timeout — タイムアウト値。
- validcodes — OK ステータスになる HTTP リターン コードのリスト。 カンマを使用して、複数のコードを区切ります。
- validcompcodes — ページ コンポーネントに対して OK ステータスになる HTTP リターン コードのリスト。 カンマを使用して、ページ コンポーネント コードに対して返される複数の HTML を区切ります。
- <url>URL 仕様の先頭を示します。
- url — 取得またはポストする URL。 このタグは必須です
- <security>
- この URL に必要なセキュリティ情報の先頭を示します。
- userid and password — この URL へのアクセスに必要なユーザ ID とパスワード
- <post>
- この URL にポストするデータの先頭を示します。
- name=value — ポストされる名前と値。 ポスト データを指定すると、この URL に対する GET ではなく POST になります。 複数の post タグを指定できます。
- <check>このサブミットから返されたページで、コンテンツの確認が完了したことを示します。以下のようになります。("string","NOT "string"",CRC,none,"Length {=|>|<} size")
- CRC: ページ コンテンツに対して巡回冗長検査が実行されます。
- " ": 一致する文字列パターンを確認します。 引用符内に文字列(たとえば "welcome")を指定します。 引用符の各文字列をスペースで区切ることにより、複数の文字列を指定できます。 たとえば、"logon" "successful" などです。 すべての文字列で、正確性の確認が成功する必要があります。
- NOT " ": 文字列パターンに一致しないことを確認します。 たとえば、NOT "foo" などです。 複数の文字列が指定されている場合、いずれかの文字列が存在すると、正確性の確認が失敗します。
- Length: 文字列の長さを確認します。 バイト単位で「Length 演算子(=、>、または <)サイズ」として長さを指定します(たとえば、Length>500)。
- <stop>指定されたスクリプト処理を停止します。
- <localaction>スクリプトの特定のポイントで実行するバッチ ファイル、プログラム、またはスクリプトの名前を示します。
- action — 実行するアクション。 例:<localaction>cmd.exe /c test.bat</localaction>
- </localaction>ローカル アクションの終了を示します。
- <cookie>この要求に対して送信される Cookie の名前を示します。 Cookie は一時的であり、この要求に対してのみ送信されます。 要求に対して複数の Cookie を指定できます。 たとえば、以下の通りです。<cookie>cookiename=cookievalue;path=pathvalue;domain=domainvalue</cookie>以下の変数を指定します。
- cookiename — Cookie の名前。
- cookievalue — Cookie の値。
- path — Cookie が存在する場所へのパスを指定することを示します。 指定しない場合、スクリプト エディタは要求のパスを使用します。
- pathvalue — Cookie が存在するパス。
- domain — ドメインを指定することを示します。 指定しない場合、スクリプト エディタは要求のドメインを使用します。
- domainvalue — ドメインの名前。
- <setvar>スクリプト変数の名前とその値を示します。 値には、文字列、算術式、またはコマンドの出力を設定できます。 値には、その他の変数を含めることもできます。 <setvar> タグは <setrvar>variable=expression</setvar> のように指定します。
- variable — 変数の名前。
- expression — 変数の値。 たとえば、以下の タグは、スクリプト内のいずれかの場所に %%var1%% が指定された場合、スクリプトの実行時に testvalue が代入されることを示します。 <setvar>var1=testvalue</setvar>
- <upload>スクリプト内のこの要求で、アップロードするサンプル ファイルを示します。 以下の変数を指定する必要があります。
- controlname — ファイル識別子。 これは、フォームの INPUT タグに指定された NAME= の値です。
- filename — パスを含めて、アップロードされるファイル。
- contenttype — text/plain または image/gif など、アップロードされるファイルの MIME タイプ。 以下に、ファイルをアップロードするサンプル フォームを示します。
- <FORM METHOD="POST" ACTION="/testupload.cgi ENCTYPE="multipart/form-data" > <INPUT TYPE="FILE" NAME="userfile"> <INPUT TYPE="SUBMIT" VALUE="Submit"></FORM>このページで識別されたファイルをアップロードするスクリプト タグは、次のとおりです:<upload>userfile=c:\testfile.txt=text/plain</upload>
- <parse>変数宣言の先頭を示します。
- string%%name%%string — ページ上で、前後に出現するテキストに基づいて、変数と値を宣言します。 複数の parse タグを指定できます。 複数の一致が発生した場合、最初の発生が変数配列によって%%name%%で返され、2 番目の発生が%%name[1]%%で返されます。
- <if>条件の先頭を示します。 タグも指定する必要があります。
- expression — 条件は、変数間、または変数と定数間の比較に制限されます。 タグまたは タグ内に要求タグを指定できます。 また、要求の外部の条件を指定し、後続の要求処理を制御することもできます。
- <then>then ステートメントの先頭を示します。
- tags — 条件が true と判断された場合に処理する複数の要求。
- <else>else ステートメントの先頭を示します。
- tags — 条件が false と判断された場合に処理する複数の要求。
- <certificate>Web アプリケーションが認証のためにクライアント証明書を必要とする場合、このタグは、CA APM TG エージェントに対してそれを定義するために使用されます。 詳細については、「クライアント証明書の考慮事項」を参照してください。
- certfile — クライアント証明書ファイルの完全修飾名。
- certkeyfile — クライアント証明書に関連付けられている秘密鍵ファイルの完全修飾名。 秘密鍵は、証明書に埋め込まれている場合があります。その場合、このファイルは証明書と同じになります。
- passphrase — 秘密鍵は、パス フレーズを使用してさらに保護することが可能です。 必要に応じて、このフィールドにパス フレーズを入力します。
重要:
すべての XML タグを閉じるには、/ 記号を使用します。 たとえば、<else> variables </else>
は、先頭の <else>
タグを閉じます。XML 特殊文字の代入
XML 構文では、特定の文字の使用が予約されていますが、これらの文字をデータとして使用するために、別の仕様が提供されています。 以下の表に、XML プロセッサで許可されている特殊文字および代替文字のリストを示します。
特殊文字 | 代替文字 |
& | & |
< | < |
> | > |
‘ | ' |
" | " |
XML パーサとの互換性のため、Web 応答監視スクリプトではこれらの代替文字を使用します。 たとえば、以下のように
AND
演算子を使用して、複合条件を指定します。<if>%%V1%%=Associates & %%respstatus%%=normal
XML には、CDATA 仕様を使用して、データの行全体のエスケープを行う方法があります。 たとえば、XML 特殊文字が含まれている HTML ページを解析するには、以下のように、データの前に 、データの後に を指定します。
<parse><![CDATA[this is a sample < %%VAR1%% >]] ></parse>
[Edit]-[Insert]-[Request Tag]-[Parse]
を使用して <parse>
タグを作成すると、エスケープ シーケンスがユーザに対して作成されます。スクリプト サンプル
このセクションには、以下が含まれます。
基本的なスクリプトのサンプル
以下の XML サンプルでは、3 つの要求が順番にサブミットされます。 タイムアウト値はスクリプト レベルで指定されます。 独自のタイムアウト値(30,000 ms)を持つ 3 番目の要求を除く、すべての要求に有効です。
<script>sampleone<attributes>timeout=20000</attributes><request><url>www.aaa.com</url></request><request><url>www.bbb.com</url></request><request><attributes>timeout=30000</attributes><url>www.ccc.com</url></request></script>
スクリプト条件およびコンテンツ変数
条件を使用して、スクリプトの処理フローを制御できます。 条件により、要求を処理する方法を指定できます。 また、要求内でコンポーネントを処理する方法も指定できます。
<parse>
タグを使用すると、ページ コンテンツから変数値を設定できます。 先頭と末尾の文字列がページ内で一意ではない場合は、変数の配列が返されます。 一意の一致を容易にするため、また値の大きな文字列を防止するため、解析は一度に 1 行に制限されています。 変数名は、%%
(2 つのパーセンテージ記号)を使用して区切る必要があります。また、変数名には、英数字のみを使用できます。条件は、要求のコンテンツおよび属性を決定するために、要求がサブミットされる前に評価されます。 条件は、応答を受信してステータスを設定するか、スクリプトを停止した後も評価されます。
AND
条件に対して &
を使用し、OR
条件に対して | を使用して、複合条件を指定できます。 複合条件は、左から右に評価されます。 また、条件をネストすることもできます。以下の演算子がサポートされています。
- =等しい
- >より大きい
- <より小さい
- !=等しくない
コンテンツ変数サンプル 1
以下の XML サンプルでは、変数は、最初の要求で返されたページのコンテンツから解析されます。 変数値に基づいて、要求 2 または要求 3 のいずれかがサブミットされます。
<script>sampletwo<request><parse>Computer %%V1%% International</parse><url>www.aaa.com</url></request><if>%%V1%%=Associates<then><request><url>www.bbb.com</url></request></then><else><request><url>www.ccc.com</url></request></else></if></script>
コンテンツ変数サンプル 2
以下の XML サンプルは、上記のサンプルと同様です。 要求内に条件を指定します。 論理上、結果は同じですが、このサンプルでは 2 つの要求がサブミットされます。 最初の要求の応答ステータスに対する確認は、複合条件を実行するために追加されています。
<script>samplethree<request><parse>Computer %%V1%% International</parse><url>www.aaa.com</url></request><request><if>%%V1%%=Associates & %%respstatus%%=normal<then><url>www.bbb.com</url></then><else><url>www.ccc.com</url></else></if></request></script>
スクリプト予約済み変数
以下の変数がスクリプト言語に組み込まれており、これらの値は、各要求に従って更新されます。 これらは、スクリプト内のスコープでグローバルです。 1 つの要求からの応答をテストして、後続の要求および要求コンポーネントを制御できます。 「予約済み変数サンプル」も参照してください。
要求変数
以下の予約済み変数が要求レベルで適用されます。
- %%respstatus%%応答ステータス: Normal または Critical。
- %%statuscode%%HTTP ステータス コード。
- %%firstbyte%%最初のバイトを取得する応答時間(ミリ秒)。
- %%lastbyte%%すべてのコンテンツのすべての最後のバイトを取得する応答時間(ミリ秒)。
- %%size%%サイズ(バイト)。
- %%avgresponse%%この要求の累積的な平均応答時間(ミリ秒)。
- %%critpolls%%この要求の累積的なエラー応答の数。
スクリプト変数
以下の予約済み変数がスクリプト レベルで適用されます。
- %%tranresponse%%スクリプト全体の応答時間(ミリ秒)。
- %%transize%%スクリプト全体の合計サイズ(バイト)。
- %%transtatus%%全体的なスクリプト ステータス: Normal または Critical。 実行されたすべての要求を組み合わせたステータス。
- %%trantotalavgresponse%%このスクリプトの累積的な平均応答時間(ミリ秒)。
- %%trantotalcritpolls%%このスクリプトの累積的なエラー応答の数。
日付変数
以下の組み込み変数は、すべてのスクリプト実行の開始時に更新されます。
- %%day%%日
- %%month%%月
- %%year2%%2 桁の年数
- %%year4%%4 桁の年数
グローバル変数
以下に、スクリプト実行間のスコープでグローバルな予約済み変数のみを示します。
- %%prevtranstatus%%このスクリプトの以前の実行ステータス(Normal または Critical)。 この変数を使用して、初めてステータス変更が発生した場合のみ true になる条件を作成できます。
スクリプトの実行によって値が変化しない、独自のグローバル変数をコード化できます。 GLOBAL で始まる変数名には、スクリプトが起動するときにクリアされる値がありません。
予約済み変数サンプル
以下の XML サンプルでは、2 番目または 3 番目の要求がサブミットされるかどうかを決定するため、最初の要求からの応答ステータスがテストされます。 4 番目の要求のタイムアウト値は、サブミットされた前の要求からの応答によって異なります。 1 行に複数のタグを指定できることに注意してください。 読みやすさを向上させるため、必要に応じて XML スクリプト コードを字下げすることをお勧めします。
<script>samplefour<request><url>www.aaa.com</url></request><if>%%respstatus%%=normal<then><request><url>www.bbb.com</url></request></then><else><request><url>www.ccc.com</url></request></else></if><request><if>%%respstatus%%=critical<then><attributes>timeout=30000</attributes></then></if><url>www.ddd.com</url></request></script>
<setvar> サンプル
値には、文字列、算術式、またはコマンドの出力を設定できます。 値には、その他の変数を含めることもできます。
変数
たとえば、
<setvar>
タグにはその他の変数を含めることができるため、このタグを使用して変数をインクリメントするか、変数を組み合わせることができます。<setvar>var1=%%day%% + 1</setvar>
このタグは、日付の値が 1 ずつ段階的に増加する変数(var1)になります。
グローバル変数
通常、スクリプト変数には、スクリプトの 1 回の実行に対する値のみ保持されます。 ただし、スクリプトの実行によって値が変化しないグローバル変数を指定できます。 GLOBAL で始まる変数名には、スクリプトが起動するときにクリアされる値がありません。
プログラムとタイムアウト値
外部プログラムまたはスクリプトを使用して、変数に値を割り当てることもできます。 タグで指定されたプロセスが実行され、stdout に書き込まれた値がその変数の値として使用されます。 以下の例について考えてみます。
<setvar>var1=exec(cmd.exe /c testext.bat)</setvar>
var1 が評価されるたびに testext.bat が実行され、結果の stdout がファイルにリダイレクトされます。CA APM TG エージェントは、そのファイルを読み取って、var1 に使用する値を取得します。 ファイルは、scriptname.variablename のファイル名で <
WTG_Home
>/wtgaent_instance
ディレクトリに書き込まれます。デフォルトでは、CA APM TG エージェントは、処理を実行するために 2 秒間待機します。 さらに時間が必要な場合、
<setvar>
タグでオプションのタイムアウト値(秒単位)を指定できます。<setvar>var1=exec(c:\longprogram.exe),timeout=5</setvar>
タイムアウト期間が終了し、値が見つからなかった場合は、CA APM TG エージェントが実行中のプロセスを強制終了しようとします。
タグまたは stop 属性を使用したスクリプトの停止
CA APM TG スクリプトには、 タグおよび stop 属性など、スクリプトを停止できる複数の方法があります。 タグは、任意の時点で使用できます。 stop 属性は、スクリプト レベルで使用できます。
停止スクリプト サンプル 1
以下の XML サンプルでは、最初の要求からの応答が確認されます。 応答がクリティカルな場合は、スクリプトが停止され、2 番目の要求がサブミットされません。
<script>samplefive<request><url>www.aaa.com</url></request><if>%%respstatus%%=critical<then><stop></stop></then></if><request><url>www.bbb.com</url></request></script>
停止スクリプト サンプル 2
以下の XML サンプルでは、任意の要求からの応答が確認されます。 応答がクリティカルな場合は、スクリプトが停止され、後続の要求がサブミットされません。
<script>samplefive<attributes>stop=critical</attributes><request><url>www.aaa.com</url></request><request><url>www.bbb.com</url></request><request><url>www.ccc.com</url></request></script>