ユーザエクスペリエンス監視は、ウェブブラウジング (PWR / WUX) と Windows システムのデスクトップアプリケーション (PDR) における操作を自動的に記録する仕組みから成ります。これらの記録は、ブラウザ上でのマウスクリック、テキスト入力、ウェブブラウジングでの検索、デスクトップ上でのアプリケーションを開くことなどです。記録した処理を自動的に実行し、処理にかかった時間などの結果を得ることができます。これにより、後で結果を検索して実行できるように自動的に記録することができます。
両方の監視の仕組みは、Pandora Web Robot Daemon (PWRD) システムを通してウェブブラウジングタスクを実行するために利用されます。
UX システムは、マシンにインストールされたソフトウエアエージェントによって監視を実現します。WUX は、Pandora FMS の内部に統合されたサーバを用いて監視をします。
Pandora Web Robot Daemon (PWRD) は、ウェブブラウジングセッションを自動実行するために必要なサービスです。これは、ユーザの Web ポータルをナビゲートするのに必要なアクションのリストを含むファイルを使用します。
加えて、UX 監視は、Windows デスクトップおよびシステムアプリケーションの自動化タスクを実行することができます。このタイプのタスクは、WUX では実行できません。
Pandora FMS UX は、自動化されたタスクを実行するシステムであり、Pandora FMS に実行結果、所要時間、およびエラーが検出された可能性のあるスクリーンショットを含むレポートを提供します。
UX 向けの Pandora FMS PWR テクノロジーは、ウェブサイトの閲覧、ユーザアクションのシミュレーションを可能にします。 コンテンツ、テキストなどを確認できます。これは、非フラッシュベースの Web サイトおよびアプリケーションを監視するのに最適です。利点としては、より高速でバックグラウンドで実行できることです。
タスクの自動化システムがある場合、Pandora FMS UX では、すでにあるスクリプトを実行し、その実行を監視することもできます。
どのタイプの監視を行うかを指定することが重要です。 どちらの方法も、対応するマシンにインストールされているソフトウェアエージェントのプラグインによる監視実行に基づいています。
ウェブトランザクションの実行には、Selenium エンジンを利用します。
UX および WUX 監視の違い を考慮して、UX の監視は、監視対象の環境に関連する一連の前提条件に従う必要があります。
事前に保存されたセッションの標準的な実行には、Pandora UX プラグインの最新バージョン 28-04-2022 を使用します。
WUX サーバでの Selenium デプロイでは、コンテナベースのスタックを使用して、迅速なデプロイと容易なスケーリングを実現します。
DockerとDocker Compose が事前にインストールされている必要があり、CentOS を基本オペレーティングシステムとして使用することをお勧めします。
このインストールは、以下にある Docker ドキュメントに従うことをお勧めします。
公式 Selenium イメージは、スタックのインストールと展開に使用されます。 それらは次の場所で見つけることができます。
Selenium リポジトリでは、ブラウザを使用したさまざまなイメージがあります。Pandora FMS の場合は、Firefox® および Chrome® コンテナを推奨します。
Selenium スタックをデプロイするには、まず必要な構成を含む YAML ファイルを作成する必要があります。
# To execute this docker-compose yml file use `docker-compose -f up` # Add the `-d` flag at the end for detached execution version: "3" services: selenium-hub: image: pandorafms/pandorafms-selenium-hub mem_limit: 2G container_name: selenium-hub-v3 logging: driver: "json-file" options: max-file: "5" max-size: "4m" mode: "non-blocking" environment: - TZ=Europe/Amsterdam ports: - "4444:4444" chrome: image: pandorafms/pandorafms-selenium-node-chrome mem_limit: 2G volumes: - /dev/shm:/dev/shm depends_on: - selenium-hub logging: driver: "json-file" options: max-file: "5" max-size: "4m" mode: "non-blocking" environment: - TZ=Europe/Amsterdam - HUB_HOST=selenium-hub - HUB_PORT=4444 firefox: image: pandorafms/pandorafms-selenium-node-firefox mem_limit: 2G volumes: - /dev/shm:/dev/shm depends_on: - selenium-hub logging: driver: "json-file" options: max-file: "5" max-size: "4m" mode: "non-blocking" environment: - TZ=Europe/Amsterdam - HUB_HOST=selenium-hub - HUB_PORT=4444
前の例に対して、メモリ制限、タイムゾーン、ノード数など、ケースごとに必要な変更を行います。
設定した内容でコンテナを有効化するには、次のコマンドを実行します。(<compose-file>
は、選択した名前に置き換えてください。)
docker-compose -f <compose-file> up -d
コンテナで実行されているサービスを確認する必要がある場合は、次のコマンドを使用します。
docker-compose -f <compose-file> ps
Selenium サービスの状態とログを表示するには、次のコマンドを使用します。
docker-compose -f <compose-file> logs
適切なチェックが行われた後、グリッドが適切に機能し、ワーカーが設定ファイルでの定義どおりにサインアップしたことを確認するには、次のURLにアクセスします。
http://<ip_selenium_server>:4444/grid/console
ワーカー数を増やす必要がある場合は、次のコマンドを実行します。
docker-compose -f <compose-file> scale chrome=X firefox=Y
集中モード(WUX)を使用するには、Pandora FMS サーバに以下の設定を適用する必要があります。
選択したモードに関係なく、WUX サーバ設定パラメータを Pandora FMS サーバの設定ファイルに追加することにより、ブラウジングセッションから実行の割り当てができます。
ファイル/etc/pandora/pandora_server.conf
の最後に次の設定を追加します(<ip_wux_host>
をサーバの IPアドレスに置き換えます。Pandora FMS が動作しているのと同じサーバの場合は、127.0.0.1
です。):
wuxserver 1 wux_host <ip_wux_host> wux_port 4444
Pandora FMS サーバの設定ファイルには、キューに入れられたナビゲーションセッションを削除するための新しいトークンがあります。
clean_wux_sessions 1 #(default)
wuxserver
スレッド管理は、pandora_server
サービスを起動した際に自動的に行われます。wuxserver
スレッドの数は 2 になります。
各スレッドは、wuxserver
から Selenium hub に同時に送信できるセッションを示していることに注意してください。
Microsoft ブラウザに対して Web トランザクションを起動する必要がある場合は、目的の Windows バージョンのマシン(物理または仮想)を設定し、以下の公式ドキュメントに従ってドライバーを設定する必要があります。
Internet Explorer ドライバインストールドキュメント:
github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver
32bit のバージョン 3.141 のドライバの利用をお勧めします。64bit 版はパフォーマンスの問題があります。
Microsoft Edge ドライバーインストールドキュメント:
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Selenium を実行するには、Java が Windows デバイスにインストールされている必要があります。
Java がインストールされているかどうかを確認するには、次のコマンドを実行します。
java -version
次のような出力が得られます。
サーバをローカルで実行してグリッドに登録するには、Selenium JAR ファイルも必要です。
以下から入手できます。
https://www.selenium.dev/downloads/
Microsoft Edge サーバを有効化にするには、JAR ファイルがあるディレクトリのターミナルで次を実行する必要があります。
java -jar selenium-server-standalone-<VER>.jar -port 5555 -role node -hub http://<ip_selenium_server>:4444/grid/register -browser "browserName=MicrosoftEdge, platform=WINDOWS, maxInstances=1"
このコマンドは Internet Explorer サーバを有効化するのと似ていますが、ダウンロードしたドライバーのパスを指定する必要があります。
java -Dwebdriver.ie.driver=<PATH>IEDriverServer.exe -jar selenium-server-standalone<VER>.jar -port 5555 -role node -hub http://ip_selenium_server:4444/grid/register -browser "browserName=internet explorer, platform=WINDOWS, maxInstances=1"
Windows ファイアウォールは、コマンド実行時に指定されたポートの通信を許可するように設定する必要があります。例では 5555 および 4444。
Selenium 2 で作成された記録は正しく機能しない場合があることに注意してください。
Selenium バージョン 3 では、新旧両方の記録の両方がサポートされます。
新しいセッションを記録するには、目的のブラウザに Selenium IDE 拡張機能をインストールする必要があります。
Firefox
https://addons.mozilla.org/ja/firefox/addon/selenium-ide/
Chrome
https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd
次のアイコンは、拡張機能をインストールしたあとに表示される、記録を開始するアイコンです。
新しい記録プロジェクトを開始するためのメニューが開きます。
記録が行われると、次のような結果になります。
Pandora FMS には、Selenium の機能とは別に、監視対象から情報を取得するためのカスタムコマンドがあります。
利用可能なコマンドの一覧は、こちら を確認してください。
次に、Selenium IDE とのトランザクションを記録し、最も複雑なコマンドを Pandora FMS と統合するための、一連の推奨事項とアドバイスについて詳しく説明します。
さらに、xpath を使用すると、ページのタグ内のテキストを検索して、より動的なレコーディングができます。上記のキャプチャでは、特定のロケータではなく、ページのすべてのスパンタグで “Monitoring Innovators” というテキストを検索する xpath を使用できることがわかりました。
Pandora Web Robot Daemon は、ユーザーの Web アクセスをナビゲートするために必要なアクションのリストを含むファイルを使用して、Webブラウザセッションを自動化するツールを提供するサービスです。
Pandora サーバに統合され、Enterprise サーバ(Linux) またはモジュールライブラリ(Windows) のインストール時に /usr/share/pandora_server/util/pwrd
に置かれています。または、モジュールライブラリからダウンロードできます(Windows)。
ダウンロードは、 https://pandorafms.com/library/pandora-ux-and-wux-pwr-recorder/ から行います。
以下が含まれます。
事前準備:
C:\PWR
PWR_Server.zip のダウンロードは、 https://pandorafms.com/library/pwr-server-for-ux-monitoring/ から行います。
ファイルの展開:
プロファイルを使用してチェックを実行することは必須ではありませんが、プロキシを使用する場合や、パスワードのオートコンプリートを使用する場合は特に推奨します。 Firefox のプロファイルを作成するには、次のようにします。
ディレクトリを選択します。
プロキシやポップアップなどのオプションを設定するために、新たなプロファイルで Firefox を起動します。
次に、提供された BAT ファイル service_installer.bat を実行してサービスをインストールします。 service_installer.bat が正しく機能するように、内容を変更し、存在するパスにインストールされるようにします。たとえば、Java は、PATH が正しく構成されている場合にのみ動作します。それ以外の場合は、ファイル内にフルパスを指定する必要があります。 最後に、サービスを開始します。
net start PWRSRV
Selenium サーバが起動します。デバッグのために(サービスを中断した時は)手動でも実行できます。 次のコマンドを使います。
java -jar C:\PWR\server\selenium-server-standalone-2.53.0.jar -firefoxProfileTemplate C:\PWR\profile -port 4444 -v
事前準備:
PWRD デーモンの Selenium コンポーネントは Java を要求します。以下のようにインストールします。
yum install java
PWRD で、Linux サーバで Firefox を起動できるようにするには、仮想グラフィック環境を作成するために xorg-x11-server-Xvfb, gtk2 and gtk3 をインストールする必要があります。
yum install xorg-x11-server-Xvfb gtk2 gtk3
リポジトリに無い場合は、rpm ファイルは以下から入手できます。
rpm パッケージを手動でインストールするには次のようにします。
yum install xorg-x11-server-Xvfb-1.15.0-22.el6.centos.x86_64.rpm yum install gtk2-2.24.31-1.el7.x86_64.rpm
必要なパッケージのインストールをしたら、install_pwrd.sh のインストールに進みます。デフォルトのパスは、 /usr/share/pandora_server/util/pwrd/install_pwrd.sh で、次のように実行します。
cd /usr/share/pandora_server/util/pwrd/ ./install_pwrd.sh --install
インストールが完了したらサービスを開始します。
/etc/init.d/pwrd start
以下のスクリプトで Selenium サーバを起動できます。
#!/bin/sh # Monitoring selenium process if [[ "`ps aux |grep selenium ]]; then exit else if [[ "`ps aux |grep Xvfb ]]; then Xvfb :99 -ac & export DISPLAY=:99 fi export DISPLAY=:99 java -jar /usr/share/pandora_server/util/pwrd/selenium-server-standalone-2.53.1.jar & fi
または、手動で以下のコマンドを実行します。
$ Xvfb :99 -ac & -> Press Enter to continue $ export DISPLAY=:99 $ java -jar /usr/share/pandora_server/util/pwrd/selenium-server-standalone-2.53.1.jar -port 4444 &
バージョン 730 以降では、デフォルトのインストールとは異なるユーザとディレクトリでカスタムインストールを実行できるようになりました。
PWRD 動作モード
PWRD には複数の動作モードがあります。
Standalone モードの PWRD は、デーモンを起動し、WUX サーバを通してユーザが指示したアクションを実行できるようになります。
起動:
/etc/init.d/pwrd start
状態確認:
/etc/init.d/pwrd status
停止:
/etc/init.d/pwrd stop
HUB モードは、ロードバランサーとしてデーモンを起動します。この動作モードでは、システムに登録されたすべてのノード間で負荷をバランシングし、負荷に応じてセッションの実行割り当てをします。
HUB の管理コンソールにアクセスすることにより、HUB の状態を常に確認することができます。
http://<ip_addr_HUB>:4444/grid/console
起動:
/etc/init.d/pwrd start-hub
状態確認:
/etc/init.d/pwrd status-hub
停止:
/etc/init.d/pwrd stop-hub
新たな PWRD ノードを追加するには、以下が必要です。
この動作モードでは、サービスはキューに入れられた HUB からのすべての要求を処理し、実行結果を返します。 HUB のみが WUXServer との通信を行い、アクションの実行は透過的です。
起動および HUB への登録。“hub” の部分は PWRD HUB のサーバ IP に置き換えてください:
/etc/init.d/pwrd start-node http://hub:4444/grid/register
状態確認:
/etc/init.d/pwrd status-node
停止:
/etc/init.d/pwrd stop-node
Firefox のデフォルトの CA に含まれていない、自己証明書や CA による証明書を必要とする Web ページの監視を行うこともできます。そのような場合、利用する Firefox のプロファイルに証明書を読み込ませる必要があります。
それには、グラフィカルな環境でブラウザを起動し、URL にアクセスし SSL 証明書を追加するのが一番簡単です。以下に Windows および Linux でのその方法を説明します。
Windows システムにデプロイした PWRD の場合
この場合、GUI 環境があるのでチェック用のプロファイルを使って Firefox ブラウザを起動するだけです。
起動したら、アップロードする証明書を使用して URL にアクセスし、ブラウザの例外として追加します。
別の方法として、SSL 証明書を設定するには、Firefox のオプション、“Privacy & Security” タブにアクセスし、“Query OCSP responder servers to confirm the current validity of certificates” のチェックを外します。
Linux システムにデプロイした PWRD の場合
一般的に、Linux サーバがインストールされている場合、グラフィカルなデスクトップ環境は含まれていません。前のケースと同じ手順を実行するには、X を GUI 環境を持つコンピュータにリダイレクトする必要があります。
PWRD サーバから “-X” オプションをつけて SSH 接続をするだけで十分であるため非常にシンプルです。
ssh -X user@pwrd_ip_address
その後、Firefox ブラウザを起動すると、デスクトップに画面表示されます。
firefox -p
デフォルトのインストールでは、デフォルトのプロファイルのみ見ることができます。Windows へのインストールの場合と同様に、新しいプロファイルを作成して使用することをお勧めします。
プロファイルが /opt/firefox_profile 以外にある場合、PWRD の起動スクリプト /etc/init.d/pwrd でプロファイルのパスを指定するように編集する必要があります。
PWROPTS=" -firefoxProfileTemplate /path/to/profile/folder"
プロファイルを作成したら、ブラウザを起動します。
起動したら、アップロードする証明書を使って URL にアクセスし、ブラウザの例外として追加します。
他の方法として、SSL 証明書を受け入れたい場合は、Firefox の “Advanced > Certificates” タブのオプションへアクセスし、“Query the OCSP respondent servers to confirm the current validity of the certificates” を選択します。
Windows の場合、リダイレクトを行えるようにするために、Xming などの X サーバをインストールする必要があります。インストールして起動すると、X のリダイレクトができるようになります。
SSH Putty クライアントを用いて、接続前に “Connection > SSH > X11” にアクセスします。そして “Enable X11 forwarding” がチェックされ、“X display location” が “localhost:0” になっていることを確認します。
そして、“Session” セクションに戻り、接続を確立します。
接続したら、PWRD サーバ上で Firefox ブラウザを起動すると、Windows デスクトップでその画面を見ることができます。
firefox -p
デフォルトのインストールでは、デフォルトのプロファイルのみ見ることができます。Windows へのインストールの場合と同様に、新しいプロファイルを作成して使用することをお勧めします。
プロファイルが /opt/firefox_profile 以外にある場合、PWRD の起動スクリプト /etc/init.d/pwrd でプロファイルのパスを指定するように編集する必要があります。
PWROPTS =" -firefoxProfileTemplate /path/to/profile/folder"
プロファイルを作成したら、ブラウザを起動します。
起動したら、アップロードする証明書を使って URL にアクセスし、ブラウザの例外として追加します。
他の方法として、SSL 証明書を受け入れたい場合は、Firefox の “Advanced > Certificates” タブのオプションへアクセスし、“Query the OCSP respondent servers to confirm the current validity of the certificates” を選択します。
選択したモードにかかわらず、一度起動すると、Pandoraサーバーの設定ファイルに WUXServer の設定パラメータを追加して、ブラウジングセッションの実行の割り当てを開始できます。
PWRD サーバーを Pandora FMS サーバと同じサーバに配置するのであれば、次の設定を追加します。(/etc/pandora/pandora_server.conf
へ追加します)
wuxserver 1 wux_host 127.0.0.1 wux_port 4444 wux_timeout 30
wux_timeout
パラメーターで最大トランザクション時間を 30秒に設定していますが、必要に応じて、この値を環境に合わせて調整します。
PWRD を hub モードで利用する場合:
wuxserver
スレッド管理は、pandora_server
サービスを起動した際に自動的に行われます。wuxserver
スレッドの数は 2 になります。
各スレッドは、wuxserver
から Selenium hub に同時に送信できるセッションを示していることに注意してください。
Selenium 3 で実装された、新たなバージョンの Selenium IDE は、Pandora FMS バージョン 745 以降で対応しています。Selenium 3 におけるトランザクションの記録には影響しません。
User experience 監視の前に、選択した技術タイプに応じて、適切なレコーディングシステムを使用してください。
Selenium 2 でのセッションの記録は、Firefox でのみ実施可能です。
PWR で操作を記録するには、モジュールライブラリにある PWRD レコーダーが必要です。
https://pandorafms.com/library/pandora-ux-and-wux-pwr-recorder/
以下が含まれています:
レコーダ PWR_recorder.exe を起動します。
PWR セッションの記録準備ができた状態で Firefox が自動的に起動します。
Selenium IDE にアクセスしたあと、あなたの操作のレコーディングを開始できます。
ここから、監視したいウェブサイトをブラウズし、それぞれのステップのアクションがレコーダーに現れます。
記録を停止するには、レコーダーの右上にある次のボタンを利用します。
処理が完了したら、ページのチェックを実施できます。たとえば、特定のテキストの存在を確認して、読み込まれたページが正しいことを確認できます。これには、記録を行っているときに、ブラウザウィンドウのテキスト部分を右クリックし、オプション verifyText を選択します:
テキストチェックアクションを示す新しいステップがレコーダに表示されます。
Play Entire test suite ボタンで全体の流れを再現し、一通り成功するか確認できます。
一連の動作を確認したら、それを保存します(File → Save Test Case)。 これが、Pandora コンソールで新たな Web 分析モジュールを作成するときにロードするファイルになります。
Pandora WUX は、ウェブサイトのブラウジング監視を、それぞれのステップを表す複数のモジュールに分割することができます。
新たなコントロールポイントを追加しフェーズモジュールを生成するには、フェーズを開始したい場所で右クリックします。
次のテキストをコメントとして書きます。
phase_start:<phase_name>
フェーズは、次のコメントまでに存在するすべてのコマンドと時間の結果を含みます。
phase_end:<phase_name>
phase_start と phase_end の間に実行されるすべてのコマンドが、一つのフェーズとして扱われます。
Selenium 2 で作成された記録は正しく機能しない場合があることを考慮してください。
あらかじめ記録した PWR セッションを起動するには、pandora_ux_x64.exe を実行します。これは、 https://pandorafms.com/library/user-experience-pandora-ux からダウンロードできます。
PWR 動作モードとセッションガイドラインを含んだファイルを選択します。エラーのスクリーンショットが、-folder パラメータで指定された場所に保存されます。実行に失敗したときに再実行するための -retries パラメータを利用することもできます。Windows での実行は次のようにします。
pandora_ux_x64.exe -exe PWR -script C:\tests\std.html -retries 3
次のモジュールが返ります。
正常実行結果例:
<module> <name><![CDATA[UX_Status_std.html]]></name> <type>generic_proc</type> <data><![CDATA[1]]></data> <description><![CDATA[Test OK]]></description> <tags>UX</tags> <module_group>UX</module_group> </module> <module> <name><![CDATA[UX_Time_std.html]]></name> <type>generic_data</type> <data><![CDATA[16.317]]></data> <description><![CDATA[Test OK]]></description> <tags>UX</tags> <module_group>UX</module_group> <module_parent>UX_Status_std.html</module_parent> </module>
エラー実行結果例:
<module> <name><![CDATA[UX_Status_std.html]]></name> <type>generic_proc</type> <data><![CDATA[0]]></data> <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> <data><![CDATA[15.463]]></data> <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> <data><![CDATA[data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAA…JRU5ErkJggg==]]></data> <description><![CDATA[Image (last error)]]></description> <tags>UX</tags> <module_group>UX</module_group> <module_parent>UX_Status_std.html</module_parent> </module>
すべて問題なければ、監視を実行するために実行コマンドラインを(マシンにインストール済の) Pandora エージェントに追加できます。例えば以下の通りです。
Windows:
module_plugin C:\Users\artica\Documents\Product\UX-Trans\UX\pandora_ux_x64.exe -exe PWR -script C:\Users\artica\Documents\Product\UX-Trans\PWR\sesion.html -folder <screenshots path>
Linux:
module_plugin /usr/share/pandora_server/tool/pwrd/firefox/pandora_ux.64 -exe PWR -script /usr/share/pandora_server/tool/pwrd/firefox/TestUX.html -pwr_port 4444
エージェントが Pandora FMS サーバへデータを送ると、関連するモジュールが作られます。モジュールの関係を見るには、階層モード を有効にします。
前述の通り、実行結果(成功・失敗)は、UX_Status_session.html モジュールで、所要時間(秒)は、UX_Time_session.html モジュールで、失敗時のスクリーンショット(例では空です)は UX_Snapshot_session.html に保存されます。アラートを設定したり個々のグラフを表示したりするには、これらのモジュールを使います。
前の章で説明した Pandora UX PWR トランザクションの記録がある場合、各フェーズを特定するのに必要なモジュールはシステムが生成します。これは実行は一つ前と関連性が無いことを意味します。対応する htmlファイル(この場合、異なるフェーズを含む)を指定します。
pandora_ux_x64 -exe PWR -script C:\tests\std.html --folder <screenshots path>
次のモジュールが返されます。
フェーズでエラーが返る場合は、次のモジュールが作成されます。
エラー時のスクリーンショットが表示されます。
全体の状態モジュールが、次のラベルで返されます。
エラー時のスクリーンショットが表示されます。
エージェントの実行コマンド設定は前述の例と同じですが、フェーズを含む html ファイルがあります。
Pandora FMS サーバにデータが届くと、モジュールとして表示されます。情報を見やすくするには、モジュールの 階層モード を有効にします。
トランザクションおよびフェーズの詳細を確認するには、エージェントの WUX にアクセスします。
以下の例は、当社のウェブサイトの閲覧処理と複数のアイテムの購入を表しており、5段階に分けて、時間を正確に測定して改善が必要な場所、またはボトルネックが発生している場所がわかるようにしています。
Pandora FMS UX は、ウェブのブラウジング監視中にウェブコンテンツのデータを取得できます。
この機能を利用するには、Selenium IDE でテストケースにコメントとしていくつかのディレクティブを追加する必要があります。
この例では、監視の実行後に値を取得しています。そして、モジュール(getValue ディレクティブ)として Pandora に追加されます。
値を取得するプラグインを作成するステップは次の通りです。
データ取得ディレクティブ:
getValue;<モジュール名>;<モジュールデータタイプ>;<データ取得のための perl 正規表現>
各フィールドはセミコロンで区切ります。
以下に例を示します。
<p>The temperature of the solar plate is: <span class="temperatura">54º C</span></p>
温度を取得したい場合、正規表現を以下のようにします。
<span class="temperatura">(\d+\.*\,*\d*).*</span>
すると、例えばシステムは数値 “54”、または小数点以下の任意の数を取得します。
ディレクティブ全体は次のようになります。
getValue;solar panel temperature;generic_data;<span class="temperature">(\d+\.*\,*\d*).*</span>
モジュールを生成するコマンドは次の通りです。
getValue;モジュール名;モジュールタイプ;文字列マッチ正規表現
getVariable;モジュール名;モジュールタイプ;変数名
getScreenshot;モジュール名
getValue
は、モジュールを生成するコマンド に属するコマンドです。詳細はリンクを確認してください。
ブラウジングセッションを記録したら、Pandora FMS コンソールのモジュールとして展開します。
そのためには、WUX 機能が有効化されたサーバで任意のエージェントにアクセスし、新規ウェブ分析モジュールの作成(Create a new web analysis module) オプションでモジュールを作成します。
作成(Create) を選択後、次のフォームに入力します。
モジュール名(Module name)
モジュールWUX(親)、監視結果を持つすべてのサブモジュールはこの新しいモジュールに依存します。
パフォーマンステスト実行(Run performance tests)
閲覧可否の監視だけでなく、対象のウェブサイトへのアクセスのパフォーマンス統計も監視することを示します。
テスト実行サーバ(Execute test from)
テストを実行する WUX サーバ。
ブラウザ(Browser)
テストを実行するウェブブラウザ。
ブラウザは、WUX サーバが使用する Selenium グリッドまたはサーバ上にある必要があります。
ユーザデータディレクトリ(User data dir)
(バージョン 764 以降) オプション: データディレクトリを指定できます。
ユーザデータディレクトリ(User data dir) オプションは、Google Chrome でのみ動作します。
プロファイル(Profile)
(バージョン 764 以降) オプション: ユーザプロファイルを指定できます。プロファイル名が存在しない場合は、デフォルトのプロファイルを使用します。
プロファイル(Profile) オプションは、Google Chrome でのみ動作します。
安全でない証明書を受け入れる(Accept insecure certificates)
有効にすると、ナビゲーションの際に安全でない証明書(自己署名、期限切れなど)が受け入れられます。
このオプションは、Google Chrome および Mozilla Firefox ブラウザでのみ使用でき、テストが Selenium 3 サーバによって実行される場合にのみ有効になります。
データ保存(Data history)
実行結果のモジュールデータを保存するかどうか。
テキスト入力領域(Text area section)
このテキストボックスには、あらかじめ録画したブラウジングセッションのコンテンツファイルをコピー(またはアップロード)します。
連続障害検知抑制間隔(FF interval)
モジュールの連続障害検知抑制間隔(秒単位)。
リトライ(Retries)
モジュールのリトライ回数。
カスタムマクロは、ブラウジングセッションのファイル内に設定した特定の文字列を、変化する特定の値に置き換える動作をします。
ウェブ解析モジュールの場合、この機能が改善され、値を日時の変数に変換できる 動的マクロ が利用可能になりました。
なぜこの機能が必要なのでしょうか?
会議室を予約するウェブアプリケーションの機能を、ブラウジングセッションを通して監視する必要があるとします。
固定の日時を設定すると、システムはおそらく予約を取り消すことになります。これは、ある時点で過去に予約されている可能性があるためです。たとえば、先週の予約と同じ予約をしようとしている可能性があります。
また、予約の実行が可能な期間を見つけることも必要です。例えば、システムは当月を超えないなど一定の期間内に部屋を予約する必要があります。
数日おきに設定を気にしたりマクロを編集するのを避け、動的マクロを使用することにより、テストを行う翌日の部屋を常に予約するようにシステムを設定することができます。
この機能を利用するには、次のような特定の形式を用います。
@DATE_FORMAT
ユーザ定義フォーマットでの現在の日付/時間@DATE_FORMAT_nh
時間@DATE_FORMAT_nm
分@DATE_FORMAT_nd
日@DATE_FORMAT_ns
秒@DATE_FORMAT_nM
月@DATE_FORMAT_nY
年“n” は、符号なしの数値(正の数)または負の数です。
書式は、perl の strftime に従います。
例:
@DATE_%Y-%m-%d %H:%M:%S @DATE_%H:%M:%S_300s @DATE_%H:%M:%S_-1h
WUX で生成された情報は、次のようにモジュールに表示されます。モジュール一覧の中で階層表示を有効化することにより、情報をより分かりやすく表示します。
階層表示では、次のモジュールを見ることができます。
例: エラー画面スクリーンショット
注意: Pandora FMS 7.0NG 712 以前のバージョンからアップグレードした場合は、少し変更する必要があります。
WUXServer によって生成された画面キャプチャを保存するには、データベースにて次の操作を行う必要があります。
alter table tagente_estado modify column datos mediumtext; alter table tagente_datos_string modify column datos mediumtext;
この操作を行わないと、全てのスクリーンショット見ることができない可能性があります
エージェントの WUX セクションにアクセスすることによって、トランザクションとフェーズの追加の詳細を見ることができます。
ウェブサイトの統計情報は、以下の概念でまとめられています。
ウェブ解析モジュールに関するアラートは、Pandora FMS の全体のアラートシステムと同様です。
互換性を保つため、次のようにウェブ分析モジュールによって生成されたサブ要素にアラートテンプレートを割り当てることをお勧めします。
PDR は Windows でのみ動作するように設計されています。Pandora エージェントで実行されるとき プロセスモード で実行する必要があります。サービスモードでは動作しません。デスクトップセッションのブロックはできませんので、仮想マシンの利用をお勧めします。
事前準備:
設定には以下を実行します:
Windows10® より前のバージョンの場合:
control userpasswords2
“このコンピュータを使うにはユーザ名とパスワードが必要(Users must enter a user name and password to use this computer)” のチェックを外します。
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
起動したら、レコーディング環境に入ります。
実行するアクションを選択し、それらを適用する領域でスクリーンショットを実行します。 以下に、最も一般的な例を示します。
一般的なアクション:
フロー制御アクション:
このスクリプト言語の詳細は、http://sikulix-2014.readthedocs.io/en/latest/index.html を参照してください。
プロジェクトが記録されると、次の要素を持つファイルが作成されます。
実行の簡単な例としては、Windows の電卓が正しく動作するかどうかを確認します。 一度に1つずつスライドさせる方法を見てみましょう。
1. “click” アクションを選択し、アクションをしたいエリアを選択します。画面が “エリア選択” モードに変わります。
2. type アクションとテキスト “calc” を入力し、電卓が表示されるのを待ってクリックします。電卓が操作できるようになったら、次のようにアクションを入力します。
3. 関連する部分クリックし、以前と同様の領域を選択します。
4. 最後に、保存して Run をクリックして実行します。
重要な注意点:
記録を保存したフォルダに、python ファイルと画像ファイルがあります。
注意:次のコードを使用して、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: キャプチャしたい領域の水平方向の位置
Y: キャプチャしたい領域の垂直方向の位置
W: キャプチャしたい幅
H: キャプチャしたい高さ
特別なセッションの記録は必要ありません。異なるスクリプトでセッションを記録するだけです。Pandora UX は、複雑なトランザクションの結果を返し整理します。次の段階では、正しく動作させるための実行の呼び出し方を見ていきます。
トランザクション処理を作成するために複数のレコーディングを行う場合は、記録時に探している要素が存在することに注意する必要があります。 単一のトランザクション処理ごとに、レコーディング内容を手動で実行することをお勧めします。手動で実行してみたあとに、アクションが期待どおりに行われるようにします。
次の例では、上記の例のプロセス次の段階を構成する記録プロセスを確認できます。電卓の結果をメモ帳にペーストします。以下に例を示します。
ここでは、テキストファイルを特定の場所に保存し、前のファイルを上書きするという別の手順を示します。これにより、柔軟性が大幅に向上し、並行してファイルの監視が可能になり、ヘビー級のデスクトップアプリケーションに対するさまざまな情報を扱えます。この 3つ目のシーケンス例は、以下のステップからなります。
あらかじめ記録した 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
次のモジュールが返されます。
フェーズでエラーが発生した場合は、次のモジュールが作成されます。
エラー時には、アクティブウインドウの画像が表示されます(-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 (実行可能ファイル)。<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 コンソールに表示することができます。
フェーズごとに、以下のモジュールが返ります。
フェーズでエラーになった場合は、次のモジュールが作成されます。
エラーの場合は、エラーが発生した時点の画像が表示されます。
次の名前で全体のまとめのモジュールも返されます。
エージェントがプロセスモードで動き、モジュールを Pandora FMS が受け取ると、コンソールで見ることができます。繰り返しになりますが、階層モード で、モジュール間の関係とフェーズ間の区切りがわかりやすく表示されます。
フェーズとタイムチャートの詳細は、トランザクションの画面で見ることができます。
エラーのスクリーンショットは、UX クライアント(PWR)と PWR サーバが共に同じマシンで動作しているときにのみ表示されます。そうでない場合は、Pandora で画像を表示するために、PWR サーバの画像配布ディレクトリがクライアントからアクセスできる必要があります。
同じモジュールを使用して、アラートを作成し、システムの時間経過に伴う変化を表示するために、履歴表示やグラフ生成ができます。
システムを再起動したときなどに実行の中断を避けるために、システムが起動したときに、Pandora エージェントをプロセスモードで起動させるプログラムタスクを作成することと、パスワード無しでマシンへ自動ログインし、エージェントが確実に実行されるようにすることをお勧めします。
これにより、対象の Windows インスタンスでは、マシンが再起動しても Pandora FMS エージェントが常にプロセスモードで実行され、常にPDR プローブによって収集されたデータを送信できることが保証されます。
さまざまなデスクトップシステムでは問題が発生する可能性があります。そのため、前述の設定を使い、デスクトップモードで自動起動を単一のデスクトップ使用することをお勧めします。