Pandora: Documentation es: Monitorizacion UX

From Pandora FMS Wiki
Jump to: navigation, search

1 Monitorización UX automatizada

1.1 Introducción

Pandora UX es un sistema que ejecuta tareas automatizadas, entregando a Pandora FMS un informe con los resultados de las ejecuciones, tiempos empleados, y capturas con los posibles errores encontrados.

Pandora UX utiliza dos tecnologías por defecto para la automatización de tareas:

  • Pandora Web Robot (PWR): permite la navegación por sitios web, simulando las acciones de un usuario. Puede comprobar contenidos, textos, etc. Es la elección perfecta para monitorizar sitios y aplicaciones web no basadas en flash. Su ventaja: más rápido, con la posibilidad de ejecución en segundo plano.
  • Pandora Desktop Robot (PDR): permite la interacción con sistemas operativos Windows y Linux como si de un usuario se tratara. Pandora UX lanzará scripts preparados con esta herramienta, permitiendo una monitorización más avanzada y específica. Por ejemplo, podemos desplegar el plugin en un equipo y realizar conexiones a diferentes redes, para comprobar si funciona correctamente, tal y como trabajaría un usuario delante del PC. Su uso principal consiste en la monitorización de aplicaciones pesadas de escritorio.

También engloba la monitorización de aplicaciones basadas en tecnología Flex (adobe), que serían incompatibles con Selenium sin realizar modificaciones en la propia aplicación.

Si dispone de un sistema de automatización de tareas, Pandora UX también permite ejecutar los scripts que ya tenga y monitorizar su ejecución.

1.2 Experiencia de usuario WEB (PWR)

1.2.1 Despliegue del sistema PWR

Pasos a seguir para preparar un entorno de trabajo para Pandora UX.

1.2.1.1 Despliegue del servidor Selenium en sistemas Windows

Prerrequisitos:

C:\PWR
C:\sondas

Haremos la siguiente distribución de ficheros:

  • Descompresión del fichero PWR_Server.zip a C:\PWR\
  • Exportar el perfil de Firefox a C:\PWR\profile

El uso de un perfil para realizar los chequeos no es obligatorio, no obstante se recomienda su uso sobre todo en caso de utilizar proxy o querer emplear autocompletado de contraseñas. Para crear un perfil de Firefox seguiremos los pasos de las siguientes capturas:


Ux1.JPG


Ux2.JPG


Elección del directorio destino:


Ux3.JPG


Debemos iniciar Firefox con el nuevo perfil para personalizar opciones como el proxy, mostrado de popups, etc:


Ux4.JPG


A continuación instalaremos el servicio ejecutando el fichero BAT service_installer.bat proporcionado. E iniciaremos el servicio:

net start PWRSRV

Desde este momento ya tenemos el servidor de Selenium corriendo en nuestra máquina. No obstante podemos ejecutarlo a mano (parando el servicio previamente) en caso de que queramos realizar tareas de debugging, mediante el siguiente comando:

java -jar selenium-server-standalone-2.53.0.jar -firefoxProfileTemplate C:\selenium\firefox_profile -port 4444 -v

1.2.1.2 Despliegue del servidor Selenium en sistemas Linux

Prerrequisitos:

Para la instalación del paquete xorg-x11 desde los repositorios:

yum install xorg-x11-server-Xvfb
yum install java
yum install screen

Si no está disponible en sus repositorios puede encontrar el fichero rpm en el siguiente enlace: ftp://rpmfind.net/linux/centos/6.9/os/x86_64/Packages/xorg-x11-server-Xvfb-1.17.4-16.el6.centos.x86_64.rpm

Para realizar la instalación del paquete rpm de forma manual:

yum install xorg-x11-server-Xvfb-1.17.4-16.el6.centos.x86_64.rpm

Podemos utilizar el siguiente script para iniciar el servidor Selenium:

#!/bin/sh
# Monitoring selenium process
if grep selenium |grep -v grep |grep -v selenium.sh |wc -l `" != "0" ; then
   exit
else
   if grep Xvfb |grep -v grep | wc -l `" != "0" ; then
      Xvfb :99 -ac &
      export DISPLAY=:99
   fi
   export DISPLAY=:99
   java -jar /home/selenium/selenium-server-standalone-2.53.0.jar &
fi

O bien manualmente con los siguientes comandos:

# screen
$ Xvfb :99 -ac &
-> Pulsar Enter para continuar
$ export DISPLAY=:99
$ java -jar seleniumXXX.jar &
-> Pulse Ctrl + 'A' y después 'D' para desconectarse de la pantalla virtual

1.2.2 Grabar una sesión PWR

Antes de monitorizar una experiencia de usuario debemos hacer la grabación. Dependiendo del tipo de tecnología que hayamos elegido utilizaremos un sistema de grabación u otro.

Para realizar la grabación de una navegación con PWR necesitaremos el grabador PWRD disponible en la librería de módulos:

https://pandorafms.com/library/pandora-ux-and-wux-pwr-recorder/

Contiene:

Iniciamos el grabador PWR_recorder.exe:


PWR recorder.PNG


Automáticamente iniciará Firefox con el entorno preparado para grabar sesiones PWR:


PWR recorder main.png



Tras acceder al IDE de selenium podremos iniciar la grabación de nuestra experiencia de usuario:


Ux10.JPG


Desde este momento podremos navegar por el sitio web que queramos monitorizar y las diferentes acciones de cada paso que avancemos irán apareciendo en el grabador.

Para detener la grabación utilizaremos el siguiente botón, situado en la parte superior derecha del grabador:


Ux11.JPG


Una vez completadas las acciones, podemos realizar comprobaciones sobre la página, por ejemplo verificar la existencia de un texto determinado para asegurarnos de que la página cargada es la correcta. Para ello haremos click derecho sobre una sección de texto en la ventana del navegador mientras continuamos grabando, y seleccionamos la opción verifyText:


Ux13.JPG


Aparecerá un nuevo paso en el grabador indicando la acción de comprobación de texto indicada:


Ux14.JPG


Podemos reproducir la secuencia completa mediante el botón Play entire test suite y comprobar que finaliza correctamente:


Ux15.JPG


Una vez verificada la validez de la secuencia de navegación, la guardaremos (Archivo -> Save Test Case) para ejecutarla posteriormente con Pandora UX. El fichero resultante será un documento HTML que Pandora UX interpretará.

1.2.2.1 Grabar una sesión transaccional con Pandora UX PWR

Pandora UX en modo PWR (Pandora Web Robot) permite dividir la monitorización de la navegación de un sitio web en múltiples módulos, que representarán cada uno de los pasos realizados.

Para insertar un nuevo punto de control y generar los módulos de fase (hasta ese punto) haga clic derecho en el punto donde desea identificar el comienzo de fase.


Ux16.JPG


Como comentario pondremos el siguiente texto:

phase_start:nombre_de_fase

La fase englobará el tiempo y resultado de todos los comandos que se encuentren hasta el siguiente comentario:

phase_end:nombre_de_fase

Todos los comandos que se ejecuten entre una etiqueta phase_start y phase_end se englobarán dentro de esa fase.

1.2.3 Ejecución de sesiones PWR

1.2.3.1 Ejecución estándar

Para lanzar sesiones pregrabadas de PWR llamaremos al ejecutable pandora_ux_x64.exe, indicaremos que el modo de trabajo es PWR, y el archivo que contiene las directrices de la sesión. En la ruta indicada en el parámetro -folder se guardarán las capturas de pantalla a mostrar en caso de error:

pandora_ux_x64.exe -exe PWR -script tests\std.html –folder C:\sondas

Se devolverán los siguientes módulos:

  • UX_Status_nombre_proyecto: si la secuencia ha tenido éxito o ha fallado
  • UX_Time_nombre_proyecto: tiempo empleado en completar la secuencia.
  • UX_Snapshot_nombre_proyecto: captura con el último punto antes del error, si lo hubiere.

Ejemplo de salida con ejecución correcta:

<module>
   <name><![CDATA[UX_Status_std.html]]></name>
   <type>generic_proc</type>
   <![CDATA[1]]>
   <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>
   <![CDATA[16.317]]>
   <description><![CDATA[Test OK]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_std.html</module_parent>
</module>

Ejemplo de salida con ejecución incorrecta:

<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>

Si todo ha resultado correcto podemos añadir la línea de ejecución al agente de Pandora instalado en la máquina que hayamos preparado para ejecutar los chequeos. La línea a añadir al fichero de configuración del agente tendrá un aspecto similar a este (en una sola línea):

module_plugin C:\Users\artica\Documents\Producto\UX-Trans\UX\pandora_ux_x64.exe -exe PWR -script C:\Users\artica\Documents\Producto\UX-Trans\PWR\sesion.html -folder C:\sondas

Una vez que se encuentre reportando la información al servidor de Pandora FMS veremos cómo aparecen los módulos correspondientes. Podemos habilitar la vista en modo jerárquico para ver la relación entre ellos:


Ux33.JPG


Como indicamos anteriormente, vemos el resultado de la ejecución (si ha tenido éxito o no) en el módulo UX_Status_sesion.html, el tiempo empleado (en segundos) en el módulo UX_Time_sesion.html, y otro con la captura del último error en UX_Snapshot_sesion.html que en este caso se encuentra vacío. Será sobre estos módulos sobre los que podremos crear alertas y mostrar las graficas individuales de cada módulo.

1.2.3.2 Ejecución basada en transacciones

Si tenemos una grabación transaccional con Pandora UX PWR como se indicó en los apartados anteriores, será el propio sistema quien genere los módulos necesarios para identificar cada una de las fases indicadas, por lo que la ejecución no variará con respecto al caso anterior, únicamente indicaremos el fichero html correspondiente, que en este caso contendrá las diferentes fases. Ejemplo de ejecución:

pandora_ux_x64.exe -exe PWR -script tests\std.html –folder C:\sondas

Se devolverán los siguientes módulos por fase:

  • UX_Time_nombre_proyecto.fase_orden
  • UX_Status_nombre_proyecto.fase_orden

Si hay alguna fase con error, se creará también el módulo siguiente:

  • UX_Snapshot_nombre_proyecto.fase_orden

Mostrará una imagen de la web en el momento del error.

También se devolverán los módulos de resumen globales identificados con los siguientes nombres:

  • UX_Global_Time_nombre_proyecto
  • UX_Global_Status_nombre_proyecto
  • UX_Global_Snapshot_nombre_proyecto

Y se mostrará una imagen de la web en el momento del error.

La línea de ejecución del agente será muy similar a la del caso anterior, pero con el fichero html que contiene las fases. Tendrá un aspecto similar a este (en una sola línea):

module_plugin C:\Users\artica\Documents\Producto\UX-Trans\UX\pandora_ux_x64.exe -exe PWR -script C:\Users\artica\Documents\Producto\UX-Trans\PWR\sesion_fases.html -folder C:\sondas

Y cuando la información esté llegando correctamente al servidor de Pandora FMS se visualizará en forma de módulos de esta forma. Habilitar la vista en modo jerárquico en la lista de módulos nos ayudará a visualizar la información de forma mucho más clara:


Ux34.JPG


Accediendo a la sección UX del agente podemos ver detalles adicionales de la transacción y sus fases:


Ux36.JPG


En la captura anterior puede verse la diferencia en tiempos de las dos fases en que se divide nuestra grabación.

El ejemplo a continuación representa un proceso de navegación por nuestro sitio web y compra de varios artículos, dividido en 5 fases para medir con exactitud los tiempos empleados y saber dónde hacen falta mejoras o se produce un cuello de botella:


Ux44.JPG


Ux45.JPG



1.2.3.3 Recuperación de valores

A partir de la versión v1.20171003 pandora_UX es capaz de recuperar datos directamente de la web durante la ejecución de los tests de experiencia de usuario.

Para utilizar esta nueva característica, lo único que hay que agregar es la orden de captura como comentario en el test de Selenium:


PWR recorder getValue.png


En el ejemplo adjunto, se recuperan dos valores después de realizar la navegación, y se representarán como módulos en Pandora (numerito y resultado en texto)

Los pasos para ordenar al plugin recoger datos es la siguiente:

  • Agregar un nuevo comentario a nuestro fichero de pruebas con el grabador selenium
  • Agregar la directiva al comentario

Directiva de captura de datos

getValue;nombre del módulo;tipo de dato del módulo;expresión regular para la captura de datos

¿qué representa cada campo separado por punto y comas?

  • getValue: Instrucción para el sistema UX
  • Nombre del módulo: el nombre del módulo tal y como aparecerá en Pandora
  • Tipo de dato del módulo: Qué tipo se utilizará, puede ser cualquiera de los tipos de datos soportados por Pandora (generic_proc,generic_data,generic_data_string,async_proc,async_data,async_string...)
  • Expresión regular perl a utilizar para la captura de datos: Debe ser una expresión regular Perl, con la orden de captura de información entre paréntesis.

Por ejemplo, en el texto:

 <p>La temperatura de la placa solar es de: <span class="temperatura">54º C</span></p>

si queremos recuperar la temperatura para llevar un seguimiento del valor, especificaremos la expresión regular como sigue:

<span class="temperatura">(\d+\.*\,*\d*).*</span>

De tal manera que recuperará el valor 54 del ejemplo, o posibles valores con posiciones decimales.


La directiva de captura completa quedaría como sigue:

getValue;temperatura placa solar;generic_data;<span class="temperatura">(\d+\.*\,*\d*).*</span>

1.3 Experiencia de usuario de escritorio (PDR)

1.3.1 Despliegue del sistema PDR (sólo Windows)

El sistema PDR únicamente funciona en sistemas Windows, y una vez en ejecución por el agente de pandora éste debe correr en modo proceso, ya que de correr en modo servicio no funcionará. Además no será posible bloquear la sesión de escritorio, por lo que se recomienda su uso en máquinas virtuales.

Prerrequisitos:

  • Sistema Windows en modo escritorio con auto arranque y auto inicio de sesión.

Para lograr dicha configuración ejecutaremos:

control userpasswords2

Y desmarcaremos la casilla "Users must enter a user name and password to use this computer":


Ux5.JPG


Para preparar el entorno crearemos los siguientes directorios:

C:\PDR
C:\sondas

Y descomprimiremos el fichero "PDR.zip" proporcionado en C:\PDR.

Para iniciar el grabador ejecutaremos el siguiente script:

C:\PDR\pdr.cmd

1.3.2 Grabar una sesión PDR

Para grabar una sesión con PDR necesitaremos:

  • Instalar el sistema de automatización (descomprimir pdr.zip en un directorio de su elección).
  • Iniciar el sistema de grabación (pdr.cmd).


Ux17.JPG


Tras un proceso de carga entraremos en el entorno de grabación:


Ux18.JPG


Seleccione las acciones que desea realizar y capture la zona donde quiera aplicarlas. A continuación puede encontrar un listado con las más comunes.

Acciones generales:


Ux19.JPG


Acciones de control de flujo:


Ux20.JPG


Más ayuda acerca del lenguaje: http://sikulix-2014.readthedocs.io/en/latest/index.html

Al grabar el proyecto se creará una carpeta que contendrá los siguientes elementos:

  • Fichero .py con el código del script de automatización.
  • Imágenes para controlar la navegación.

Un ejemplo sencillo de ejecución podría ser monitorizar que nuestra calculadora de Windows funciona correctamente. Vamos a mostrar todo el proceso en capturas de pantalla.

1. Elegimos la acción "click" y el área donde queremos aplicar la acción, la pantalla cambiará a modo "selección de área":


Ux21.JPG


Ux22.JPG


2. Introduciremos la acción type y el texto "calc", después introduciremos las acciones de esperar a que aparezca el área "calculadora" y haremos click sobre la misma. Después esperaremos a que aparezca la ventana de la calculadora para introducir las siguientes acciones, de este modo:


Ux23.JPG


3. Después haremos click en los botones correspondientes, seleccionando las áreas igual que en los pasos anteriores.

4. Finalmente podremos guardar el proceso y reproducirlo mediante el botón Run.

Notas importantes:

  • Si hacemos doble clic sobre cualquiera de las imágenes dentro del entorno de grabación, podemos ajustar detalles de la captura de control, como seleccionar el punto exacto donde hacer click.
  • Es muy recomendable introducir acciones tipo wait entre cada click para asegurarnos de que la ejecución no se va a detener por una demora en el sistema operativo.
  • La grabadora buscará el área con aspecto igual a la captura, por lo que hay que tener especial cuidado en caso de que haya algo resaltado al estar el botón situado encima (por ejemplo, los botones de la calculadora cambian a color naranja cuando el ratón se encuentra sobre ellos).

En la carpeta donde hemos almacenado la grabación podemos ver los archivos de las imágenes y el fichero python.


Ux24.JPG


Nota: Puede personalizar la captura realizada desde el motor de grabación del PDR usando el siguiente código:

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


Esto creará una imagen de la ventana activa en el destino indicado por file con lo que podremos realizar la captura en el momento específico que queramos. Podemos personalizar esta captura utilizando coordenadas, para ello especificaremos la siguiente sintaxis:

capture(x, y, w, h)

Donde:

X: posición X del rectángulo a capturar

Y: Posición Y del rectángulo a capturar

W: Anchura de la captura

H: Altura de la captura



1.3.2.1 Grabar una sesión transaccional con Pandora UX PDR

No es necesario grabar una sesión específica, simplemente grabe las sesiones que necesite en scripts diferentes. Será Pandora UX quien gestione la devolución de resultados para organizarla como una transacción compleja. En el siguiente punto veremos cómo hacer la llamada de la ejecución para que funcione correctamente.

Si vamos a realizar varias grabaciones para crear un proceso transaccional debemos tener cuidado al realizar la grabación de que los elementos que buscamos están presentes. Se recomienda la ejecución manual de las grabaciones que queramos utilizar en un único proceso transaccional de forma seguida para asegurarnos de que las acciones transcurren según lo esperado.

En el siguiente ejemplo hemos realizado un proceso de grabación que constituirá la segunda fase del proceso empleado en el ejemplo anterior. Vamos a coger el resultado devuelto por la calculadora y pegarlo en un bloc de notas. La grabación presenta el siguiente aspecto:


Ux40.JPG


Y hemos incluido otra secuencia que consistirá en guardar el archivo de texto en una ubicación determinada, sobreescribiendo el anterior. Esto nos otorga gran flexibilidad, ya que abre la posibilidad de monitorizar paralelamente estos ficheros reflejando la información que necesitemos en todo tipo de variedad de chequeos de aplicaciones pesadas de escritorio. Esta tercera secuencia consiste en los siguientes pasos:


Ux43.JPG


1.3.3 Ejecución de sesiones PDR

1.3.3.1 Ejecución estándar

Para lanzar sesiones pregrabadas de PDR, indicaremos que el modo de trabajo es la ruta al fichero pdr.cmd desplegado en el punto correspondiente, el argumento de dicho fichero “-r”, el archivo que contiene las directrices de la sesión (-script), el directorio donde almacenar las capturas de pantalla (-folder) terminando en ‘\’.

En la ejecución siguiente también se personaliza la captura de pantalla para recoger únicamente la ventana activa:

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

Se devolverán los siguientes módulos:

  • UX_Time_nombre_proyecto.
  • UX_Status_nombre_proyecto.
  • UX_Control_Snapshot_nombre_proyecto (sólo en la primera ejecución).

Si hay alguna fase con error, se creará también el módulo siguiente:

  • UX_Snapshot_nombre_proyecto.

Y mostrará una imagen de la ventana activa (con -ss_config active) del momento del error.

Ejemplo de salida con ejecución correcta:

<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>

Ejemplo de salida con ejecución fallida:

<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>

Si todo ha resultado correcto podemos añadir la línea de ejecución al agente de Pandora instalado en la máquina Windows como plugin de agente. La línea a añadir al fichero de configuración del agente tendrá un aspecto similar a este (en una sola línea):

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

Como puede verse, esta ejecución tiene algunas opciones más. El parámetro -checkpoint sirve para mostrar una captura del resultado final aunque no exista fallo, -post ejecutará acciones una vez terminada la reproducción de la sesión, en este caso vamos a cerrar el proceso de calculadora que ha iniciado la grabación, para evitar que el sistema termine fallando por exceso de ventanas abiertas o procesos similares.

Ahora que nuestro agente tiene la línea de ejecución module_plugin lista debemos lanzarlo en modo proceso, ejecutando lo siguiente desde línea de comando como administrador:

"C:\Program Files\pandora_agent\PandoraAgent.exe" --process

Obviamente la ruta completa al ejecutable PandoraAgent.exe debe ser la correspondiente a nuestra instalación.

Al lanzarlo veremos cómo se ejecutan las acciones de forma automática conforme a nuestra grabación. Desde este momento el proceso de agente no debe cerrarse, y tampoco se debe iniciar sesión en la máquina por escritorio remoto, o las ejecuciones podrían interrumpirse. La máquina debe quedarse sin manipular, por esta razón es por la que se recomienda su uso en máquinas virtuales.

1.3.3.2 Ejecución basada en transacción

Si tenemos grabados diferentes procesos con PDR y hemos probado que funcionan al reproducirlos de forma continuada, haremos la ejecución del siguiente modo:

C:\Users\artica\Documents\Producto\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

Como puede observarse, simplemente indicaremos la ruta del nuevo script en el parámetro -script separada por una coma del script anterior y utilizaremos el parámetro -t con el nombre de la transacción que englobará las diferentes fases. Si tuviesemos un proceso con más fases seguiríamos la misma lógica, por ejemplo:

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

La línea a añadir al fichero de configuración del agente, para este caso, será la siguiente:

module_plugin C:\Users\artica\Documents\Producto\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"

Gracias al parámetro -checkpoint podremos ver capturas del resultado final de cada fase en la consola de Pandora.

Se devolverán los siguientes módulos por fase:

  • UX_Time_nombre_proyecto.fase_orden.
  • UX_Status_nombre_proyecto.fase_orden.

Si hay alguna fase con error, se creará también el módulo siguiente:

  • UX_Snapshot_nombre_proyecto.fase_orden.

También mostrará una imagen de la web en el momento del error, en caso de que se produzca.

También se devolverán los módulos de resumen globales identificados con los siguientes nombres:

  • UX_Global_Time_nombre_proyecto.
  • UX_Global_Status_nombre_proyecto.
  • UX_Global_Snapshot_nombre_proyecto.


Cuando el agente se encuentre corriendo en modo proceso y los módulos sean recuperados por Pandora FMS los veremos en la consola. De nuevo, mediante la vista en modo jerárquico podremos mostrar con claridad la relación entre los módulos mostrados, delimitando claramente las diferentes fases:


Ux41.JPG


Y en el visor de transacciones podemos ver el detalle de las fases y la gráfica con los tiempos:


Ux42.JPG


Las capturas de error sólo se mostrarán cuando el cliente UX (PWR) y el servidor PWR estén corriendo en la misma máquina. En caso contrario, el directorio de entrega de las imágenes por parte del servidor PWR deberá ser accesible por el cliente para poder mostrar la imagen en Pandora.

Será sobre estos módulos sobre los que podremos crear alertas y visualizar el histórico para construir gráficas y mostrar la evolución en el tiempo de nuestros sistemas.

Se recomienda la creación de una tarea programada que arranque el agente de Pandora en modo proceso cuando el equipo se inicie, así no se interrumpirán las ejecuciones aunque el sistema tenga un reinicio forzoso, y al estar en modo inicio de sesión automático sin contraseña, el agente siempre se ejecutará aunque se reinicie la máquina.


Ux26.JPG


Ux27.JPG


Ux28.JPG


Ux29.JPG


Ux30.JPG


Ux31.JPG


Ux32.JPG


De este modo garantizaremos que en este sistema Windows siempre estará corriendo el agente de Pandora FMS en modo proceso aún cuando la máquina se reinicie, pudiendo enviar siempre la información recogida por la sonda PDR.

Sistemas con varios escritorios pueden resultar problemáticos, por lo que se recomienda siempre utilizar la configuración anteriormente descrita, en una máquina en modo escritorio con autoinicio de sesión y un único escritorio.