ja:documentation:pandorafms:monitoring:13_user_monitorization

Web ユーザエクスペリエンス監視 (WUX)

ウェブユーザエクスペリエンスモニタリング(User Experience Monitoring, UX Monitoring Pandora FMS の用語では、単に WUX) は、ユーザがウェブサイトやウェブアプリケーションをどのように操作しているかのデータをリアルタイムに収集、分析、評価するプロセスです。 その目的は、ユーザ体験を改善するために、パフォーマンス、ユーザビリティ、アクセシビリティの問題を検出することです。

Pandora FMS WUX は、この目的に特化したバックエンド(Selenium®)を使って、合成モニタリング(Synthetic Monitoring)を行います。 つまり、Pandora FMS は、リモートサイト(Google Chrome®, Mozilla Firefox®など)とやりとりするために実際のブラウザを利用します。

  • It detects problems before real users experience them. It collects real-time browsing data from real users (webscrapping).
  • It measures metrics such as load time, interactions, errors and user behavior (web analytics).
  • Examples: Measuring page load, response times, screenshots (of the web), testing on different devices, testing complex applications that require logging, JavaScript® interaction, text inputs, passing data from one field to another as if done by a user, mouse clicks, waiting times, and so on.
  • 実際のユーザーが問題を経験する前に問題を検出します。 実際のユーザからリアルタイムの閲覧データを収集する(ウェブスクレーピング)。
  • ロード時間、インタラクション、エラー、ユーザー行動などの指標を測定します(ウェブ分析)。
  • 例 ページロード、レスポンスタイム、(ウェブの)スクリーンショット、異なるデバイスでのテスト、ロギングを必要とする複雑なアプリケーションのテスト、JavaScript®によるインタラクション、テキスト入力、あるフィールドから別のフィールドへ、あたかもユーザーが行ったかのようにデータを渡す、マウスクリック、待ち時間などの測定。

WEB サーバーは基本的な HTTP リクエストを使用し、セッションをシミュレートすることはできますが、実際のブラウザーではないため、JavaScript を実行したり、最新のブラウザーをエミュレートすることはできません。 シンプルなWEBテストであれば通常のWEBテストでも問題ありませんが、WUXはもっと強力です

  • エージェントベースのWUX(Seleniumバージョン2)、バージョン740まで。
  • WUXはWUXサーバー(Selenium 3)で集中管理され、バージョン780まで。
  • WUXはDiscovery PFMS (Selenium 4)のプラグインとして集中管理されています。

780 より前のバージョンでは、WUX は Pandora FMS サーバ(WUX サーバ)の一部として動作していました。 現在でも可能ですが、WUX を Discovery PFMS で集中モードで利用するよりもセットアップが複雑になります。

Discovery PFMSで集中管理されているWUXもSelenium 4をベースにしており、プラグインとしてエージェントから(オプションで)使用することができます。 WUXサーバーで動作したトランザクションファイル.side)は、WUX Discovery PFMSで動作します。

WUX Server (Selenium 3)の使用方法に関する情報は、別館WUX monitoringにあります。

The operation of this plugin for Selenium 4 is carried out thanks to Pandora FMS Discovery Server. As mentioned, previously a dedicated server known as WUX Server was used exclusively and it is also possible to use Discovery PFMS for this purpose.

この Selenium 4 用プラグインの動作は、Pandora FMS 自動検出サーバを利用しています。 前述のように、以前は WUX サーバと呼ばれる専用サーバを使用していましたが、PFMS 自動検出を使用することも可能です。

It is now able to perform executions using Selenium 4, hence its name, and it also supports Selenium 3 transactions (which may have been previously executed in an environment thanks to a WUX Server).

名前の通り Selenium 4 を使用して実行できるようになりました。また、Selenium 3 トランザクションもサポートされています (以前は WUX サーバの環境で実行されていました)。

Regarding transaction executions, there are 4 different methods for connecting to Selenium, which will be discussed in more detail below, along with the requirements that must be met to ensure correct operation.

トランザクションの実行に関して、Selenium に接続するには 4 つの異なる方法があります。これについては、正しい操作を確実に行うために満たす必要のある要件とともに、以下で詳しく説明します。

主な要件は、プラグインを実行するサーバーがSelenium 4スタックに接続できること、そしてこのサーバーが監視するウェブサイトのURLと通信できることです。

このWUXプラグインには、各トランザクションで実行される4つの異なるSelenium接続メソッドがあるので、それぞれのケースで必要な実行モードに要件を調整する必要があります。

プラグインは、それが実行されているコンピュータ上で見つかったGoogle ChromeまたはMozilla Firefoxのドライバを使用します. デフォルトでは、これらのコンポーネントは以下のパスで検索されますが、必要に応じて別のパスを指定することもできます。

Google Chrome バイナリ:

/usr/share/pandora_server/util/selenium_headless_drivers/chrome/google-chrome

Chromedriver:

/usr/share/pandora_server/util/selenium_headless_drivers/chromedriver

Mozilla Firefox バイナリ:

/usr/share/pandora_server/util/selenium_headless_drivers/firefox/firefox

Geckodriver:

/usr/share/pandora_server/util/selenium_headless_drivers/geckodriver

これらのドライバは、Pandora FMS ライブラリからパッケージでダウンロードし、デフォルトのパスで解凍することができます。

このモードでブラウザを起動するには、そのブラウザ固有の依存関係もシステムにインストールされていなければならない。

  • Mozilla Firefox: gtk3, alsa-lib, libX11-xcb.
  • Google Chrome: nss, libdrm, mesa-libgbm.

プラグインは URL で示される Selenium 4 サーバーに接続するので、プラグインを実行しているサーバーから Selenium 4 サーバーのリスニングポート (デフォルトでは 4444 TCP) にアクセスする必要があります。

このプラグインは、ローカルドライバモードで指定されたドライバを含むイメージを使って実行するサーバ上でDockerコンテナを起動し、実機からの依存関係を抽象化します。

デフォルトでは、pandorafms/pandora_selenium_headlessイメージが使用され(実行毎に異なるイメージを指定することも可能です)、ドライバはDocker内で以下のパスで検索されます:

  • Google Chrome バイナリ: /tmp/lib/chrome/google-chrome.
  • Chromedriver: /tmp/lib/chromedriver.
  • Mozilla Firefox バイナリ: /tmp/lib/firefox/firefox.
  • Geckodriver: /tmp/lib/geckodriver.

プラグインはユーザー名とパスワードを使って SSH 経由でリモートサーバーに接続し、そのサーバー上でプラグイン自身のコピー (その時点でコピーされたもの) を local docker モードで実行します。 したがって、上記のモード要件に加えて、指定したポート (デフォルトでは 22 TCP) で指定した認証情報を使って SSH 経由でリモートサーバーに接続できるようにする必要があります。

SSH接続に指定されたユーザは、Dockerコンテナを起動し、一時ディレクトリにコピーされたファイルにアクセスするのに十分な権限を持っている必要があります。 リモートサーバーへのファイルのコピーには一時ディレクトリが使用されます(デフォルトでは /tmp )が、実行ごとに異なるパスを指定することもできます。

すべての実行モードにおいて、必要に応じて、各取引にGoogle ChromeまたはMozilla Firefoxのプロファイルを使用することが可能である。 この機能を使用する場合、トランザクションを開始するサーバー (local または remote) にこれらのプロファイルへのパスが含まれていることを確認する必要があります。

Dockerの実行モード(localremote)では、プロファイルフォルダへのパスを持っている必要があります

また、各実行で示されたSIDEのメインURLへの接続統計を監視することも可能です。 そのためには、プラグインを起動するコンピュータに curl 実行ファイルがインストールされている必要があります。

テストの実行が remote driver モードで行われる場合、統計情報は Selenium 4 サーバーからではなく、プラグインを実行しているサーバーから取得することに注意してください。

Selenium 4 で WUX モニタリングを利用するためには、Pandora FMS ウェブコンソールのディスカバリセクションに .disco をインストールする必要があります。 これは、Manage disco packagesビューから、.disco タイプのファイルを選択して、Pandora FMS ライブラリからプラグインをダウンロードすることで実行できます:

これらのトランザクションを実行するには、Google ChromeまたはMozilla Firefoxブラウザで利用可能なSelenium IDE拡張機能を使用して事前に保存しておく必要があります。 拡張機能を開いた後、新しいプロジェクトに保存するか、既存のプロジェクトを開くか、新しいプロジェクトを作成するか、単に拡張機能を閉じるかを選択するよう求められます。

最初のオプションを選択すると、作成するプロジェクトに名前を付け、録画のベースURLを入力するよう求められます。

3つ目のオプションを選択した場合、プロジェクト名の入力のみが求められるため、過去の録画がない場合は、ベースとなるURLアドレスを手動で入力して録画を開始する必要があります。

以上の手順で拡張機能の準備ができたら、次にすることは、画面の右上にあるRECボタンをクリックすることです。 選択したブラウザに新しいウィンドウが開き、URLベースセクションに示されたページがロードされます。 この瞬間から、このウィンドウで実行されたアクションは Selenium IDE 拡張プロジェクト に保存されます。

トランザクション実行の後半でモニターするすべてのアクションが実行されたら、Stop recordingボタンをクリックします (RECボタンがあった場所)で録音を停止します。 トランザクションテストの名前を入力するプロンプトが表示されます。 複数のテストがある場合、後で Pandora FMS にロードする際に、順次実行されます。 プロジェクトの各テストに対して、新しいエージェントが作成されます

その後、以下のようなビューが表示される:

必要であれば、フェーズセパレーター、コメント、待機コマンドなどのコマンドを手動で追加することも可能です (wait)。

セクションSIDEファイルのコマンドにサポートされているコマンドの完全なリストがあります。

これらのコマンドを現在の録音に追加するには、既存のコマンドのいずれかを右クリックし、Insert new commandオプションをクリックします:

これにより、クリックしたコマンドの上に空のコマンド行が挿入され、これを編集してコマンドを手動で追加することができます Insert new commandフィールドに希望のコマンドを入力するだけです:

例えば、フェーズ開始コマンドを使用する:

//phase_start:フェーズ名

新しいphase_startコマンドが表示されたとき、またはそれが失敗したときに、トランザクションが終了する。

録画が終了し、使用したい追加コマンドの設定が完了したら、プラグイン実行の設定で使用できる .side ファイルを生成します。 これを行うには、Selenium IDE ウィンドウの右上にあるディスケットアイコンをクリックし、簡単に見つけられるパスにファイル名を付けて保存します。

.sideファイルが生成されたら、それを開いてみると、実際はJSONファイルであることがわかる。 このJSONフォーマットの内容は、プラグイン設定のTest setupステップのSelenium IDE JSONボックスにコピー&ペーストしなければなりません。

Pandora FMS ウェブコンソールのディスカバリツールから録画を実行するには、アプリケーションメニューから Selenium 4 を使ってタスクを作成します (Management → Discovery → Applications):

タスクには名前を指定し、グループを割り当てる必要があります。 説明を追加したり、インターバル時間や実行タイプなどの他の重要なパラメーターを変更することも可能である:

次のステップでは、以下のパラメータが表示されます:

これらによって、トランザクションがどのウェブブラウザで実行されるかを指定するだけでなく、前述の4つの利用可能な実行モードから1つを選択することができる。 互換性のために、Selenium IDEでトランザクションが保存されたのと同じブラウザであることを推奨します。

実行のタイプが指定されると、どのオプションが選択されたかに応じて、異なる設定オプションが表示される。

Local Docker

デフォルトでは使用する画像が表示されているので、別の画像を使用したい場合以外は何も記入しないでください。 トランザクションの実行において特定のユーザーのプロファイルを使用する必要がある場合は、そのユーザーを指定する必要があります。 また、使用するブラウザープロファイルのパスを指定することもできます。

Remote Docker

タスクを実行するリモートサーバーにSSHで接続するために必要なデータを指定する必要がある。 接続データには、IPアドレスまたはFQDN、SSHポート、アクセス認証情報が必要です。

テンポラリパスは実行に必要なファイルをホストし、それ以外のフィールドはローカルDockerの実行と同じです。

Local Driver

このタイプの実行では、Pandora FMS ライブラリからダウンロードできる、実行に必要なドライバのパスを指定できます。

トークンについては、一番下にある:

  • Virtual display: 仮想デスクトップを使用する実行に使用する。 指定しない場合、タスクを実行するサーバーには物理デスクトップ(モニター)が接続されている必要がある。
  • Headless driver: 非デスクトップ環境に適したこのモードで実行するために使用されるブラウザのため。

両方のトークンにチェックを入れておくことをお勧めします

Remote Driver

4番目のモードでは、リモートドライバへの接続URLを指定する必要があります。 userパラメータとprofileパラメータの動作は前述と同じです。

接続モードを選択した後、タスク構成を確定する前に最後のステップを設定しなければならない。

安全でない証明書の受け入れや、時間統計の監視を指定することも可能である。 また、トランザクションが実行される画面解像度、グローバル・タイムアウト時間、記録コマンド間の待ち時間など、その他の設定パラメータもある。

最後に、トランザクションの記録のステップで示したように、.sideフォーマットのJSONコンテンツを、Selenium IDE JSON最後のフィールドに入力する必要があります。

タスクが設定された後、数秒後に自動的に実行されるが、最初のステップでタスクがどのように設定されたかに応じて、タスクを強制的に手動で実行する必要がある。

実行が終了すると、タスクからどのエージェントが作成されたか、どのエージェントがテストエージェントに属するか、それぞれのタイプがいくつあるかを示すサマリビューを確認することができます。

この例の場合、Selenium プロジェクトは Selenium 4 と名付けられ、Test 1Test 2 という 2 つの異なるテストがあります。 タスク構成中にオプションMonitor time statisticsがチェックされた場合、パフォーマンスデータをホストするプロジェクト名でエージェントが作成されます。

一方、記録されたトランザクションのエージェントも、テストごとに 1 つずつ作成される。 この場合、Test 1Test 2という名前のエージェントが2つ存在することになる:

実行後、エージェントはトランザクションデータとともに作成され、このトランザクショ ンの実行のためのモジュールを含む。 パフォーマンスデータを持つエージェントには、この情報のためのモジュールと、Monitor time statisticsオプションが、タスク設定の最後のステップであらかじめ有効になっている必要があります。

テストエージェントに追加されるモジュールは、少なくとも以下の3つである:

  1. Global status: テストが正しく完了したか、ある時点で失敗したかを示す。
  2. Global time: これは、テスト完了までに要した秒数を示す数値モジュールである。
  3. Last error screenshot: テストが失敗した場合、失敗が発生したときにブラウザに表示されたスクリーンショットがこのモジュールに保存される。

Global statusLast error screenshotモジュールの説明では、Selenium エンジンから返されたエラーのテキストが表示されます。

トランザクションにフェーズが設定されている場合、各フェーズのステータスと時間を示すモジュールが、以前のものに加えて作成される。 Global time、各フェーズのタイムモジュールの合計である必要はないことを知っておくことが重要である。 Global time、ブラウザが開いたり閉じたりするのに使われる時間も含まれるからです。

パフォーマンス・データに関しては、サイトに到達するまでの各操作にかかった時間をミリ秒単位で示している。 この場合、以下のようになる:

  • URL stat DNS: URLのDNS解決にかかる時間。
  • URL stat TSSL: SSL接続の確立にかかる時間。
  • URL stat TST: 最初のバイトを受信するまでの時間。
  • URL stat TT: URLへのアクセスにかかる総トランザクション時間。
  • URL stat TTC: TCP接続時間。
  • URL stat TTCP: 接続がデータ転送可能になるまでの時間。
  • URL status: URLへの接続が可能かどうかを監視する。

これらのモジュールでも、他のモジュールと同様に、アラートレポート、その他の Pandora FMS メニューを作成することができます。

エージェントには、WUX データ専用のビューもあります。 それは、右上のタブで見つけることができます:

ダッシュボード用のウィジェットに加え、WUXモジュールに特化したウィジェットが用意されています:

上記の録画は単純な録画です。 録画が異なるフェーズに分割されるように設定されている場合は、WUXデータビューでも区別されます:

ウィジェットも同じだ:

最後に、ウェブからデータをキャプチャすることも可能である(webscrapping)。

手動実行(エージェントから、プラグインとして)

For manual execution you may configure a EndPoint within Pandora FMS server itself that hosts the Selenium 4 plugin to perform these executions and to generate XML files for each one of them, to obtain different agents, each one with its corresponding modules.

手動で実行するには、Pandora FMS サーバ自体に Selenium 4 プラグインをホストする エンドポイント を設定して実行し、それぞれに対して XML ファイルを生成して、それぞれに対応するモジュールを持つ異なるエージェントを設定できます。

To do this, the Selenium 4 plugin may be configured as an agent plugin using absolute paths, so that the path to the plugin file and the necessary configuration files may be indicated.

これを行うために、Selenium 4 プラグインは、プラグインファイルへのパスと必要な設定ファイルを示すことができるように、エージェントプラグインとして 絶対パス を使って設定することができます。

Selenium 4を使用してエージェントプラグインを設定するために使用できるテンプレートは次のようになります:

module_plugin /var/spool/pandora/data_in/discovery/pandorafms.selenium.4/bin/pandora_selenium -c /path/to/configuration/file -s /path/to/side/file -t task_name -i agent_interval -g ID_group -x

タスクのコンフィギュレーション・ファイルとマシンにロードされた.SIDEファイルは、あらかじめ手作業でコンフィギュレーションする必要があることを考慮に入れることが重要である。

設定ファイルを準備するには、“パラメータと設定 “セクションに進み、記入するデータテンプレートが配置されています。 .SIDE ファイルの場合、Selenium IDE 拡張機能によって生成されたファイルをコピーするだけで十分です。

-xパラメーターは、後で処理するXML形式の実行データを生成するため、適用することが重要である。 ディスカバリーによるデフォルトの実行の場合、受信するデータ形式はJSONである:

If you wish, it is also possible to execute the plugin from a EndPoint that is not installed in the same server as Pandora FMS. For that, it is necessary to download locally in the server that hosts the EndPoint the .disk package of the plugin, rename it to modify its format to .zip and decompress the content to have access to the binary and to the rest of the files that it may need to work.

必要に応じて、Pandora FMS と同じサーバにインストールされていないエンドポイントからプラグインを実行することも可能です。そのためには、エンドポイントをホストしているサーバにプラグインの .disk パッケージをローカルにダウンロードし、名前を .zip に変更して内容を解凍し、バイナリと動作に必要なその他のファイルにアクセスできるようにする必要があります。

また、-x パラメータで XML 形式のデータを送信し、-S パラメータで XML を受信する Tentacle サーバの IP アドレスとポートを指定します。 実行は以下のようになります:

module_plugin /path/to/binary/file/pandora_selenium -c /path/to/configuration/file -s /path/to/side/file -t task_name -i agent_interval -g ID_group -x -S IP_address_Tentacle_server:Tentacle_port

このタイプの実行で生成されるXMLは、それぞれ異なるエージェントに対応するため、プラグインが実行されているエージェント内でモジュールがホストされないことを覚えておくことが重要です。

Finally, it should be noted that, although it is possible to perform this type of executions, either manually from the terminal or from the EndPoint, the recommendation is to always carry them out from PFMS Discovery section, since the original operation method is designed to work in this way, and the task configuration is considerably simpler.

最後に、このタイプの実行は、ターミナルから手動で実行することも、エンドポイントから実行することもできますが、元々自動検出で動作するように設計されておりタスク設定がかなり簡単になるので、常に PFMS 自動検出から実行することをお勧めします

短いパラメータ / 長いパラメータ 説明
-v

--verbose
オプション. プラグイン実行の進捗情報をSTDERRで表示する。
-c <task_configuration_file_path>

--conf <task_configuration_file_path>
実行されるタスクのコンフィギュレーション・ファイルへのパス
-s <side_file_path>

--side <side_file_path>
実行されるSIDEファイルへのパス
-t <task_name>

--task <task_name>
タスクの固有名. これは、同じコンピューター上で実行されている他のタスクのエレメントを上書きしないように、一時的なエレメントを生成するために使用される。
-i <agents_interval>

--interval <agents_interval>
オプション. プラグインが生成するエージェントの監視間隔。 デフォルト: 300.
-g <group_id>

--group <group_id>
オプション. プラグインによって生成されたエージェントを作成したいグループのID。 デフォルト: 0.
-x

--xml_mode
オプション. 指定された場合、プラグインはSTDOUT出力を通してではなく、エージェントのためにXMLファイルを生成します。
-S <server:port>

--server <server:port>
オプション. XML によるエージェントの生成 XMLファイルを送信するTentacleサーバのIPアドレスとポート。
-T <temp_folder>

--temp <temp_folder>
オプション. XML によるエージェント生成用。 指定された Tentacle サーバに送信する前に生成される XML ファイルの一時ディレクトリ。

設定ファイル (--conf)

{
"worker_mode" : "<local | remote>",
"run_mode" : "<driver | docker>",
"browser" : "<chrome | firefox>",
"driver_url" : "http://<selenium_ip>:<selenium_port>/wd/hub",
"ssh_address" : "<ssh_ip>",
"ssh_port" : "<ssh_port>",
"ssh_user" : "<ssh_user>",
"ssh_password" : "<ssh_password>",
"ssh_password_encrypt" : "<1 | 0>",
"ssh_temp_folder" : "<ssh_temp_folder_path>",
"docker_image": "<docker_image>",
"chromedriver_path": "<chromedriver_path>",
"chrome_binary_path": "<chrome_binary_path>",
"chrome_user_data_dir" : "<chrome_user_data_dir>",
"chrome_profile" : "<chrome_profile>",
"geckodriver_path": "<geckodriver_path>",
"firefox_binary_path": "<firefox_binary_path>",
"firefox_profile" : "<firefox_profile>",
"accept_insecure_certs" : "<1 | 0>",
"monitor_stats" : "<1 | 0>",
"browser_width" : "<width>",
"browser_height" : "<height>",
"global_timeout" : "<seconds>",
"wait_between_commands" : "<seconds>"
}

コンフィギュレーションの各要素:

worker_mode トランザクションがローカルで開始されるか、リモートで開始されるかを示す。
run_mode プラグインをドライバで実行するか、Dockerで実行するかを示す。
browser トランザクションに使用されるウェブブラウザを示す。
driver_url トランザクションを実行する Selenium 4 サーバーへの URL を示します。
remote/driverモードのみ。
ssh_address プラグインを実行するためにSSHで接続するサーバーのIPアドレスを示します。
remote/dockerモードのみ。
ssh_port オプション.
SSH接続のポート番号を示す。
デフォルト: 22.
remote/dockerモードのみ。
ssh_user SSH接続のユーザーを指定します。
remote/dockerモードのみ。
ssh_password ユーザーのパスワードを示す ssh_user.
remote/dockerモードのみ。
ssh_password_encrypt オプション.
上記のパスワードが暗号化されて送信されるか(1)、されないか(0)を示す。
remote/dockerモードのみ。
Pandora FMS Discovery サーバからプラグインを実行することで、パスワードを暗号化できます。
ssh_temp_folder オプション.
SSHサーバーでの実行中に必要なファイルの一時ディレクトリへのパスを指定します。
デフォルト: /tmp.
remote/dockerモードのみ。
docker_image オプション.
トランザクションを実行するDockerイメージの名前を示す。
デフォルト: pandorafms/pandora_selenium_headless.
docker モードのみ。
chromedriver_path オプション.
chromedriverバイナリのパスを指定する。1)
local/driver モードのみ。
chrome_binary_path オプション.
Google Chromeのバイナリへのパスを指定します。2)
local/driverモードのみ。
chrome_user_data_dir オプション.
使用するGoogle Chromeのデータディレクトリ(data_dir)へのパスを指定します。
chrome_profile オプション.
使用するGoogle Chromeのプロファイル名を指定します。
data_dir内になければならない。
指定しない場合は、ブラウザのデフォルト・プロファイルが使用されます。
geckodriver_path geckodriver バイナリへのパスを指定する。3)
local/driverモードのみ。
firefox_binary_path Mozilla Firefoxのバイナリへのパスを指定します。4)
local/driverモードのみ。
firefox_profile オプション.
使用するMozilla Firefoxプロファイル・ディレクトリへのパスを指定します。
指定しない場合は、ブラウザのデフォルト・プロファイルが使用されます。
accept_insecure_certs オプション.
1」に設定すると、取引中にアクセスしたURLの安全でないSSL証明書は、自動的に有効な証明書として受理されます。
monitor_stats オプション.
1で指定された場合、指定されたSIDEファイルのメインURLに接続統計モジュール㏄を生成する。
browser_width オプション.
トランザクションのウェブブラウザの幅をピクセル単位で示す。
デフォルト: 1920.
browser_height オプション.
トランザクションのブラウザの高さをピクセル単位で示す。
デフォルト: 1080.
global_timeout オプション.
プラグインが実行するタスクのグローバルタイムアウトを秒単位で示します。
また、Seleniumコマンドが実行される際のデフォルトのタイムアウトでもあります。
デフォルト: 5.
wait_between_commands オプション.
プラグインがSIDEコマンドを実行するまでの待機時間を秒単位で示します。
この値はSIDE本体でsetSpeedコマンドにより調整可能。
デフォルト: 0.

例えば、こうだ:

{
    "worker_mode" : "local",
    "run_mode" : "driver",
    "browser" : "chrome",
    "driver_url" : "",
    "ssh_address" : "",
    "ssh_port" : "",
    "ssh_user" : "",
    "ssh_password" : "",
    "ssh_password_encrypt" : "",
    "ssh_temp_folder" : "",
    "docker_image": "",
    "chromedriver_path": "",
    "chrome_binary_path": "",
    "chrome_user_data_dir" : "",
    "chrome_profile" : "",
    "geckodriver_path": "",
    "firefox_binary_path": "",
    "firefox_profile" : "",
    "accept_insecure_certs" : "0",
    "monitor_stats" : "1",
    "browser_width" : "1920",
    "browser_height" : "1080",
    "global_timeout" : "10",
    "wait_between_commands" : "0.2"
}

The following custom commands may be configured to generate additional modules (all custom commands must begin with //):

追加のモジュールを生成するために、次のカスタムコマンドを設定できます (すべてのカスタムコマンドは // で始まる必要があります)。

//phase_start:<phase_name> It indicates the beginning of a stage, which will
last until another //phase_start command is found
or until the end of the test.
This will generate a module with the status of the stage and another module with the time it has taken to complete.
For example: //phase_start:Login
//getValue;<module_name>;<module_type>;<regexp> It generates a module with content from the web page
which may be obtained by means of a regular expression
from the source code of the web page.
For example:
//getValue;Temperature;generic_data;<span class="temperature">(\d+\.*\,*\d*).*</span>
You would get the temperature indicated on a web page with this line in its source code:
<p> The temperature of the solar panel is: <span class="temperature">54 º C</span></p>
//getVariable;<module_name>;<module_type>;<variable> It generates a module with the content
of a variable stored in the SIDE with the following store commands.
For example:
//getVariable;List count;generic_data;listCount
//getScreenshot;<module_name> It generates a module with a screenshot of the current browser.
For example:
//getScreenshot;URL home
//phase_start:<phase_name> フェーズの開始を示す。このフェーズは、別の//phase_startコマンドが見つかるか、 テストが終了するまで続く。
これは、フェーズのステータスを示すモジュールと、完了までにかかった時間を示す別のモジュールを生成する。
例: //phase_start:Login
//getValue;<module_name>;<module_type>;<regexp> ウェブページのソースコードから正規表現で得られるウェブページの内容を含むモ ジュールを生成する。
例:
//getValue;Temperature;generic_data;<span class="temperature">(\d+\.*\,*\d*).*</span>
ソースコードにこの行があるウェブページでは、温度が表示される:
<p> The temperature of the solar panel is: <span class="temperature">54 º C</span></p>
//getVariable;<module_name>;<module_type>;<variable> 以下のstoreコマンドで、SIDEに格納された変数の中身をモジュールとして生成する。
例:
//getVariable;List count;generic_data;listCount
//getScreenshot;<module_name> 現在のブラウザのスクリーンショットを含むモジュールを生成します。
例:
//getScreenshot;URL home

プラグインで実行可能なSIDEファイルのコマンドは以下の通りです(使用方法についてはSelenium IDEのドキュメントを参照してください):

addSelection
answerOnNextPrompt
assert
assertAlert
assertChecked
assertConfirmation
assertEditable
assertElementPresent
assertElementNotPresent
assertNotChecked
assertNotEditable
assertNotSelectedValue
assertNotText
assertPrompt
assertSelectedValue
assertSelectedLabel
assertText
assertTitle
assertValue
check
chooseCancelOnNextConfirmation
chooseCancelOnNextPrompt
chooseOkOnNextConfirmation
click
clickAt
close
do
doubleClick
doubleClickAt
dragAndDropToObject
editContent
else
elseIf
executeScript
executeAsyncScript
forEach
if
mouseDown
mouseDownAt
mouseMoveAt
mouseOut
mouseOver
mouseUp
mouseUpAt
open
pause
removeSelection
run
runScript
select
selectFrame
selectWindow
sendKeys
setSpeed
setWindowSize
store
storeAttribute
storeJson
storeText
storeTitle
storeValue
storeWindowHandle
storeXpathCount
submit
times
type
uncheck
verify
verifyChecked
verifyEditable
verifyElementPresent
verifyElementNotPresent
verifyNotChecked
verifyNotEditable
verifyNotSelectedValue
verifyNotText
verifySelectedLabel
verifySelectedValue
verifyText
verifyTitle
verifyValue
waitForElementEditable
waitForElementNotEditable
waitForElementNotPresent
waitForElementNotVisible
waitForElementPresent
waitForElementVisible
waitForText
webdriverAnswerOnVisiblePrompt
webdriverChooseCancelOnVisibleConfirmation
webdriverChooseCancelOnVisiblePrompt
webdriverChooseOkOnVisibleConfirmation
while

Pandora FMSでウェブスクラッピングを行うことは、複雑なトランザクションのパフォーマンスや結果を測定するために設計されたものですが、実現可能です。

ウェブスクレイピングとは、ウェブサイトから情報を自動で抽出する技術である。 手作業でデータを収集する代わりに、プログラムやスクリプトを使ってウェブページを閲覧し、関連する情報を特定してデータベースや構造化ファイルに保存する。

ここで説明されていることは、ディスカバリーモードのWUX(Selenium 4のみ)と、サーバー統合モードのWUX(バージョン777またはそれ以前)、Selenium 3の両方で使用できます。

最も簡単な方法は、Web ページ ID から直接値を取得する方法(Selenium コンソール拡張のインスペクタを使用し、それを Pandora FMS に渡す)か、正規表現を使って HTML データを処理する方法です。 どちらの場合も、Selenium トランザクションに追加のコマンドを導入する必要があります。

例えば、ウェブスクラッパーとして使用し、Amazon Store®の商品の評価数を読み取り、値のキャプチャを使用して変数に格納します:


これはREVIEWという変数にTEXTという型として格納される。 そして、その変数の値を表示するための追加コマンドechoが作成される:


ここでは、Seleniumエクステンションによって生成された.sideコードの最後の2つのステップを見ることができる:

{
  "id": "55546183-fc2f-45b5-af7e-2ff27464798f",
  "comment": "",
  "command": "storeText",
  "target": "css=.a-spacing-medium > .a-size-base",
  "targets": [
    [
      "css=.a-spacing-medium > .a-size-base",
      "css:finder"
    ],
    [
      "xpath=//div[@id='cm_cr_dp_d_rating_histogram']/div[3]/span",
      "xpath:idRelative"
    ],
    [
      "xpath=//span/div/div/div/div/div/div[3]/span",
      "xpath:position"
    ]
  ],
  "value": "REVIEW"
}
{
  "id": "69cd3cea-5981-4011-bb3d-88a1b58dc18e",
  "comment": "",
  "command": "echo",
  "target": "${REVIEW}",
  "targets": [],
  "value": ""
}

この方法の欠点は、テキスト文字列として保存されることである。ID(この場合はspan)を使うことで、そのIDのタグの間はすべて保存されるからである。

より “洗練された “方法で値を取得したい場合は、正規表現を使用したparseメソッドを使用してテキストを処理する必要があります:

  • この場合、Pandora FMS で数値が取得され、数値モジュールに変換されます。
  • .sideのソースコードとして、作成されたコマンドはこのようなコードに変換される。 二重引用符のような文字がどのようにエスケープ " または \ 文字になるかに注意することが重要である。
  • これを行うには、HTMLインスペクタを使って、値を取得したいコード領域を分析する必要がある:


タグの間にあるものを探す:

<span id="acrCustomerReviewText" class="a-size-base">''

そして

</span>

正規表現を適用すると次のようになる:

<span id="acrCustomerReviewText" class="a-size-base">(\d+) valoraciones</span>

これは、Selenium シーケンスの最後に「ダミー」コマンドを作成し(//でコメント)、getValueコマンドを使用して、AMZ_001generic_dataタイプ(つまり、数値)、およびエスケープされた regexp を提供するモジュールを作成することによって行わなければなりません:

{
  "id": "ae557b25-b096-4d6e-baa7-f7219ac16e04",
  "comment": "",
  "command": [
    "//getValue;AMZ_001;generic_data;",
    "<span id=\"acrCustomerReviewText\"",
    " class=\"a-size-base\">(\\d+) valoraciones</span>"
  ],
  "target": "",
  "targets": [],
  "value": ""
}

実行後は、従来の Pandora FMS データが返され、アラートを適用したり、グラフやレポートに含めたりすることができます。

このトランザクションは実際のブラウザを使用するため、特定のユーザーに接続し、必要なデータを最終的に取得するためにナビゲートすることもできる。

PDR は Windows でのみ動作するように設計されています。Pandora エージェントで実行されるとき プロセスモード で実行する必要があります。サービスモードでは動作しません。デスクトップセッションのブロックはできませんので、仮想マシンの利用をお勧めします。

事前準備:

  • デスクトップモード、自動起動、自動ログインでの Windows OS

設定には以下を実行します:

Windows10® より前のバージョンの場合:

control userpasswords2

“このコンピュータを使うにはユーザ名とパスワードが必要(Users must enter a user name and password to use this computer)” のチェックを外します。

ux5.jpg

Windows 10® の場合:

MS Windows® バージョン 10で自動起動を有効にする 1つの方法としては、Microsoft® ドキュメントの https://docs.microsoft.com/en-us/sysinternals/downloads/autologon ダウンロードセクション で入手可能な Sysinternals Powertoys を使用することです。そして、監視を実行するユーザを有効にします。次に例を示します。

環境設定するには、以下のディレクトリを作成します。

C:\PDR

https://pandorafms.com/library/pdr-cmd-for-ux-monitoring/ から入手した PDR.rar ファイルを C:\PDR へ展開します。

レコーダーを起動するには、以下のスクリプトを実行します。

C:\PDR\pdr

起動したら、レコーディング環境に入ります。

ux18.jpg

実行するアクションを選択し、それらを適用する領域でスクリーンショットを実行します。 以下に、最も一般的な例を示します。

一般的なアクション:

ux19.jpg

フロー制御アクション:

ux20.jpg

このスクリプト言語の詳細は、http://sikulix-2014.readthedocs.io/en/latest/index.html を参照してください。

プロジェクトが記録されると、次の要素を持つファイルが作成されます。

  • 自動実行コードを含んだ .py ファイル
  • ウェブブラウザ制御イメージ

実行の簡単な例としては、Windows の電卓が正しく動作するかどうかを確認します。 一度に1つずつスライドさせる方法を見てみましょう。

1. “click” アクションを選択し、アクションをしたいエリアを選択します。画面が “エリア選択” モードに変わります。

ux21.jpg

ux22.jpg

2. type アクションとテキスト “calc” を入力し、電卓が表示されるのを待ってクリックします。電卓が操作できるようになったら、次のようにアクションを入力します。

ux23.jpg

3. 関連する部分クリックし、以前と同様の領域を選択します。

4. 最後に、保存して Run をクリックして実行します。

重要な注意点:

  • 記録環境内の任意の画像をダブルクリックすると、クリックする場所を正確に選択するなど、コントロールキャプチャの詳細を調整できます。
  • オペレーティングシステムの遅延によって実行が停止しないように、各クリックの間に「待機」アクションを入力することを強くお勧めします。
  • レコーダーはスクリーンショットのような領域を探しますので、ボタンがその上に置かれているときに強調表示されているものがあれば特に注意する必要があります(たとえば、カーソルがそれらの上にあるときに電卓のボタンがオレンジ色に変わります)。

記録を保存したフォルダに、python ファイルと画像ファイルがあります。

ux24.jpg

注意:次のコードを使用して、PDR レコーディングエンジンからによるキャプチャ内容をカスタマイズできます。

## OPTIONAL ##capture file names
import shutil
file = "C:\probes\screenshot_prueba.sikuli.png"
focusWindow = App.focusedWindow()
regionImage = capture(focusWindow)
shutil.move(regionImage, file)

これは、指定したファイルに、指定した特定の時間のアクティブウインドウのスクリーンショットを作成します。 座標を使用してスクリーンショットをカスタマイズすることができます。次の構文を用います:

capture(x, y, w, h)

ここで、変数は以下の通りです。

X: horizontal position of the rectangle to take a screenshot on.

Y: vertical position of the rectangle to take a screenshot on.

W: Screenshot width.

H: Screenshot height.

X: キャプチャしたい領域の水平方向の位置

Y: キャプチャしたい領域の垂直方向の位置

W: キャプチャしたい幅

H: キャプチャしたい高さ

Pandora UX PDR でトランザクションセッションの記録

特別なセッションの記録は必要ありません。異なるスクリプトでセッションを記録するだけです。Pandora UX は、複雑なトランザクションの結果を返し整理します。次の段階では、正しく動作させるための実行の呼び出し方を見ていきます。

トランザクション処理を作成するために複数のレコーディングを行う場合は、記録時に探している要素が存在することに注意する必要があります。 単一のトランザクション処理ごとに、レコーディング内容を手動で実行することをお勧めします。手動で実行してみたあとに、アクションが期待どおりに行われるようにします。

次の例では、上記の例のプロセス次の段階を構成する記録プロセスを確認できます。電卓の結果をメモ帳にペーストします。以下に例を示します。

ux40.jpg

ここでは、テキストファイルを特定の場所に保存し、前のファイルを上書きするという別の手順を示します。これにより、柔軟性が大幅に向上し、並行してファイルの監視が可能になり、ヘビー級のデスクトップアプリケーションに対するさまざまな情報を扱えます。この 3つ目のシーケンス例は、以下のステップからなります。

ux43.jpg

標準実行

あらかじめ記録した PDR セッションを起動するには、pdr.cmd ファイルを置いた場所とともに動作モードを指定します。このファイルの引数は ”-r”、セッションガイドラインを含むファイル(-script)を指定し、スクリーンショットが保存されるディレクトリ(-folder)の指定は “\”で終了します。実行失敗時にスクリプトを再実行するための -retries オプションも利用できます。

次の実行では、スクリーンショットはアクティブウインドウのみが対象です。

pandora_ux_x64 -exe C:\PDR\pdr -args -r -script C:\pandora_ux\calculadora.sikuli -folder C:\pandora_ux\ -ss_config active -retries 3

次のモジュールが返されます。

  • UX_Time_project_name
  • UX_Status_project_name
  • UX_Control_Snapshot_project_name (初回の実行時のみ)

フェーズでエラーが発生した場合は、次のモジュールが作成されます。

  • UX_Snapshot_project_name

エラー時には、アクティブウインドウの画像が表示されます(-ss_config が有効な場合)。

正常時の実行結果例:

<module>
   <name><![CDATA[UX_Status_calculadora.sikuli]]></name>
   <type>generic_proc</type>
   <![CDATA[1]]>
   <description><![CDATA[C:\pandora_ux\calculadora.sikuli execution completed Control snapshot rebuild ]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
</module>
<module>
   <name><![CDATA[UX_Time_calculadora.sikuli]]></name>
   <type>generic_data</type>
   <![CDATA[20.204]]>
   <description><![CDATA[C:\pandora_ux\calculadora.sikuli execution completed Control snapshot rebuilt ]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_calculadora.sikuli</module_parent>
</module>
<module>
   <name><![CDATA[UX_Control_Snapshot_calculadora.sikuli]]></name>
   <type>async_string</type>
   <![CDATA[data:image/png;base64, IBCAIAAAAOCnfhAAAAAXNSR…/4x79e/7757f8H2C00s1C73yMAAAAASUVORK5CYII=]]>
   <description><![CDATA[Control image rebuilt]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_calculadora.sikuli</module_parent>
</module>

エラー時の実行結果例:

<module>
   <name><![CDATA[UX_Status_std.html]]></name>
   <type>generic_proc</type>
   <![CDATA[0]]>
   <description><![CDATA[Failed to execute verifyText]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
</module>
<module>
   <name><![CDATA[UX_Time_std.html]]></name>
   <type>generic_data</type>
   <![CDATA[15.463]]>
   <description><![CDATA[Failed to execute verifyText]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_std.html</module_parent>
</module>
<module>
   <name><![CDATA[UX_Snapshot_std.html]]></name>
   <type>async_string</type>
   <![CDATA[data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAA…JRU5ErkJggg==]]>
   <description><![CDATA[Image (last error)]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_std.html</module_parent>
</module>

すべて問題なければ、Windows マシンの Pandora FMS エージェントのプラグインとしてコマンド設定を行います。以下に例を示します。(1行です)

module_plugin C:\Users\artica\Documents\Product\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.bat -args -r -script C:\PDR\calc.sikuli -folder C:\PDR\ -ss_config active -checkpoint -post "taskkill /F /IM calc.exe"

ご覧の通り、実行にはオプションが追加されています。パラメータ –checkpoint は、エラーが無かったとしても最終結果のスクリーンショットを表示します。-post は、セッションの実行が完了した後にアクションを実行します。この場合、ウインドウを多重に開くなどを防ぐために、電卓のプロセスを終了します。

エージェントに module_plugin の設定ができたら、プロセスモードでの起動準備完了です。管理者権限のコマンドラインから以下を実行します。

"%ProgramFiles%\pandora_agent\PandoraAgent.exe" --process

“PandoraAgent.exe” の場所はインストールに依存します。

起動すると、どのようにアクションが記録に従って自動的に実行されるかを見ることができます。ここからは、エージェントのプロセスは終了してはいけません。 また、リモートデスクトップで開始したセッションや実行は中断してはいけません。マシンには触れない状態にしておきます。これが、仮想マシンが必要である理由です。

他の自動監視のテストがある場合、次のようにしてPandora FMS に読み込むことができます。

pandora_ux.64 -exe <exe of the automation system> -args <system arguments> -script <test file path>
  • <exe of the automation system>: exe (executable) of the automation system.
  • <system arguments>: System arguments.
  • <test file path>: Test file path.
  • <exe of the automation system>: 自動化システムの exe (実行可能ファイル)。
  • <system arguments>: システムの引数。
  • <test file path>: テストファイルのパス。

トランザクションベースの実行

いろいろな処理が記録され、正しく機能することが確認されたら、PDR で以下を実行します。

C:\Users\artica\Documents\Product\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -t calculadora_trans -script C:\PDR\calc.sikuli,C:\PDR\savecalc.sikuli,C:\PDR\savefile.sikuli -folder C:\PDR\ -ss_config active

見ての通り、-scrit のパラメータで新たなスクリプトの場所を指定する必要があるだけです。前のスクリプトとはカンマで区切ります。また、-t パラメータですべての異なるフェーズをカバーするトランザクションの名前を指定します。より多くのフェーズがあったとしても設定の考え方は同じです。以下に例を示します。

pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -t proceso_transaccional -script C:\PDR\script1,C:\PDR\script2,C:\PDR\script3,C:\PDR\script4 -folder C:\PDR\ -ss_config active

この例では、次の行をエージェントの設定ファイルに追加します。

module_plugin C:\Users\artica\Documents\Product\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -t calculadora_trans -script C:\PDR\calc.sikuli,C:\PDR\savecalc.sikuli,C:\PDR\savefile.sikuli -folder C:\PDR\ -ss_config active -checkpoint -post "taskkill /F /IM calc.exe"

-checkpoint パラメータで、それぞれのフェーズの最終スクリーンショットを Pandora コンソールに表示することができます。

フェーズごとに、以下のモジュールが返ります。

  • UX_Time_project_name.phase_order
  • UX_Status_project_name.phase_order

フェーズでエラーになった場合は、次のモジュールが作成されます。

  • UX_Snapshot_project_name.phase_order

エラーの場合は、エラーが発生した時点の画像が表示されます。

次の名前で全体のまとめのモジュールも返されます。

  • UX_Global_Time_project_name
  • UX_Global_Status_project_name
  • UX_Global_Snapshot_project_name

エージェントがプロセスモードで動き、モジュールを Pandora FMS が受け取ると、コンソールで見ることができます。繰り返しになりますが、階層モード で、モジュール間の関係とフェーズ間の区切りがわかりやすく表示されます。

ux41.jpg

フェーズとタイムチャートの詳細は、トランザクションの画面で見ることができます。

ux42.jpg

エラーのスクリーンショットは、UX クライアント(PWR)と PWR サーバが共に同じマシンで動作しているときにのみ表示されます。そうでない場合は、Pandora で画像を表示するために、PWR サーバの画像配布ディレクトリがクライアントからアクセスできる必要があります。

同じモジュールを使用して、アラートを作成し、システムの時間経過に伴う変化を表示するために、履歴表示やグラフ生成ができます。

システムを再起動したときなどに実行の中断を避けるために、システムが起動したときに、Pandora エージェントをプロセスモードで起動させるプログラムタスクを作成することと、パスワード無しでマシンへ自動ログインし、エージェントが確実に実行されるようにすることをお勧めします。

ux26.jpg

ux27.jpg

ux28.jpg

ux29.jpg

ux30.jpg

ux31.jpg

ux32.jpg

これにより、対象の Windows インスタンスでは、マシンが再起動しても Pandora FMS エージェントが常にプロセスモードで実行され、常にPDR プローブによって収集されたデータを送信できることが保証されます。

さまざまなデスクトップシステムでは問題が発生する可能性があります。そのため、前述の設定を使い、デスクトップモードで自動起動を単一のデスクトップ使用することをお勧めします。

Pandora FMS ドキュメント一覧に戻る


1)
デフォルト:
/usr/share/pandora_server/util/selenium_headless_drivers/chromedriver.
2)
デフォルト:
/usr/share/pandora_server/util/selenium_headless_drivers/chrome/google-chrome.
3)
デフォルト:
/usr/share/pandora_server/util/selenium_headless_drivers/geckodriver.
4)
デフォルト:
/usr/share/pandora_server/util/selenium_headless_drivers/firefox/firefox.
  • ja/documentation/pandorafms/monitoring/13_user_monitorization.txt
  • 最終更新: 2025/07/19 22:47
  • by junichi