Pandora FMS: Plugin de monitorización Selenium

27
Pandora FMS Manual Administrador Plugin Selenium (Navegación Web)

description

Este plugin utiliza la herramienta selenium para realizar simulaciones de navegación web utilizando un navegador web normal. El plugin genera dos modulos (de tipo generic_proc y generic_data) por cada tarea. Para más información pueden visitar la siguiente pagina web: http://pandorafms.com/index.php?sec=Library&sec2=repository&lng=en&action=view_PUI&id_PUI=426

Transcript of Pandora FMS: Plugin de monitorización Selenium

Pandora FMSManual Administrador

Plugin Selenium (Navegación Web)

PandoraFMS Selenium

© Artica Soluciones Tecnológicas 2005­2013

Índice de contenido1Histórico de cambios..........................................................................................................................32Introducción........................................................................................................................................43Matriz de compatibilidad....................................................................................................................54Documentación que debe entregar el Área que requiere la monitorización.......................................65Módulos del plugin.............................................................................................................................76Selenium.............................................................................................................................................8

6.1.OpenSUSE.................................................................................................................................86.1.1.Requisitos del sistema........................................................................................................86.1.2.Instalación de Selenium.....................................................................................................86.1.3.Ejecución de Selenium.......................................................................................................9

6.2.Windows..................................................................................................................................116.2.1.Requisitos del sistema......................................................................................................116.2.2.Instalación de Selenium...................................................................................................116.2.3.Ejecución de Selenium.....................................................................................................12

7Plugin de Selenium en agente pandora fms......................................................................................157.1.Configuración del Plugin de Selenium....................................................................................15

8Firefox extensión de Selenium para PandoraFMS...........................................................................178.1.Instalación de la extensión de Selenium en Firefox................................................................178.2.Uso de la extensión de Selenium en Firefox............................................................................19

9Anexo: Scripts de monitorización web.............................................................................................229.1.Ejemplos de scripts de monitorización....................................................................................229.2.Lista de comandos de scripts de monitorización.....................................................................23

1 HISTÓRICO DE CAMBIOS

Fecha Autor Cambio Versión

21/01/13 Miguel de Dios

Primera versión del documento v1r1

Page 3

2 INTRODUCCIÓN

Este documento tiene como objetivo la descripción de la monitorización usando la herramienta 

Selenium integrada en PandoraFMS.

Para ello disponemos de tres herramientas:

• Selenium (http://seleniumhq.org/) herramienta para hacer simulaciones de navegación web 

usando un navegador web estandar.

• Plugin de Selenium de Pandora Agent, un plugin para los agentes de Pandora FMS de Linux 

que  genera por cada tarea  en el fichero especificado, dos módulos uno el resultado de la 

tarea y el otro el tiempo que ha tardado en realizar esa tarea en Selenium.

• Selenium IDE  for  PandoraFMS,  una  extensión para  Firefox  para grabar  una navegación 

como una tarea para el plugin de Selenium de Pandora Agent.

Page 4

3 MATRIZ DE COMPATIBILIDAD

Sistemas donde se ha probado• Selenium Server Standalone 2.28.0• Java 7

Sistemas donde debería funcionar • Selenium Server Standalone 2.x• Java 7.x

Page 5

4 DOCUMENTACIÓN QUE DEBE ENTREGAR EL ÁREA QUE REQUIERE LA MONITORIZACIÓN

La documentación a entregar para la monitorización será una archivo con la sesión capturada por el 

grabador de navegación que será la fuente de datos para la ejecución del plugin. La creación de este 

archivo se exlica más abajo.

Page 6

5 MÓDULOS DEL PLUGIN

El plugin de Selenium por cada tarea genera 2 módulos:

• generic_proc: con el nombre que lleve la tarea en “task_begin” y sera el resultado de la 

simulación de la navegación.

• generic_data: que lleva el conteo de tiempo que tarda en realizar la tarea, si resulta positiva, 

si no no lo envía.

Page 7

6 SELENIUM

Selenium como hemos dicho es una herramienta de simulación de navegación web, que la realiza 

tomando el control de un navegador y ejecutando paso a paso las tareas. El selenium se ejecuta 

como un demonio en segundo plano y realiza la comunicación por el puerto 4444 por lo que puede 

estar en una máquina distinta al Pandora Agent encargado del plugin de Selenium.

6.1. OpenSUSE

6.1.1. Requisitos del sistemaLos requisitos del sistema para la instalación en una OpenSUSE 12.2:

• el subsistema gráfico Xorg con capacidad de loguearse gráficamente.

• Maquina virtual Java.

• Acceso al puerto TCP 4444 desde la máquina que tiene el agente que ejecutara el plugin.

• Acceso a  navegación web desde esta  máquina ha  las  webs (intranet  o  internet)  que se 

pretenden ejecutar tareas de monitorización web.

• Navegador Firefox o Chrome u otro soportado por Selenium (ojo hay que especificarlo en el 

plugin de Pandora Agent).

6.1.2. Instalación de Selenium

• Si estas usando OpenSUSE 12.2 por problemas que da la corporación Oracle a las empresasy 

organizaciones de software libre, no esta disponible el paquete de Java en los repositorios 

oficiales de OpenSUSE pero no obstante lo puedes descargar desde la siguiente URL:

http://www.java.com/es/download/linux_manual.jsp?locale=es&host=www.java.com

Descargando la versión paquetizada en RPM con el link (Linux RPM) si tu OpenSUSE es de 

32bits y tienes instalado un sistema de 64bits con el link (Linux x64 RPM).

Y para instalarlo solo es necesario ejecutar con permisos de administrador:

sudo rpm ­ivh jre­7u10­linux­i586.rpm

• Y descargar el paquete jar de Selenium desde la web oficial en:

Page 8

http://seleniumhq.org/download/

Que dentro de esta página lo puedes encontrar en la sección con el siguiente nombre:

Selenium Server (formerly the Selenium RC Server)

6.1.3. Ejecución de SeleniumPara ejecutar Selenium tan solo basta tener una sesión gráfica en la maquina abierta (directamente 

en la maquina o via VNC) y ejecutar:

java ­jar selenium­server­standalone­2.28.0.jar

Para testear que funciona Selenium basta con entrar un navegador en la maquina a la URL

http://localhost:4444/wd/hub

Y se tiene que ver algo parecido a la siguiente captura de imagen:

Page 9

Y crear una Session con el navegador que se va usar para la monitorización Web como se muestra 

en la captura de pantalla:

Y te tiene que aparecer una sesión en la lista de “Sessions” en esta página, tal como muestra la 

siguiente captura de pantalla.

Page 10

Y ademas te habrá ejecutado un navegador (en mi caso un Firefox) en la maquina.

Una vez testeado el Selenium, puedes destruir la sesión ya que el plugin del Agente de Pandora se 

encargara de crear la sesiones y ejecutarlas el automaticamente.

6.2. Windows

6.2.1. Requisitos del sistemaLos requisitos del sistema

• Maquina virtual Java.

• Acceso al puerto TCP 4444 desde la máquina que tiene el agente que ejecutara el plugin.

• Acceso a  navegación web desde esta  máquina ha  las  webs (intranet  o  internet)  que se 

pretenden ejecutar tareas de monitorización web.

• Navegador Firefox o Chrome u otro soportado por Selenium (ojo hay que especificarlo en el 

plugin de Pandora Agent).

◦ Para   navegadores   distintos   a   Firefox,   es   necesario   instalar   los   “driver”   para   cada 

navegador.

6.2.2. Instalación de SeleniumLos pasos para instalar Selenium en Microsoft Windows.

• Por problemas de la corporación Microsoft con Oracle, no esta disponible el paquete de Java 

en los repositorios oficiales de OpenSUSE pero no obstante lo puedes descargar desde la 

siguiente URL:

http://www.java.com

• Y descargar el paquete jar de Selenium desde la web oficial en:

http://seleniumhq.org/download/

Que dentro de esta página lo puedes encontrar en la sección con el siguiente nombre:

Selenium Server (formerly the Selenium RC Server)

• Para ejecutar la monitorización en el navegador Firefox no es necesario nada, salvo tenerlo 

instalado en esta máquina.

Page 11

• Para ejecutar la monitorización de navegación web en otros navegadores es necesario 

instalar el “driver” por ejemplo para usar el Microsoft Internet Explorer (navegador que no 

cumple los estándares web pero es ampliamente usado en entornos de escritorio pero no en 

la telefonía de última generación que casi todos son derivados del engine libre Webkit).

http://code.google.com/p/selenium/downloads/list

http://code.google.com/p/selenium/downloads/detail?

name=IEDriverServer_Win32_2.29.0.zip&can=2&q   =   

Y copiar el ejecutable a IEDriverServer.exe al PATH de ejecución que tenga el windows de la 

máquina.

Ademas por un defecto en Microsoft Internet Explorer es necesario des­chequear en todos 

los perfiles de seguridad (Internet, Local Intranet, Sitios de confianza y Sitios Restringidos) 

la opción “Habilitar Modo Protegido” como muestra la captura de pantalla:

6.2.3. Ejecución de SeleniumPara ejecutar Selenium tan solo basta tener una sesión gráfica en la maquina abierta (directamente 

Page 12

en la maquina o via VNC) y ejecutar, según la versión de windows te pedirá confirmar los permisos 

de ejecución del jar, así como por ejemplo el pasar atraves del firewall de Microsoft Windows:

java ­jar selenium­server­standalone­2.28.0.jar

Para testear que funciona Selenium basta con entrar un navegador en la maquina a la URL

http://localhost:4444/wd/hub

Y se tiene que ver algo parecido a la siguiente captura de imagen:

Y crear una Session con el navegador que se va usar para la monitorización Web como se muestra 

en la captura de pantalla:

Page 13

Y te tiene que aparecer una sesión en la lista de “Sessions” en esta página, tal como muestra la 

siguiente captura de pantalla.

Y ademas te habrá ejecutado un navegador (en mi caso un Firefox) en la maquina.

Una vez testeado el Selenium, puedes destruir la sesión ya que el plugin del Agente de 

Page 14

Pandora se encargara de crear la sesiones y ejecutarlas el automáticamente.

7 PLUGIN DE SELENIUM EN AGENTE PANDORA FMS

En la maquina que tiene el agente de Pandora FMS debe tener instalado el paquete Enterprise del 

Agente. Y por tanto en el directorio:

/usr/share/pandora_agent/plugins

Tendrá que tener el fichero de plugin:

SeleniumPlugin.pl

El plugin de Selenium por cada tarea genera 2 módulos:

• generic_proc: con el nombre que lleve la tarea en “task_begin” y sera el resultado de la 

simulación de la navegación.

• generic_data: que lleva el conteo de tiempo que tarda en realizar la tarea, si resulta positiva, 

si no no lo envía.

Page 15

7.1. Configuración del Plugin de Selenium

Desde la edición de configuración remota del agente en la consola de Pandora como ves en la 

captura de pantalla:

Y añadir la linea parecida a la que esta resaltada por ejemplo:

module_plugin SeleniumPlugin.pl /var/selenium_plugin_example 192.168.70.198 4444 *iexplore

Donde es:

module_plugin   SeleniumPlugin.pl   <path_script_tareas_monitorización>   <ip_selenium> 

<puerto_selenium> <navegador>

Donde los parametros son:

• path_script_tareas_monitorización: el path al script de tareas que tiene que tener permiso de 

lectura desde el agente de Pandora.

• ip_selenium: la ip de la maquina que esta ejecutando el Selenium

• puerto_selenium: el puerto del servidor de Selenium, normalmente es el 4444.

• navegador: el navegador donde realizar la simulación de navegación, tienes dos opciones 

*iexplore (solo windows) y *firefox (ambos, necesario tenerlo instalado en la máquina de 

Selenium).

El   script  de  la   tarea se  puede crear  de  forma manual  con un simple editor  de  texto o con  la 

herramienta que explicaremos en posteriores capítulos de este manual, la extensión de Firefox de 

Selenium para Pandora FMS. No obstante tendrá un anexo con información para crear desde un 

Page 16

editor de texto o editar uno creado por la extensión de Firefox.

8 FIREFOX EXTENSIÓN DE SELENIUM PARA PANDORAFMSLa extensión de Firefox de Selenium te da una herramienta para generar la simulación de 

navegación, grabando la navegación que realices.

8.1. Instalación de la extensión de Selenium en Firefox

La extensión, la tendrá en un fichero XPI, es necesario tener un Firefox con una versión igual o 

superior a la 4.

Para instalarlo tiene que ir a Menú   Herramientas   Complementos como se ve en la captura de → →

pantalla.

Page 17

Y en la ventana de módulos en el “Botón de opciones”   “Instalar complemento desde archivo...” en→  

la ventana de dialogo seleccione el fichero XPI de la extensión.

Page 18

Firefox le mostrara una ventana de confirmación de seguridad con el botón de Instalar desactivado 

por un tiempo de unos segundos para que se tome su tiempo en leer el mensaje de advertencia de 

esta ventana, como se muestra en la captura de pantalla siguiente. Estas ventanas son comunes 

cuando se instala cualquier extensión fuera de la página de extensiones de Firefox oficial.

Después de esto le pedirá que reinicie el Firefox.

Y si ha salido correctamente la instalación estará disponible en el menú:

Page 19

8.2. Uso de la extensión de Selenium en Firefox

La herramienta es bastante fácil, a grandes rasgos es abrir la herramienta, pulsar el botón de grabar, 

navegar, darle al stop y guardarlo en un fichero, no obstante vamos a explicarlo con mas detalle.

Para activar la extensión de Selenium es en Menú   Herramientas   “Selenium IDE for → →

PandoraFMS” y te saldrá una ventana que vemos en la siguiente captura de pantalla. Una ventana 

compleja pero que solo se usan tres controles.

Page 20

Los controles que usaras son:

• Botón de grabar: el que de la parte derecha de arriba, cuando esta activo, todas las acciones 

de navegación se irán grabando en la ventana.

• Lista de acciones: la que esta en medio de la ventana, esta se ira llenando con las acciones 

de navegación que realices, incluso se pueden editar o añadir mas desde aquí.

• Menú Archivo: arriba superior a la izquierda, simplemente hay que darle a “Save test case” 

una vez terminada la navegación.

Desde la versión v2r1 del plugin de Pandora Selenium para Firefox, guarda a la vez dos tipos de 

ficheros, el primero de ellos es un fichero en formato Pandora para usar con el plugin de agente de 

Selenium para Pandora, y el segundo es un fichero en formato selenium para el plugin de firefox. El 

segundo fichero se puede usar para ampliar o editar fácilmente desde firefox

Es interesante que la opción de chequear que existe un determinado texto en la web que se esta 

probando a monitorizar como por ejemplo, en la navegación web de un formulario que cuando se 

finaliza correctamente devuelve un texto como “operación correcta” o en un formulario de 

búsqueda que salga un determinado producto en la búsqueda. Y desde el menú contextual una vez 

seleccionado un texto tiene esa opción para añadir ese paso al script, como puede ver en la 

siguiente captura.

.

Page 21

Page 22

9 ANEXO: SCRIPTS DE MONITORIZACIÓN WEB

Los scripts de monitorización web son en texto plano y se ejecutan de forma secuencial. Hay que 

tener en cuenta que no todos los comandos de la extensión de Firefox estan soportados, pero los 

mas comunes de Selenium están, ademas la extensión también no soporta todos los comandos de 

monitorización.

9.1. Ejemplos de scripts de monitorización

Todos están generados por la extensión de Firefox:

Chequear que en la Demo de PandoraFMS esta el agente “Summarize Energy Data” en la lista de 

agentes y en estado desconocido.

Se puede destacar del código con enfoque educativo las siguientes lineas de comandos:

• Los scripts aunque sean varios en un solo fichero, comienzan con una linea de comando 

“task_begin” y “task_end”, ademas “task_begin” tiene de parámetro el nombre del script y de 

los dos módulos que va crear (uno de estado o de datos extraídos de la web, otro con el 

tiempo en segundo que ha durado la monitorización web), cuando el script es generado por 

la extensión de Firefox es la URL completa de la simulación de la navegación.

Page 23

task_begin http://firefly.artica.es/pandora_demo/index.phpopen http://firefly.artica.es/pandora_demo/index.phptype id=nick,demotype id=pass,democlick id=image­Login1wait_for_page_to_load 5000click css=img.toggleclick link=Vista de agenteswait_for_page_to_load 5000click id=group_idselect id=group_id,label=regexp:\s+Energy Efficiencywait_for_page_to_load 5000click css=option[value="19"]click id=statusclick id=statusselect id=status,label=Desconocidowait_for_page_to_load 5000click id=text­searchtype id=text­search,Sclick id=submit­srcbuttonwait_for_page_to_load 5000is_text_present Summarize Energy Datatask_end

• Siempre después de “task_begin” viene el comando “open” que contiene como parámetro la 

URL completa donde se inicia la navegación.

• Comandos como “type” o “click” o “select” suelen llevar dos parámetros el primero es el 

objetivo de la acción (suele ser un id html u otro elemento unequivocamente identifica ese 

elemento a nivel de código html) y el segundo separado por una el carácter coma (ojo sin 

espacios en blanco) es el valor que se introduce en la caja de texto o se selecciona si es una 

lista desplegable.

• También a lo largo de la navegación se va cambiando de una página a otra dentro de un 

mismo dominio o no, eso conlleva un tiempo en lo que carga las páginas, por eso es 

necesario poner entre medias el comando “wait_for_page_to_load” seguido del parámetro 

de milisegundos que esperar antes de devolver que el script se ha ejecutado mal, hay que 

tener en cuenta aunque tenga un parámetro de tiempo alto eso no afecta al módulo de 

tiempo que tarda en ejecutar la monitorización web, solo es un tiempo de espera de cargar 

correctamente la web.

• Normalmente para finalizar tendrá un comando “is_text_present” seguido del texto o 

expresión regular que quiere chequear que existe en la web monitorizada. Aunque también 

puede no existir este comando porque solo desea chequear que la web es navegable y no se 

queda colgada cargando o hay un link roto, o también quiere extraer un texto de la web, 

pero que veremos mas adelante en este anexo en la lista de comandos.

9.2. Lista de comandos de scripts de monitorización

Los siguientes comando son los que están soportados por el plugin de Selenium en el agente de 

Pandora, recuerdo que algunos no están soportados por la extensión Firefox.

• Comentario: cualquier linea que empieza por el carácter #.

• answer_on_next_prompt:  comando que pasa a la ventana de prompt generada por 

javascript en la web el texto pasado como primer parámetro.

• attach_file: comando que añade el fichero  al control de subir ficheros del formulario 

pasado como primer parámetro, el segundo parámetro es la ruta al fichero a subir a la web.

• capture_entire_page_screenshot: guarda en un fichero PNG una captura del navegador en 

ese momento, con el primer parámetro se pasa la ruta al fichero a guardar la captura.

• capture_entire_page_screenshot_to_string: guarda una captura del navegador en un 

string en BASE64 y formato PNG.

• check: marca el cuadro de confirmación de la web pasado como primer parámetro.

• choose_cancel_on_next_confirmation: en la ventana de confirmación generada por el 

javascript de la web, pulsara en el botón cancel.

Page 24

• click: el Selenium hará click en elemento de la web pasado como primer parámetro el 

objetivo de hacer click.

• close: el Selenium a esta altura de esa linea del script, cerrara el navegador.

• create_cookie: crea en el navegador una cookie de la web, con el par nombre:valor, donde 

el nombre es primer parámetro y el segundo el valor.

• delete_all_visible_cookies: borran del navegador los pares nombre:valor de una cookie de 

la web.

• delete_cookie: borra el par nombre:valor de la cookie del navegador.

• double_click: realiza la acción de doble click en el elemento web pasado como primer 

parámetro el objetivo de hacer doble click.

• focus: hace foco en el navegador en el elemento web pasado como primer parámetro el 

objetivo para hacer foco.

• get_attribute: extrae el valor del atributo del elemento html pasado como primer 

parámetro.

• get_body_text: extrae todo el contenido de la página web del navegador como si fuera un 

texto. Se le puede pasar como primer parámetro una expresión regular que intentara casar 

en vez de devolver todo el contenido de la página.

• get_cookie_by_name: retorna el valor de la cookie pasado como primer parámetro el 

nombre de esta.

• get_html_source: retorna el contenido como html de toda la página web del navegador 

como si fuera un texto. Se le puede pasar como primer parámetro una expresión regular que 

intentara casar en vez de devolver todo el contenido de la página.

• get_location: retorna la URL completa en ese momento del script, del navegador en la 

simulación de navegación.

• get_text: retorna el texto de un elemento seleccionado a través del primer parámetro.

• get_table: devuelve el contenido de una tabla seleccionada a través del primer parámetro.

• get_title: devuelve el título de la página que esta el script en el momento en el que se llama 

el comando.

• get_value: devuelve el valor de un campo de un formulario seleccionado a través del primer 

parámetro.

• go_back: realiza la acción de “ir atrás” del navegador web.

• is_cookie_present: chequea que existe el valor de la cookie pasado por el primer 

parámetro.

Page 25

• is_text_present: chequea que existe el texto en la web, pasando una expresión regular como 

primer parámetro.

• is_visible: chequea que el elemento esta visible, pasada la localización en el primer 

parámetro.

• open: abre la web en Selenium pasada la URL como primer parámetro.

• pause: espera la simulación de Selenium durante el tiempo en milisegundos señalados en el 

primer parámetro.

• refresh: realiza una acción de refresco en el navegador en el momento en que Selenium 

encuentra esta linea de comando en el script.

• select: selecciona un valor en una lista desplegable, siendo el primer parámetro la 

localización de la lista desplegable en la web, y el segundo parámetro es el valor de la lista a 

seleccionar.

• select_window: selecciona la ventana flotante elegida por el ID que va en el primer 

parámetro.

• set_timeout: pasa un tiempo en milisegundos como primer parámetro a Selenium para que 

se complete el script si no se cumple devuelve error de estatus del módulo de la tarea.

• submit: ejecuta el envío de los datos de un formulario seleccionado por el primer 

parametro.

• type: hace la escritura en la caja de texto seleccionada por el primer parámetro, y con el 

segundo parámetro el texto a rellenar por Selenium.

• type_keys: hace también la escritura en la caja de texto pero tecla a tecla como las 

pulsaciones de un usuario real en la navegación, la caja de texto se elige en el primer 

parámetro y el segundo las teclas a pulsar expresadas como texto.

• uncheck: realiza un deschequeo en el cuadro de chequeo seleccionado por el primer 

parámetro.

• wait_for_page_to_load: Selenium espera tantos milisegundos como sean pasados en el 

primer parámetro a que termine la carga de la página.

• wait_for_element_present: espera a que este presente en el navegador el elemento pasada 

la localización por el primer parámetro y el segundo parámetro es el tiempo en milisegundos 

para esperar y si no se devuelve error en el estatus del módulo del plugin de agente de 

Pandora.

• wait_for_text_present: espera a que este en el navegador presente el texto pasado como 

una expresión regular en el primer parámetro y el segundo parámetro es el tiempo en 

milisegundos a esperar y si no se devuelve error en el estatus del módulo de plugin de 

Page 26

agente de Pandora.

Page 27