# 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
docker-compose -f up -d
コンテナで実行されているサービスを確認する必要がある場合は、次のコマンドを使用します。
docker-compose -f ps
Selenium サービスの状態とログを表示するには、次のコマンドを使用します。
docker-compose -f logs
適切なチェックが行われた後、グリッドが適切に機能し、ワーカーが設定ファイルでの定義どおりにサインアップしたことを確認するには、次のURLにアクセスします。
http://:4444/grid/console
{{ wiki:newux4.png }}
ワーカー数を増やす必要がある場合は、次のコマンドを実行します。
docker-compose -f scale chrome=X firefox=Y
==== Selenium サービスインフラストラクチャ ====
Selenium は、必要なワーカーコンテナーをデプロイするグリッドとして機能するコンテナが有効になっているハブとして機能します。
{{ :wiki:newux9.png }}
==== Pandora FMS 設定 ====
集中モード(WUX)を使用するには、Pandora FMS サーバに以下の設定を適用する必要があります。
選択したモードに関係なく、WUX サーバ設定パラメータを Pandora FMS サーバの設定ファイルに追加することにより、ブラウジングセッションから実行の割り当てができます。
ファイル''/etc/pandora/pandora_server.conf''の最後に次の設定を追加します(''
wuxserver 1
wux_host
wux_port 4444
Pandora FMS サーバの設定ファイルには、キューに入れられたナビゲーションセッションを削除するための新しいトークンがあります。
clean_wux_sessions 1 #(default)
=== Pandora FMS スレッド管理 ===
* ''wuxserver'' スレッド管理は、''pandora_server'' サービスを起動した際に自動的に行われます。
* **これは、Selenium hub にある MINOR ブラウザのノード数を考慮して行われます。** 例:
* hub に 2 つの Firefox ノードと 2 つの Chrome ノードが設定されている場合、''wuxserver''スレッドの数は 2 になります。
* hub に 1 つの Firefox ノードと 4 つの Chrome ノードが設定されている場合、スレッドの数は 1 になります。
* hub に 6 つの Firefox ノードが設定されている場合、スレッドの数は 6 になります。
java -version
次のような出力が得られます。
{{ :wiki:newux1.png }}
サーバをローカルで実行してグリッドに登録するには、Selenium **JAR** ファイルも必要です。
以下から入手できます。
https://www.selenium.dev/downloads/
{{ :wiki:newux2.png }}
**Microsoft Edge** サーバを有効化にするには、**JAR** ファイルがあるディレクトリのターミナルで次を実行する必要があります。
java -jar selenium-server-standalone-.jar -port 5555 -role node -hub
http://:4444/grid/register -browser "browserName=MicrosoftEdge, platform=WINDOWS, maxInstances=1"
このコマンドは **Internet Explorer** サーバを有効化するのと似ていますが、ダウンロードしたドライバーのパスを指定する必要があります。
java -Dwebdriver.ie.driver=IEDriverServer.exe -jar selenium-server-standalone.jar -port 5555 -role node -hub
http://ip_selenium_server:4444/grid/register -browser "browserName=internet explorer, platform=WINDOWS, maxInstances=1"
{{ :wiki:newux3.png }}
https://addons.mozilla.org/ja/firefox/addon/selenium-ide/
**Chrome**
https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd
次のアイコンは、拡張機能をインストールしたあとに表示される、記録を開始するアイコンです。
{{ :wiki:newux10.png }}
新しい記録プロジェクトを開始するためのメニューが開きます。
{{ :wiki:newux5.png }}
記録が行われると、次のような結果になります。
{{ :wiki:newux6.png }}
Pandora FMS には、Selenium の機能とは別に、監視対象から情報を取得するためのカスタムコマンドがあります。
=== コマンド ===
利用可能なコマンドの一覧は、[[:ja:documentation:pandorafms:technical_annexes:17_compatible_selenium_commands|こちら]] を確認してください。
=== 録画を行う際の推奨事項 ===
次に、Selenium IDE とのトランザクションを記録し、最も複雑なコマンドを Pandora FMS と統合するための、一連の推奨事項とアドバイスについて詳しく説明します。
* **可能な場合はいつでも、トランザクションを段階的に分割します。**このようにして、状態、時間、スクリーンショットで作成されたモジュールがセグメント化され、トランザクションが失敗したときにそれらを見つけやすくなります。
* **誤検知を回避するには、selenium コマンド "set peed" および "wait for" を使用します。**トランザクションを実行するとき、selenium コマンドには、1つのコマンド実行終了から次のコマンドが実行されるまでのデフォルトの遅延がなく、一部のコマンドにもタイムアウトがありません。これにより、トランザクションは可能な限り最短時間で実行されますが、非常に高速に実行することにより、Web がやや遅かったり、ロードに数秒余分にかかる場合、チェックが失敗する可能性があります。たとえば、"click" コマンドを実行して他のページに移動した後、新しいページの要素を使って動作するコマンドがあった場合、読み込みが 1秒遅れると、その要素は見つかりません。新しいページのチェックは失敗に終わります。このような状況を回避するために、コマンド "set speed" があります。これは、各コマンドの間に Target フィールドに指定されたミリ秒数の遅延を追加します。トランザクションの開始時に設定することをお勧めします。ページの読み込みや要素の表示に数秒かかることがわかっている場合は、コマンド "wait for element present" もあります。"wait for visible " と "wait for test" では、トランザクションを失敗として判断する前に、要素がページに表示されるのを待つ時間をミリ秒単位で設定できます。これらのコマンドを使用すると、チェックの信頼性が大幅に向上しますが、トランザクションの実行にかかる時間も長くなることを考慮することが重要です。
* **既存の要素を確認します。**このためには、"assert" や "verify" などのコマンドをさまざまな場面で使用します。たとえば、クリックでトランザクションを終了しても、クリックした要素を新しいページが開くことは保証されません。要素をクリックできることを保証するだけです。クリック後にのみ読み込まれることがわかっている "verify test" を導入すると、クリックによって送信されたページが使用可能かどうかを確認することができます。
* **ウィンドウまたはタブ間を移動するトランザクションでは、"store window handle" を使用します。**初期ウィンドウに識別子をあらかじめ保存していない場合、ウィンドウの変更("select window" を使用)は失敗する可能性があります。
* **Target by CSS が失敗した場合またはページ内のコンテンツを検索したい場合は、xpath を使用します。**デフォルトでは、Selenium IDE レコーダは CSS ロケータ要素の Target にロードしますが、xpath によってロケータもロードします。レコーダの Target ボックスをクリックすると、保存されているすべてのロケータを表示できます。
{{ :wiki:recomendaciones_ux1.png }}
さらに、xpath を使用すると、ページのタグ内のテキストを検索して、より動的なレコーディングができます。上記のキャプチャでは、特定のロケータではなく、ページのすべてのスパンタグで "Monitoring Innovators" というテキストを検索する xpath を使用できることがわかりました。
* **"execute script" コマンドの正しい利用。**"execute script" コマンドは、現在選択されているフレームまたはウィンドウのコンテキストでJavaScript のスニペットを実行します。 このガイド( [[https://ui.vision/rpa/docs/selenium-ide/executescript|https://ui.vision/rpa/docs/selenium-ide/executescript]] )を読んで、その使用法と提供されるさまざまなオプションについて学ぶことをお勧めします。ただし、以前に保存された変数の使用(たとえば、"store text" コマンドは、Pandora FMS Web ドライバが正しく解釈できるように、二重引用符で囲む必要があります。これは、"store text" で保存され、後で "execute script" で使用されるように、Pandora FMS サーバが正しく解釈できるようにする変数の例です。引用符で囲まれた変数をこのように使用すると、Selenium IDE レコーダではスクリプトを実行できないことに注意してください。
{{ :wiki:recomendaciones_ux2.png }}
===== Selenium 2 による Web User Experience (WUX) =====
==== 事前設定 ====
=== Selenium ===
== Pandora ウェブロボットデーモン (PWRD) の展開 ==
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/|https://pandorafms.com/library/pandora-ux-and-wux-pwr-recorder/]] から行います。
以下が含まれます。
* Windows 版 Firefox 47 のバイナリ
* Web ブラウザセッションを実行するために、あらかじめビルドされたプロファイル
* セッション自動化のためのサーバ (Selenium サーバ)
== Windows への Selenium サーバの展開 ==
事前準備:
* サービスを提供するサーバへ Java 1.8 をインストール
* Firefox 47.0.1 ([[https://ftp.mozilla.org/pub/firefox/releases/47.0.1/|https://ftp.mozilla.org/pub/firefox/releases/47.0.1/]] からダウンロード)
* 自動セッションチェックのための Firefox プロファイル(オプション): [[http://toolsqa.com/selenium-webdriver/custom-firefox-profile/|http://toolsqa.com/selenium-webdriver/custom-firefox-profile/]]
* ディレクトリの作成: ''C:\PWR''
PWR_Server.zip のダウンロードは、 [[https://pandorafms.com/library/pwr-server-for-ux-monitoring/|https://pandorafms.com/library/pwr-server-for-ux-monitoring/]] から行います。
ファイルの展開:
* PWR_Server.zip を C:\PWR\ へ展開
* Firefox プロファイルを C:\PWR\profile へ展開
プロファイルを使用してチェックを実行することは必須ではありませんが、プロキシを使用する場合や、パスワードのオートコンプリートを使用する場合は特に推奨します。
Firefox のプロファイルを作成するには、次のようにします。
{{ :wiki:ux1.jpg }}
{{ :wiki:ux2.jpg }}
ディレクトリを選択します。
{{ :wiki:ux3.jpg }}
プロキシやポップアップなどのオプションを設定するために、新たなプロファイルで Firefox を起動します。
{{ :wiki:ux4.jpg |ux4.jpg}}
次に、提供された 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
== Linux への Selenium サーバの展開 ==
事前準備:
* サービスを提供するサーバへ Java 1.8 をインストール
* Firefox 47.0.1 ([[https://ftp.mozilla.org/pub/firefox/releases/47.0.1/|https://ftp.mozilla.org/pub/firefox/releases/47.0.1/]] からダウンロードできます) をインストール
* 自動セッションチェックのための Firefox プロファイル(オプション): [[http://toolsqa.com/selenium-webdriver/custom-firefox-profile/|http://toolsqa.com/selenium-webdriver/custom-firefox-profile/]] を準備
* xorg-x11-server-xvfb をインストール
* java をインストール
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 ファイルは以下から入手できます。
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 の単一のインスタンスを起動します。インスタンスは Pandora FMS サーバに割り当てられます。
* **HUB**: このモードでは、PWRD サービスはブラウザセッションを直接は評価せず、代わりにタスクを実行するためのノードが登録されます。これは、PWRD サービスのクラスタモードです。それぞれの HUB が Pandora FMS サーバに割り当てられます。
==Standalone モードの PWRD==
Standalone モードの PWRD は、デーモンを起動し、WUX サーバを通してユーザが指示したアクションを実行できるようになります。
{{ :wiki:wux_pwrd_standalone.png }}
起動:
/etc/init.d/pwrd start
状態確認:
/etc/init.d/pwrd status
停止:
/etc/init.d/pwrd stop
==PWRD の "HUB" モード==
HUB モードは、ロードバランサーとしてデーモンを起動します。この動作モードでは、システムに登録されたすべてのノード間で負荷をバランシングし、負荷に応じてセッションの実行割り当てをします。
HUB の管理コンソールにアクセスすることにより、HUB の状態を常に確認することができます。
http://:4444/grid/console
{{ wiki:wux_pwrd_hub.png }}
起動:
/etc/init.d/pwrd start-hub
状態確認:
/etc/init.d/pwrd status-hub
停止:
/etc/init.d/pwrd stop-hub
==PWRD ノードの HUB への追加==
新たな PWRD ノードを追加するには、以下が必要です。
* HUB (HUB モードの PWRD)
* 同一または異なるマシン上の PWRD ファイル
* ノードをホストするコンピュータから HUB をホストするコンピュータへの TCP/4444 接続
この動作モードでは、サービスはキューに入れられた 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 プロファイルへの証明書アップロード ==
Firefox のデフォルトの CA に含まれていない、自己証明書や CA による証明書を必要とする Web ページの監視を行うこともできます。そのような場合、利用する Firefox のプロファイルに証明書を読み込ませる必要があります。
それには、グラフィカルな環境でブラウザを起動し、URL にアクセスし SSL 証明書を追加するのが一番簡単です。以下に Windows および Linux でのその方法を説明します。
**Windows システムにデプロイした PWRD の場合**
この場合、GUI 環境があるのでチェック用のプロファイルを使って Firefox ブラウザを起動するだけです。
{{ :wiki:profile_01.png }}
{{ :wiki:profile_02.png }}
起動したら、アップロードする証明書を使用して URL にアクセスし、ブラウザの例外として追加します。
{{ :wiki:profile_03.png }}
{{ :wiki:profile_04.png }}
別の方法として、SSL 証明書を設定するには、Firefox のオプション、"Privacy & Security" タブにアクセスし、"Query OCSP responder servers to confirm the current validity of certificates" のチェックを外します。
{{ :wiki:profile_05.png }}
{{ :wiki:profile_06.png }}
**Linux システムにデプロイした PWRD の場合**
一般的に、Linux サーバがインストールされている場合、グラフィカルなデスクトップ環境は含まれていません。前のケースと同じ手順を実行するには、X を GUI 環境を持つコンピュータにリダイレクトする必要があります。
==Linux デスクトップへの X11 のリダイレクト==
PWRD サーバから "-X" オプションをつけて SSH 接続をするだけで十分であるため非常にシンプルです。
ssh -X user@pwrd_ip_address
その後、Firefox ブラウザを起動すると、デスクトップに画面表示されます。
firefox -p
デフォルトのインストールでは、デフォルトのプロファイルのみ見ることができます。Windows へのインストールの場合と同様に、新しいプロファイルを作成して使用することをお勧めします。
{{ :wiki:profile_07.png }}
{{ :wiki:profile_08.png }}
{{ :wiki:profile_09.png }}
プロファイルが **/opt/firefox_profile** 以外にある場合、PWRD の起動スクリプト **/etc/init.d/pwrd** でプロファイルのパスを指定するように編集する必要があります。
PWROPTS=" -firefoxProfileTemplate /path/to/profile/folder"
プロファイルを作成したら、ブラウザを起動します。
{{ wiki:Profile_10.png }}
起動したら、アップロードする証明書を使って URL にアクセスし、ブラウザの例外として追加します。
{{ :wiki:profile_11.png }}
{{ :wiki:profile_12.png }}
他の方法として、SSL 証明書を受け入れたい場合は、Firefox の "Advanced > Certificates" タブのオプションへアクセスし、"Query the OCSP respondent servers to confirm the current validity of the certificates" を選択します。
{{ :wiki:profile_13.png }}
{{ :wiki:profile_14.png }}
==Windows デスクトップへの X11 リダイレクト==
Windows の場合、リダイレクトを行えるようにするために、**Xming** などの X サーバをインストールする必要があります。インストールして起動すると、X のリダイレクトができるようになります。
SSH Putty クライアントを用いて、接続前に "Connection > SSH > X11" にアクセスします。そして "Enable X11 forwarding" がチェックされ、"X display location" が "localhost:0" になっていることを確認します。
{{ :wiki:profile_15.png }}
そして、"Session" セクションに戻り、接続を確立します。
{{ :wiki:profile_16.png }}
接続したら、PWRD サーバ上で Firefox ブラウザを起動すると、Windows デスクトップでその画面を見ることができます。
firefox -p
デフォルトのインストールでは、デフォルトのプロファイルのみ見ることができます。Windows へのインストールの場合と同様に、新しいプロファイルを作成して使用することをお勧めします。
{{ :wiki:profile_17.png }}
{{ :wiki:profile_18.png }}
{{ :wiki:profile_19.png }}
プロファイルが **/opt/firefox_profile** 以外にある場合、PWRD の起動スクリプト **/etc/init.d/pwrd** でプロファイルのパスを指定するように編集する必要があります。
PWROPTS =" -firefoxProfileTemplate /path/to/profile/folder"
プロファイルを作成したら、ブラウザを起動します。
{{ :wiki:profile_20.png }}
起動したら、アップロードする証明書を使って URL にアクセスし、ブラウザの例外として追加します。
{{ :wiki:profile_21.png }}
{{ :wiki:profile_22.png }}
他の方法として、SSL 証明書を受け入れたい場合は、Firefox の "Advanced > Certificates" タブのオプションへアクセスし、"Query the OCSP respondent servers to confirm the current validity of the certificates" を選択します。
{{ :wiki:profile_23.png }}
{{ :wiki:profile_24.png }}
== Pandora サーバ設定 ==
選択したモードにかかわらず、一度起動すると、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秒に設定していますが、**必要に応じて、この値を環境に合わせて調整します。**
== Pandora FMS スレッド管理 ==
PWRD を hub モードで利用する場合:
* ''wuxserver'' スレッド管理は、''pandora_server'' サービスを起動した際に自動的に行われます。
* **これは、Selenium hub にある MINOR ブラウザのノード数を考慮して行われます。** 例:
* hub に 2 つの Firefox ノードと 2 つの Chrome ノードが設定されている場合、''wuxserver''スレッドの数は 2 になります。
* hub に 1 つの Firefox ノードと 4 つの Chrome ノードが設定されている場合、スレッドの数は 1 になります。
* hub に 6 つの Firefox ノードが設定されている場合、スレッドの数は 6 になります。
phase_start:
フェーズは、次のコメントまでに存在するすべてのコマンドと時間の結果を含みます。
phase_end:
phase_start と phase_end の間に実行されるすべてのコマンドが、一つのフェーズとして扱われます。
{{ :wiki:pwrd_recorder_transaction2.png }}
pandora_ux_x64.exe -exe PWR -script C:\tests\std.html -retries 3
次のモジュールが返ります。
* UX_Status_project_name: シーケンスが成功したかどうか
* UX_Time_project_name: シーケンスを完了するのにかかった時間
* UX_Snapshot_project_name: エラーが発生した直前のスクリーンショット
正常実行結果例:
generic_proc
UX
UX
generic_data
UX
UX
UX_Status_std.html
エラー実行結果例:
generic_proc
UX
UX
generic_data
UX
UX
UX_Status_std.html
async_string
UX
UX
UX_Status_std.html
すべて問題なければ、監視を実行するために実行コマンドラインを(マシンにインストール済の) 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
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 サーバへデータを送ると、関連するモジュールが作られます。モジュールの関係を見るには、//階層モード// を有効にします。
{{ :wiki:ux33.jpg }}
前述の通り、実行結果(成功・失敗)は、//UX_Status_session.html// モジュールで、所要時間(秒)は、//UX_Time_session.html// モジュールで、失敗時のスクリーンショット(例では空です)は //UX_Snapshot_session.html// に保存されます。アラートを設定したり個々のグラフを表示したりするには、これらのモジュールを使います。
{{ :wiki:imagen_nueva_ux.png }}
=== ステージごとの実行 ===
前の章で説明した Pandora UX PWR トランザクションの記録がある場合、各フェーズを特定するのに必要なモジュールはシステムが生成します。これは実行は一つ前と関連性が無いことを意味します。対応する htmlファイル(この場合、異なるフェーズを含む)を指定します。
pandora_ux_x64 -exe PWR -script C:\tests\std.html --folder
次のモジュールが返されます。
* 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
エラー時のスクリーンショットが表示されます。
エージェントの実行コマンド設定は前述の例と同じですが、フェーズを含む html ファイルがあります。
Pandora FMS サーバにデータが届くと、モジュールとして表示されます。情報を見やすくするには、モジュールの //階層モード// を有効にします。
{{ :wiki:ux34.jpg }}
トランザクションおよびフェーズの詳細を確認するには、エージェントの //WUX// にアクセスします。
以下の例は、当社のウェブサイトの閲覧処理と複数のアイテムの購入を表しており、5段階に分けて、時間を正確に測定して改善が必要な場所、またはボトルネックが発生している場所がわかるようにしています。
{{ :wiki:ux44.jpg }}
=== データ取得 ===
Pandora FMS UX は、ウェブのブラウジング監視中にウェブコンテンツのデータを取得できます。
この機能を利用するには、Selenium IDE でテストケースにコメントとしていくつかのディレクティブを追加する必要があります。
{{ :wiki:pwr_recorder_getvalue.png }}
この例では、監視の実行後に値を取得しています。そして、モジュール(getValue ディレクティブ)として Pandora に追加されます。
値を取得するプラグインを作成するステップは次の通りです。
* Selenium IDE で、テストケースにコメントを追加します。
* ディレクティブをコメントで記載します。
データ取得ディレクティブ:
getValue;<モジュール名>;<モジュールデータタイプ>;<データ取得のための perl 正規表現>
各フィールドはセミコロンで区切ります。
* **getValue**: UX システムのディレクティブです。
* **モジュール名**: Pandora に表示されるモジュール名です。
* **モジュールデータタイプ**: Pandora が取り扱える[[:ja:documentation:pandorafms:installation:05_configuration_agents#module_type|データタイプ]]です。
* **Perl 正規表現**: perl の正規表現です。カッコ内のデータが取得されます。
以下に例を示します。
The temperature of the solar plate is: 54º C
温度を取得したい場合、正規表現を以下のようにします。
(\d+\.*\,*\d*).*
すると、例えばシステムは数値 "54"、または小数点以下の任意の数を取得します。
ディレクティブ全体は次のようになります。
getValue;solar panel temperature;generic_data;(\d+\.*\,*\d*).*
モジュールを生成するコマンドは次の通りです。
* **getValue: **値を展開します。
getValue;モジュール名;モジュールタイプ;文字列マッチ正規表現
* **getVariable**: (バージョン 753 以上) 変数から特定の値を展開します。
getVariable;モジュール名;モジュールタイプ;変数名
* **getScreenshot**: 画面をキャプチャします。
getScreenshot;モジュール名
@DATE_%Y-%m-%d %H:%M:%S
@DATE_%H:%M:%S_300s
@DATE_%H:%M:%S_-1h
==== データ表示 ====
WUX で生成された情報は、次のようにモジュールに表示されます。モジュール一覧の中で階層表示を有効化することにより、情報をより分かりやすく表示します。
{{ :wiki:wux_modules.png }}
階層表示では、次のモジュールを見ることができます。
* //module//_Global_Status: ブラウズ完了の **全体の** 状態を表示します。
* 記録がある場合は、WUX 記録の状態を示します。
* [[:ja:documentation:pandorafms:monitoring:13_user_monitorization#pandora_fms_コンソールでの_web_分析モジュールの作成|パフォーマンステストの実行]]が有効になっており、記録が含まれていない場合、グローバルステータスモジュールの状態は、これらのモジュールの実行結果の状態になります。
* //module//_Global_Time: ブラウズ完了の **全体の** 所要時間を表示します。
* //module//_Global_Screenshot: ブラウズでエラーとなった画面キャプチャで、**エラーの場合のみ生成されます。**
* //module//_Phase X: //フェーズ名//_Status: フェーズ X におけるブラウジングの状態を示します。
* //module//_Phase X: //フェーズ名//_Time: フェーズ X における所要時間を示します。
例: エラー画面スクリーンショット
{{ :wiki:wux_screenshot.png }}
alter table tagente_estado modify column datos mediumtext;
alter table tagente_datos_string modify column datos mediumtext;
この操作を行わないと、全てのスクリーンショット見ることができない可能性があります
エージェントの //WUX// セクションにアクセスすることによって、トランザクションとフェーズの追加の詳細を見ることができます。
{{ :wiki:wux_nueva_imagen.png }}
ウェブサイトの統計情報は、以下の概念でまとめられています。
* **Stats_TT**: ウェブサイトの取得にかかるトータルの時間。
* **Stats_TDNS**: 対象の IP アドレスを名前解決するためにかかるトータルの時間。
* **Stats_TTCP**: TCP の接続にかかった時間。
* **Stats_TSSL**: SSL のネゴシエーションにかかった時間。
* **Stats_TST** : データ転送が開始されるまでにかかった時間。
* **Stats_TTC** : データ転送にかかった時間。すべての処理にかかった時間の合計です。
* **Stats_TTR** : ページのコンテンツの転送にかかった時間。
* **Stats_TTR_main**: HTML コードを転送するのにかかった時間。
* **Stats_TTR_image**: 画像(png|jpg|jpeg|bmp|tiff|gif|webp|svg)の転送にかかった時間。
* **Stats_TTR_css**: スタイルシートを転送するのにかかった時間。
* **Stats_TTR_js**: JavaScript ファイルを転送するのにかかった時間。
==== ウェブ解析モジュールへのアラートの割り当て ====
ウェブ解析モジュールに関するアラートは、Pandora FMS の全体のアラートシステムと同様です。
互換性を保つため、次のようにウェブ分析モジュールによって生成されたサブ要素にアラートテンプレートを割り当てることをお勧めします。
* 全体のブラウジングの状態
* 時間閾値に関するアラート
* 結果のスクリーンショットモジュールで、警告テンプレートを "常時" に設定したアラート
==== ダッシュボードの新たなウィジェット ====
ブラウジング情報を表示するための新たな 2つのウィジェットが追加されています。
ブラウジングのフェーズの状態ウィジェット。
{{ :wiki:widget_wux_fases.png }}
ウェブサイトの統計ウィジェット。
{{ :wiki:widget_wux_stats.png }}
===== デスクトップ UX (PDR) =====
==== PDR の展開 ====
{{wiki:icono-modulo-enterprise.png |Enterprise 版}}
PDR は Windows でのみ動作するように設計されています。Pandora エージェントで実行されるとき **プロセスモード** で実行する必要があります。サービスモードでは動作しません。デスクトップセッションのブロックはできませんので、仮想マシンの利用をお勧めします。
事前準備:
* デスクトップモード、自動起動、自動ログインでの Windows OS
設定には以下を実行します:
**Windows10® より前のバージョンの場合**:
control userpasswords2
"このコンピュータを使うにはユーザ名とパスワードが必要(Users must enter a user name and password to use this computer)" のチェックを外します。
{{ :wiki:ux5.jpg }}
**Windows 10® の場合**:
MS Windows® バージョン 10で自動起動を有効にする 1つの方法としては、Microsoft® ドキュメントの [[https://docs.microsoft.com/en-us/sysinternals/downloads/autologon ダウンロードセクション]] で入手可能な Sysinternals Powertoys を使用することです。そして、監視を実行するユーザを有効にします。次に例を示します。
{{ :wiki:autologon_enable_-_sysinternals.png }}
環境設定するには、以下のディレクトリを作成します。
C:\PDR
[[https://pandorafms.com/library/pdr-cmd-for-ux-monitoring/|https://pandorafms.com/library/pdr-cmd-for-ux-monitoring/]] から入手した ''PDR.rar'' ファイルを ''C:\PDR'' へ展開します。
==== PDR セッションの記録 ====
レコーダーを起動するには、以下のスクリプトを実行します。
C:\PDR\pdr
{{ :wiki:scriptwux22332.png }}
起動したら、レコーディング環境に入ります。
{{ :wiki:ux18.jpg }}
実行するアクションを選択し、それらを適用する領域でスクリーンショットを実行します。 以下に、最も一般的な例を示します。
一般的なアクション:
{{ :wiki:ux19.jpg |ux19.jpg}}
フロー制御アクション:
{{ :wiki:ux20.jpg |ux20.jpg}}
このスクリプト言語の詳細は、[[http://sikulix-2014.readthedocs.io/en/latest/index.html|http://sikulix-2014.readthedocs.io/en/latest/index.html]] を参照してください。
プロジェクトが記録されると、次の要素を持つファイルが作成されます。
* 自動実行コードを含んだ .py ファイル
* ウェブブラウザ制御イメージ
実行の簡単な例としては、Windows の電卓が正しく動作するかどうかを確認します。
一度に1つずつスライドさせる方法を見てみましょう。
1. "click" アクションを選択し、アクションをしたいエリアを選択します。画面が "エリア選択" モードに変わります。
{{ :wiki:ux21.jpg |ux21.jpg}}
{{ :wiki:ux22.jpg |ux22.jpg}}
2. //type// アクションとテキスト "calc" を入力し、電卓が表示されるのを待ってクリックします。電卓が操作できるようになったら、次のようにアクションを入力します。
{{ :wiki:ux23.jpg |ux23.jpg}}
3. 関連する部分クリックし、以前と同様の領域を選択します。
4. 最後に、保存して **Run** をクリックして実行します。
重要な注意点:
* 記録環境内の任意の画像をダブルクリックすると、クリックする場所を正確に選択するなど、コントロールキャプチャの詳細を調整できます。
* オペレーティングシステムの遅延によって実行が停止しないように、各クリックの間に「待機」アクションを入力することを強くお勧めします。
* レコーダーはスクリーンショットのような領域を探しますので、ボタンがその上に置かれているときに強調表示されているものがあれば特に注意する必要があります(たとえば、カーソルがそれらの上にあるときに電卓のボタンがオレンジ色に変わります)。
記録を保存したフォルダに、python ファイルと画像ファイルがあります。
{{ :wiki:ux24.jpg |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: キャプチャしたい領域の水平方向の位置
Y: キャプチャしたい領域の垂直方向の位置
W: キャプチャしたい幅
H: キャプチャしたい高さ
=== Pandora UX PDR でトランザクションセッションの記録 ===
特別なセッションの記録は必要ありません。異なるスクリプトでセッションを記録するだけです。Pandora UX は、複雑なトランザクションの結果を返し整理します。次の段階では、正しく動作させるための実行の呼び出し方を見ていきます。
トランザクション処理を作成するために複数のレコーディングを行う場合は、記録時に探している要素が存在することに注意する必要があります。 単一のトランザクション処理ごとに、レコーディング内容を手動で実行することをお勧めします。手動で実行してみたあとに、アクションが期待どおりに行われるようにします。
次の例では、上記の例のプロセス次の段階を構成する記録プロセスを確認できます。電卓の結果をメモ帳にペーストします。以下に例を示します。
{{ :wiki:ux40.jpg |ux40.jpg}}
ここでは、テキストファイルを特定の場所に保存し、前のファイルを上書きするという別の手順を示します。これにより、柔軟性が大幅に向上し、並行してファイルの監視が可能になり、ヘビー級のデスクトップアプリケーションに対するさまざまな情報を扱えます。この 3つ目のシーケンス例は、以下のステップからなります。
{{ :wiki:ux43.jpg |ux43.jpg}}
==== PDR セッションの実行 ====
=== 標準実行 ===
あらかじめ記録した 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 が有効な場合)。
正常時の実行結果例:
generic_proc
UX
UX
generic_data
UX
UX
UX_Status_calculadora.sikuli
async_string
UX
UX
UX_Status_calculadora.sikuli
エラー時の実行結果例:
generic_proc
UX
UX
generic_data
UX
UX
UX_Status_std.html
async_string
UX
UX
UX_Status_std.html
すべて問題なければ、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" の場所はインストールに依存します。
起動すると、どのようにアクションが記録に従って自動的に実行されるかを見ることができます。ここからは、**エージェントのプロセスは終了してはいけません。** また、リモートデスクトップで開始したセッションや実行は中断してはいけません。マシンには触れない状態にしておきます。これが、仮想マシンが必要である理由です。
{{ :wiki:imagen_nueva_pdr.png }}
pandora_ux.64 -exe -args -script
* ''
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 が受け取ると、コンソールで見ることができます。繰り返しになりますが、//階層モード// で、モジュール間の関係とフェーズ間の区切りがわかりやすく表示されます。
{{ :wiki:ux41.jpg }}
フェーズとタイムチャートの詳細は、トランザクションの画面で見ることができます。
{{ :wiki:ux42.jpg }}
エラーのスクリーンショットは、UX クライアント(PWR)と PWR サーバが共に同じマシンで動作しているときにのみ表示されます。そうでない場合は、Pandora で画像を表示するために、PWR サーバの画像配布ディレクトリがクライアントからアクセスできる必要があります。
同じモジュールを使用して、アラートを作成し、システムの時間経過に伴う変化を表示するために、履歴表示やグラフ生成ができます。
システムを再起動したときなどに実行の中断を避けるために、システムが起動したときに、Pandora エージェントをプロセスモードで起動させるプログラムタスクを作成することと、パスワード無しでマシンへ自動ログインし、エージェントが確実に実行されるようにすることをお勧めします。
{{ :wiki:ux26.jpg }}
{{ :wiki:ux27.jpg }}
{{ :wiki:ux28.jpg }}
{{ :wiki:ux29.jpg }}
{{ :wiki:ux30.jpg |ux30.jpg}}
{{ :wiki:ux31.jpg |ux31.jpg}}
{{ :wiki:ux32.jpg |ux32.jpg}}
これにより、対象の Windows インスタンスでは、マシンが再起動しても Pandora FMS エージェントが常にプロセスモードで実行され、常にPDR プローブによって収集されたデータを送信できることが保証されます。
さまざまなデスクトップシステムでは問題が発生する可能性があります。そのため、前述の設定を使い、デスクトップモードで自動起動を単一のデスクトップ使用することをお勧めします。
[[ja:documentation:start|Pandora FMS ドキュメント一覧に戻る]]