デスクトップ・ユーザエクスペリエンス監視(PDR)
デスクトップ UX (PDR)
PDR の展開
PDR は Windows でのみ動作するように設計されています。Pandora エージェントで実行されるとき プロセスモード で実行する必要があります。サービスモードでは動作しません。デスクトップセッションのブロックはできませんので、仮想マシンの利用をお勧めします。
事前準備:
- デスクトップモード、自動起動、自動ログインでの Windows OS
設定には以下を実行します:
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
へ展開します。
PDR セッションの記録
レコーダーを起動するには、以下のスクリプトを実行します。
C:\PDR\pdr
起動したら、レコーディング環境に入ります。
実行するアクションを選択し、それらを適用する領域でスクリーンショットを実行します。 以下に、最も一般的な例を示します。
一般的なアクション:
フロー制御アクション:
このスクリプト言語の詳細は、http://sikulix-2014.readthedocs.io/en/latest/index.html を参照してください。
プロジェクトが記録されると、次の要素を持つファイルが作成されます。
- 自動実行コードを含んだ .py ファイル
- ウェブブラウザ制御イメージ
実行の簡単な例としては、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 PDR でトランザクションセッションの記録
特別なセッションの記録は必要ありません。異なるスクリプトでセッションを記録するだけです。Pandora UX は、複雑なトランザクションの結果を返し整理します。次の段階では、正しく動作させるための実行の呼び出し方を見ていきます。
トランザクション処理を作成するために複数のレコーディングを行う場合は、記録時に探している要素が存在することに注意する必要があります。 単一のトランザクション処理ごとに、レコーディング内容を手動で実行することをお勧めします。手動で実行してみたあとに、アクションが期待どおりに行われるようにします。
次の例では、上記の例のプロセス次の段階を構成する記録プロセスを確認できます。電卓の結果をメモ帳にペーストします。以下に例を示します。
ここでは、テキストファイルを特定の場所に保存し、前のファイルを上書きするという別の手順を示します。これにより、柔軟性が大幅に向上し、並行してファイルの監視が可能になり、ヘビー級のデスクトップアプリケーションに対するさまざまな情報を扱えます。この 3つ目のシーケンス例は、以下のステップからなります。
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 が有効な場合)。
正常時の実行結果例:
<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 コンソールに表示することができます。
フェーズごとに、以下のモジュールが返ります。
- 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 が受け取ると、コンソールで見ることができます。繰り返しになりますが、階層モード で、モジュール間の関係とフェーズ間の区切りがわかりやすく表示されます。
フェーズとタイムチャートの詳細は、トランザクションの画面で見ることができます。
エラーのスクリーンショットは、UX クライアント(PWR)と PWR サーバが共に同じマシンで動作しているときにのみ表示されます。そうでない場合は、Pandora で画像を表示するために、PWR サーバの画像配布ディレクトリがクライアントからアクセスできる必要があります。
同じモジュールを使用して、アラートを作成し、システムの時間経過に伴う変化を表示するために、履歴表示やグラフ生成ができます。
システムを再起動したときなどに実行の中断を避けるために、システムが起動したときに、Pandora エージェントをプロセスモードで起動させるプログラムタスクを作成することと、パスワード無しでマシンへ自動ログインし、エージェントが確実に実行されるようにすることをお勧めします。
これにより、対象の Windows インスタンスでは、マシンが再起動しても Pandora FMS エージェントが常にプロセスモードで実行され、常にPDR プローブによって収集されたデータを送信できることが保証されます。
さまざまなデスクトップシステムでは問題が発生する可能性があります。そのため、前述の設定を使い、デスクトップモードで自動起動を単一のデスクトップ使用することをお勧めします。